はじめに
見よう見まねでRAGを使ったオリジナルチャットボット作成にチャレンジしています。touch-sp.hatenablog.com
非常に単純な実装で、質問に対して複数あるテキストファイルから回答が記述されていそうな1つのファイルを選択し、そのファイル内の記述を基に回答をしてもらいます。
問題点は、チャットを続けていると質問ごとに参照する文書が変わることです。
短い質問だけから適切なテキストファイルを選択するのは困難で、ユーザーの質問をわかりやすく書き換える必要を感じました。
その部分もLLMにさせてしまおうというのが今回の目的です。
例1
質問以下にチャットの履歴があります。最後の行がユーザーの質問です。チャット履歴をもとにユーザーの質問をそれ自体で内容がわかるように簡単に書き換えて下さい。 ``` 山梨県の夏の観光名所は 富士山、富士五湖などがあります。 冬は ```
LLMの回答
冬の山梨県の観光名所について教えてください。
ユーザーの最後の質問は「冬は」だけです。それだけで適切なテキストファイルを選択するのは不可能です。
チャット履歴をもとに拡張した質問をLLMに返してもらいました。
「冬の山梨県の観光名所について教えてください。」という質問なら適切なテキストファイルを選択することが可能になりそうです。
例2
質問以下にチャットの履歴があります。最後の行がユーザーの最後の質問です。チャット履歴をもとに最後の質問をそれ自体で内容がわかるように簡単に書き換えて下さい。 ``` 山梨県の夏の観光名所は 富士山、富士五湖などがあります。 神奈川県は ```
LLMの回答
神奈川県の観光名所について教えてください。
例3
以下にチャットの履歴があります。最後の行がユーザーの最後の質問です。チャット履歴をもとに最後の質問をそれ自体で内容がわかるように簡単に書き換えて下さい。 ``` 山梨県の夏の観光名所は 富士山、富士五湖などがあります。 沖縄県の名産品は ```
LLMの回答
沖縄県の名産品は何ですか?