- ツール使用不使用の判断
LLM は,入力の
1. システムプロンプト
2. 文脈
3. ユーザ入力テクスト
を読み,
最初のトークンを出力するまでの間に,
ツールを使うかどうかを判断する
判断すること:
この質問は検索が必要か?
計算ツールを使うべきか?
外部DBに問い合わせるべきか?
- テクスト生成
A. ツールを使用しないと判断したときは,
文脈 + ユーザ入力テクスト に対して,応答を生成する。
B. ツールを使用すると判断したときは,
Action
Action Input
Thought
を生成する。
Action, Action Input の書式:
JSON形式や特定フォーマットで書く
JSON形式:
{
"tool": "search",
"query": "‥‥ (クエリ)"
}
クエリのタイプ
検索クエリ
DB問い合わせ文
APIパラメータ
Thought として,
文脈 + ユーザ入力 の圧縮
を生成
- 生成テクストの出力先の分岐
プログラムが,最初のトークンを受け取る。
ツール使用のときは,JSON形式
{
"tool": "search",
"query": "‥‥ (クエリ)"
}
から生成される。
そこで,最初のトークンが " { " かどうかで,ツール使用か不使用かを判定できる。
A. 最初のトークンが " { " 以外の場合 (ツール不要)
そのまま Final Answer の文章が始まる
ユーザにストリーミング開始
B. 最初のトークンが " { " の場合(ツール呼び出し)
Action + Action Input + Thought が続く
ユーザには見えない
|