miiboでは、ナレッジデータストア(与えた知識)とデータソース(Webデータ)、外部連携されたデータを検索クエリーで検索し、回答しています。
そのため、回答の精度をあげるためには、ナレッジデータストアやデータソースなどデータースだけでなく、検索クエリーはとても重要です。
今回は、検索クエリーの生成をプロンプトで制御することで、最適な回答情報へ導く方法を紹介します。
検索クエリーがなぜ重要なのか
検索クエリーはUserへの最適な回答のためにとても重要です。
検索クエリーはUserの質問の要約であり、回答のための情報(ナレッジデータストアやデータソース)へアクセスするためのキーワードとなるからです。
そのため、検索クエリーを最適化すると、さらにUserへの回答の精度が向上します。
miiboへの質問から回答までの流れ
Userからの質問
検索クエリー生成
検索クエリーをもとに回答のための情報を検索
検索した情報で検索結果の上位になった情報がプロンプトに入る
回答情報を生成
Userに回答する
検索クエリーを最適化する3つの方法
miiboでは、検索クエリーを生成するためのプロンプトを書くところがあります。そのため、検索クエリー生成プロンプトを適切に書くと、検索クエリーが最適化されます。
検索クエリーを最適化する方法は
キーワードをつなげる
キーワードを調整する
レポートの会話ログを見て調整する
ことです。
会話の直前の履歴を考慮しキーワードをつなげる
検索クエリー生成プロンプトに@{history}と表記することで会話の直前の履歴が考慮されます。
そのため、会話のやりとりでキーワードをつなげることができ、会話を続けることでニーズを絞り込み、欲しい情報にたどりつくことができます。
特定のキーワードが入るように調整する
特定のキーワード(A)がでたときに、適切な回答情報の検索のために補完する情報(B)を追加するように表記することで、検索クエリーを調整する。
たとえば、Userからの質問で「アクティブリスニングとは?」とあった場合、「アクティブリスニング 定義」と検索クエリーが生成されます。
しかし、それでは、私が提供したい赤羽雄二氏のアクティブリスニングではないもの回答をする場合があります。
それは、ナレッジデータストアに「アクティブリスニング 定義」で上位になる異なる情報が2つ以上ある場合や、データソースで検索上位になるカール・ロジャース博士が提唱しているアクティブリスニングになる場合です。
そのため、「アクティブリスニング」が出たときは、「赤羽雄二氏」と特定の情報に導くための情報を追加することを表記することで、Userが「アクティブリスニングとは」と質問をしてきたときに、「アクティブリスニング 赤羽雄二氏」と検索クエリーが生成されるようにできます。
そして、ナレッジデータストアやデータソースで適切な検索結果がプロンプトに入ります。
レポートの会話ログを見て調整する
miiboには、レポート機能があります。レポート機能の中でも会話ログを見ることができ、実際の会話からどのような検索クエリーが生成されているかを確認することができます。
そのような検索クエリーが生成されているかを確認し、検索クエリー生成プロンプトを調整することで、検索の精度が向上します。
検索クエリーを最適化することで回答のための情報を最適に検索する
検索クエリーを最適化することで、ナレッジデータストアやデータソースなどの検索結果が適切なものになります。そして、Userへの回答精度が向上します。
ぜひ、検索クエリーの最適化をしてみてください。
【引用元】
miiboの検索クエリー生成プロンプトで検索クエリーを最適化し適切な回答情報へ導く
岡大徳