
図7.1.5
7.1.6
RAGの実装
ここまでで、コンテキストに任意のテキストを追加する方法を学びました。ここでは、ユー
ザからの入力に関連する情報を動的に取得し、それをコンテキストに追加する方法を学びま
す。このようにして回答を生成する方法が、RAG(Retrieval Augmented Generation)で
す。
RAGでは、あらかじめ情報を登録したインデックスが必要です。インデックスは、プログ
ラムの実行前に作成しておくことを想定しています。インデックスに格納する情報の候補とし
ては、主にLLM の訓練データに含まれていない様々な情報が考えられます。例えば、最新の
情報や企業の内部データ、個人の固有情報などが挙げられます。
以降、本項ではインデックスの作成とインデックスを利用したチャットボットの実装方法を
順に説明します。ここでは、インデックスを事前にファイルシステム上に保存しておき、
チャットボットの実行時に読み込むようにします。
インデックスの作成
まずファイルシステム上にインデックスを作成します。ここでは、コマンドラインからイン
デックスを作成するプログラムを作成します。このプログラムの引数には、CSVファイルを
指定して、そのファイルからインデックスを作成します。
CSVファイルのロードには、LangChain が提供するクラスを利用します。LangChain は
CSV以外のローダも提供しているため、このプログラムを少し修正して、他の形式のファイ
ルからもインデックスを作成することも可能です。 ...