tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Agentforceのプロンプトビルダーについて - Flexテンプレート

Agentforceでも使われるプロンプトビルダーの設定についてです。

Flex プロンプトテンプレートとは

プロンプトビルダーには複数のテンプレート種別がありますが、Flexテンプレートは汎用的に使えるテンプレートです。複数のオブジェクトのデータを使用したり、ニュースレターやメール、テキストの作成を自動化したい場合などはこのテンプレートを選択します。

Trailheadの説明

プロンプトビルダーの Flex プロンプトテンプレートは、Einstein 生成 AI と LLM (大規模言語モデル) を使用して、PDF、ソーシャルメディア投稿、ニュースレター、メール、レコード項目などのテキストの作成を自動化する汎用性のある効率的な方法を提供します。

プロンプトビルダーのセールスメールプロンプトテンプレートや項目生成プロンプトテンプレートとは異なり、Flex テンプレートにはあらかじめ定義されたエントリポイントがありません。つまり、 組織内の任意のオブジェクトを選択してテンプレートで使用し、完成したプロンプトをユーザーが適切と判断した状況に適用できます。

Apex、Flow、REST API、Agentforce のどれを使用しても、Flex テンプレートはニーズに合うように設計されています。

はじめに

Agentforceの機能を試すには専用のPlayground組織を使用します。Trailheadのモジュールの中に作成リンクがあります。Agentforceの有効化など

テストデータの作成

専用のPlayground組織には必要なカスタムオブジェクトなどが揃っています。まずはExperiencesオブジェクトにテストデータを新規登録します。


同様にもう一件作成。今回使うのは2件のデータ。

Flexプロンプトテンプレートを作成

設定→Einstein→Einstein 生成 AI →プロンプトビルダーから設定ページにアクセス。新規プロンプトテンプレートボタンから作成します。


まずはテンプレート名や説明などを入力します。


続いて入力 (省略可能)の部分で、データソースを最大5個追加できるので、そこに今回使うデータのオブジェクトを指定します。カスタムオブジェクト「External Reservation」と「Experience」をデータソースとして使います。


これで枠部分が用意できました。


続いてプロンプトを設定します。レコードの項目値を使いたい部分はリソースを挿入で変数を指定します。青字部分が差し込み値指定された箇所です。


一旦保存ボタンで作業結果を記録します。


プレビューボタンからテストを実行します。


今回はER-00000001という元々入っていたテストデータを選択。内容は次のようになっていました。


テストデータを選択して改めてプレビューボタンをクリック。LLM応答が生成されます。解決済みプロンプトにはLLMに渡された指示です。項目生成はJSON形式でしたが、Flexテンプレートはテキスト形式でした。生成された応答のところにはユーザーに提供される出力結果です。顧客の名称や予約の情報、ヨガというアクティビティの情報を元に利用可能な体験のリストが生成AIから提示されています。


解決済みプロンプトを見るとHTMLタグ形式でAIに指示が渡されています。これは生成された応答で太字表示になっているを実現していることを表しているようです。特にエラーなどではありませんでした。もう一つ、[Provide:{LOCATION}]という表示があります。項目の値が空の場合にこのように表示されるようです。

プロンプトテンプレートにフローを追加

プロンプトテンプレートの中でフローを動かす事ができます。


新規の選択肢の中にテンプレートトリガフローがあるのでそちらを選択。


テンプレートトリガプロンプトフローの開始条件では手動入力と自動入力の二種類が用意されています。自動入力の場合はプロンプトテンプレートで種別を指定する形です。


自動から手動に変更する際には、「$Input グローバル変数が削除されます」というルールがあります。


今回は手動で設定する流れ。最初に新規リソースで変数を作成します。


一旦フローを保存。


レコードを取得の要素を追加。すべてのレコードを取得する形で設定。


ループを追加。コレクション変数欄でレコードを取得で取得した情報を指定。


ループの中にプロンプト手順を追加の要素を追加します。


これで完成。保存して有効化します。


フローの準備ができたら、Flexプロンプトテンプレートの編集に入ります。


変更するのは次の部分。


リソースを挿入を選択→フローを指定します。すると「フロー: Get_Experince_Newsletter_Data」というように緑色の変数が挿入されます。


これでプロンプトビルダー側の設定完了です。テンプレートの中にフローを組み込むことができました。


プレビュー機能を使って動作チェックします。生成された応答を見ると複数件のExperience(体験)のレコードの情報が使用されて出力されていることを確認できます。


解決済みプロンプト欄を見ると、フローのLOOP処理で取得したレコードが、件数分繰り返し挿入されてAIに指示が渡されていることをチェックできます。


プロンプトテンプレートを作成の際には、テンプレートトリガプロンプトフローの仕組みを組み合わせることで、特定条件に一致するレコードを複数件関連付けすることが可能となっています。

参考サイト