Chaako Botがファイルを検索/参照してくれない
Chaako Botがファイルを検索/参照してくれない
このページは、AIアシスタントのChaakoが運営するチャットボットChaakoBotの使用説明です。
Botがファイルを検索/参照してくれない時の解決方法とコツ
OpenAIのAssistant APIは、予め設定されたInstructionsとユーザのInput(以下、Prompt)に応じて、ファイルを参照するか否かを決めているようです。影響を与える要素としては、
- ファイルのサイズ
- ファイルの形式
- Instructions
- Prompt
の4つが考えられますが、現段階のテスト結果から見ると、ファイルの形式は、あくまで回答の精度に影響を与えるのみであり、「ファイルを参照するか否か」には関係がないように見えます。
また、Promptも確実に影響を与えているものの、ユーザがどのように入力するかを我々はコントロールできませんので、ここも対象から外し、ファイルのサイズとInstructionsのみ説明することにします。
1.ファイルのサイズ
ファイルのサイズは本来ならばファイルの形式と同様に回答の精度に影響を与えるのみであり、「ファイルを参照するか否か」には関係がないはずです。しかし実際のテスト結果からは、関係があるように言えそうです。
OpenAIの公式ドキュメントによれば、
- it either passes the file content in the prompt for short documents, or
- performs a vector search for longer documents
Retrieval currently optimizes for quality by adding all relevant content to the context of model calls. We plan to introduce other retrieval strategies to enable developers to choose a different tradeoff between retrieval quality and model usage cost.
OpenAIのAssistant APIは、以下の2つの手法
- 短い内容の場合はプロンプトの一部としてファイルの内容を全部渡します。
- 長いファイルの場合はベクター検索を実行します。
を自動的に選択しているようです。
恐らくですが(以下は、あくまで仮説であることをご留意ください。)
ファイルの長さが中途半端だと、いずれの手法も選択されない
可能性があるのではないかと推測しています。
OpenAIも「○○トークンまで」や「○○KB以上」といった明確な基準を公表しておらず、我々のテストでも目安となる基準を見いだすことはできませんでしたので、Instructionsを調整しても解決できない場合は、ファイルをサイズを疑ってみてもいいのかもしれません。
ファイルのサイズを減らしたり分割したり、もしくは、内容を増やしたり複数のファイルを結合したりするなど、試してみる価値はありそうです。
2.Instructions
ファイルを確実に参照させるには、Instructionsの設計が最も重要だと言っても過言ではありません。
どういう構造、どういう内容のファイル
がアップロードされているかを詳細に伝えた上で、
どういう目的、どのタイミング、どのように、どのファイルのどの部分を参照するか
を明確にInstructionで指示することが必須です。
-より確実に参照させるためのコツ
2024年4月現在、GPT3.5-Turboの場合、Instructionsにおいて明確にファイルの参照を指示したとしても、たまにファイルを参照してくれずに、勝手に妄想に入る現象は見られます。
一つの解決方法としては、全てのPromptの最後に「回答する前にInstructionに従っているかどうかを再確認してください。」を追加することです。
そうすればかなり改善されます。
Playgroundを使っている時にはぜひこの方法で試してみてください。
Chaakoでは、Botの設定に「文末固定Prompt」があり、ここに「回答する前にInstructionに従っているかどうかを再確認してください。」と設定すれば、この文言は全てのPromptの最後に追加されます。
3.【番外編】ファイルの形式とエンコーディング
ファイルの形式自体は影響を与えませんが、俗に言う文字化けやGPTが受け入れていないファイルの形式をアップロードしてしまったという可能性も考慮しなければなりません。
Chaakoでは、こういう場合のエラー表示があり、PlayGroundでもAssistantがエラーを知らせてくれますが、ChatGPTの場合はファイルが正しく読み込まれていないにもかかわらず、エラーが表示されないことがあります。
したがって、ChatGPTに限った話になりますが、ファイルを検索/参照してくれない場合は、別のファイル形式を試してみることをおすすめします。例えば、テキストファイルであれば、UTF-8のプレーンテキスト(.txt)が安全な選択肢と言えるでしょう。