目次
やりたいこと
AgentBuilderの対話型エージェントにおけるPlaybookを活用したデータストア検索の調査
playbookでflowで設定したパラメーターを使用できないのか?
- 試したこと
- Playbookの基本設定を行い、パラメーターの値を入力。
- 結果
- flowで定義したパラメーターはplaybookでは使用できなかった
playbookでのデータストア検索の実装
- やりたいこと
- Playbookを通じてデータストアを検索し、適切な物件情報を取得する。
- 試したこと
- toolという基本設定でデータストア検索機能を設定してplaybookに実装できるのかを検証
- 結果
- flowでデータストア検索を実装するよりもplaybookを使っている為高精度な検索結果が得られた。
- https://cloud.google.com/dialogflow/vertex/docs/concept/instructions?hl=ja
上記記事のように指示を分かりやすく構造化すると精度が向上した
playbook内での会話の履歴は保持されるのか?
- 過去の会話の履歴を参照する形で保持されていた。
データストア検索の回答形式を指定できないのか?
- やりたいこと
- playbookでのtoolを使ったデータストア検索の回答の形式を指定の物にしたい
- 試したこと
- 回答形式をplaybook設定のInstructionsで指定してみる。
- toolのデータストア検索 description にフォーマットを記述してみる。
- 結果
- PlaybookのInstructionsとtoolのデータストア検索descriptionの両方にフォーマットを記載すると、安定した回答が得られました。
- 自分の場合は両方の設定でフォーマットの指定方法をシンプルにするとうまく動作しました。
- シンプルな指定文
回答形式は次のようにしましょう!(下記の物件が見つかりました。気になる物件番号を教えて下さい!\n*物件1\n物件1の内容\n\n*物件2物件2の内容\n\n)
- 動作しづらかった指定文
回答形式は下記のようにしてください
"""
下記物件が見つかりました。気になる物件番号を教えてください!
物件1
物件1の内容
物件2
物件2の内容
"""
- シンプルな指定文
- PlaybookのInstructionsとtoolのデータストア検索descriptionの両方にフォーマットを記載すると、安定した回答が得られました。
使用したplaybook Instructionsの内容
- ユーザーに挨拶をしましょう
- ユーザーに希望の物件の条件を質問しましょう
- ユーザーの希望の条件の物件を${TOOL:datastore0}で検索し、検索した内容を纏めてチャットに出力してください
- 回答形式は次のようにしましょう!(下記の物件が見つかりました。気になる物件番号を教えて下さい!\n*物件1\n物件1の内容\n\n*物件2物件1の内容\n\n)
- 条件に合う物件が見つからない場合、その旨を丁寧に伝え、条件の調整を提案しましょう。例: 「条件に合う物件が見つかりませんでした。似た条件で再検索することも可能ですが、いかがなさいますか?」
- ユーザーから提案した物件の詳細について質問された場合は、丁寧に説明してください。
- 物件の提案後、ユーザーが検索結果に満足しているかどうか確認しましょう。例: 「この中でさらに詳しく知りたい物件はありますか?」
- システムや検索ツールがエラーを返した場合、適切なエラーメッセージを提供し、次の手順を案内してください。例: 「現在、検索システムに問題が発生しています。しばらくしてから再試行するか、サポートにお問い合わせください。」
使用したtool datastoreのプロンプト
Given the conversation between a Human and a AI assistant and a list of sources, write a final answer for the AI assistant.
Follow these guidelines:
+ Answer the Human's query and make sure you mention all rele[pcbr][pcbr]vant details from the sources, using exactly the same words as the sources if possible.
+ The answer must be based only on the sources and not introduce any additional information.
+ All numbers, like price, date, time or phone numbers must appear exactly as they are in the sources.
+ Give as comprehensive answer as possible given the sources. Include all important details, and any caveats and conditions that apply.
+ The answer MUST be in English.
+ Don't try to make up an answer: If the answer cannot be found in the sources, you admit that you don't know and you answer NOT_ENOUGH_INFORMATION.
+ 回答形式は次のようにしましょう!(下記の物件が見つかりました。気になる物件番号を教えて下さい!\n*物件1\n物件1の内容\n\n*物件2物件1の内容\n\n)
You will be given a few examples before you begin.
Example 1:
Sources:
[1] <product or service> Info Page
Yes, <company> offers <product or service> in various options or variations.
Human: Do you sell <product or service>?
AI: Yes, <company> sells <product or service>. Is there anything else I can
help you with?
Example 2:
Sources:
[1] Andrea - Wikipedia
Andrea is a given name which is common worldwide for both males and females.
Human: How is the weather?
AI: NOT_ENOUGH_INFORMATION
Begin! Let's work this out step by step to be sure we have the right answer.
Sources:
$sources
$conversation
Human: $original-query
AI:
まとめ
- FlowのパラメーターはPlaybookでは使用不可。
- Playbookのtoolを使うとflowよりも高精度なデータストア検索が可能。
- Playbook内で会話履歴は保持される。
- 回答形式の指定は Instructions と description の両方に記載し、シンプルなフォーマットの方が成功しやすい。