コンテンツにスキップ

ナレッジストアでRAGを実現する

生成AIをふつうに使うと、公開されている情報をもとに学習したモデルから文章を生成するので、公開されている情報での文章しか生成されません。
企業などで使用する場合、自らの企業だけが保有する情報を交えた文章を生成したいことが多いでしょう。その際に活用するのがRAGという方法です。
Gen2Goでは、ナレッジストア機能を使用するとRAGを実現することができます。

ナレッジストアの作成

画面左のメニューから「ナレッジストア」をクリックし、画面右上の「ナレッジストアを追加」をクリックします。

まず、ナレッジストアを新規作成します。ナレッジストア名の入力と、埋め込み用モデルを選択して「保存」をクリックします。埋め込み用モデルはデフォルトのtext-embedding-3-largeのままで良いでしょう。

その他、下記の項目を設定できます。

設定項目 API使用時の設定項目 設定内容
ハイブリッド検索時の重み alpha ハイブリッド検索で ベクトル検索(dense)vs 全文検索(BM25)をどう混ぜるかを 0.0〜1.0 で指定します。0.5付近でバランス、1.0に近づけるとベクトル重視、0.0に近づけるとキーワード重視になります。
テキスト検索の取得件数 sparse_top_k ハイブリッド時にBM25側で先に拾っておく候補件数。大きくすると珍しいキーワードにも反応しやすくなりますが、後段の統合コストが増えます。
類似度の閾値 similarity_cutoff 0〜1の間で設定し、値未満の文書はコンテキストに含めません。ノイズが多いコーパスで有効です。
メタデータフィルターモード metadata_filter_mode ナレッジ名およびCSVデータに含まれるID列やその他の項目で検索します。noneは無効、basicはナレッジ名とCSVデータのID列のみ、allはナレッジ名とCSVデータのすべての項目を対象とします。
画像認識用プロンプト 「PDF(画像認識)」の場合に使用するプロンプトを指定します。
ナレッジストアの説明 「ナレッジストアをツールとして使用する」がONの場合、エージェントがどんなときにこのナレッジストアを使用したら良いかとアドバイスする文章として使用されます。

メタデータフィルターについて

メタデータフィルターは、ナレッジストアに追加した文書(ナレッジ)名や、追加したCSVデータのIDやそれぞれの項目で、検索対象とするナレッジの絞り込みを行います。
例えば、以下のようなCSVデータ(宿泊施設一覧.csv)をナレッジとして追加した場合・・・

ID,宿泊施設名,所在地
1001,Aホテル,北九州市小倉北区
1002,Bホテル,北九州市八幡西区
1003,Cホテル,北九州市若松区

metadata_filter_modenoneの場合は、メタデータフィルターは無効です。(従来と同じ動作となります。)
metadata_filter_modebasicの場合、以下のような文字列をシステムメッセージまたは質問文に加えると絞り込みが行われます。IDでの検索は、CSVデータのヘッダ行(1行目)にIDの列がある場合が対象です。

  • ナレッジ名が宿泊施設一覧.csvのナレッジを検索して
  • IDが1001の宿泊施設を教えて

metadata_filter_modeallの場合、さらに以下のような文字列でも絞り込みが行われます。

  • 所在地が北九州市八幡西区の宿泊施設を教えて

文字列から絞り込み条件の組み立ては、「ナレッジストアをツールとして使用する」がONの場合はAIが、OFFの場合は正規表現で行います。また、ベクトル検索や全文検索とは異なり完全一致での検索となるため、allの場合は効き目が強く出過ぎる可能性があるため注意してください。
※メタデータフィルターは、2025年11月21日以降に追加した文書について有効となります。

ナレッジストアに文書を追加

次に、ナレッジストアに文書を追加します。Gen2Goでは、下記の文書を追加することができます。

  • テキスト
  • Webページ ※URLを指定して1つのページのみを追加します
  • Webサイト(サイトマップ) ※サイトマップがあれば、複数のWebページをまとめて追加できます
  • CSVファイル
  • PDF/オフィスファイル ※オフィスファイルはdocx / pptxに対応しています
  • PDF(画像認識) ※PDFファイルを1ページずつ画像化し、ナレッジストアで設定した画像認識用プロンプトでテキスト化します
  • OneDrive for Business ※限定公開

文書を追加した後、ステータスが「処理待ち」→「処理中」→「成功」と順に推移します。適宜、ページの再読み込みをして確認してください。

ナレッジストアをプロンプトに紐付ける

作成したナレッジストアをプロンプトに紐付けることによって、そのプロンプトでの文章生成にナレッジストアに追加した文書が活用されるようになります。

ナレッジストアを使用した文章生成を行いたいプロンプトの編集画面を開き、画面上の「ナレッジストア」タブをクリックします。 ナレッジストア使用設定の「ナレッジストア」のプルダウンから、使用するナレッジストアを選択します。

その他、下記の項目を設定できます。

設定項目 API使用時の設定項目 設定内容 全プラン
ナレッジストア プロンプトに紐付けるナレッジストアを指定します。
取得件数 top_k 初段の類似検索でナレッジストアから取り出すドキュメント件数。数を増やすと網羅性は上がりますが、下流の再ランク処理負荷も増えます。
リランク後の取得件数 reranker_top_n LLMベースの再ランクで最終的に残す件数。top_kで拾った候補の中から品質の高いものだけを残したい時に設定します。0のままなら再ランクはスキップされます。
検索エンジン LLM組み込み、GoogleまたはTevelyの検索結果をRAGで使用します ×
チャット時のナレッジストア検索モード session_rag_mode セッション履歴の使い方を制御します。latest=今回の質問のみ、window=直近N件(「会話履歴のウィンドウサイズ」で決定)、all=全履歴。allを選ぶと「会話履歴のウィンドウサイズ」は自動的に無効化されます。
会話履歴のウィンドウサイズ history_window 「チャット時のナレッジストア検索モード」がwindowのときに遡るヒューマン発話数。指定がなければ3発話にフォールバックします。
会話履歴を要約する condense_query 会話履歴付き検索時に、複数の過去発話+現在の質問を短い1文クエリに要約します。マルチターンで話題がぶれている場合でも適切な検索語が得られる利点があります。
ハイブリッドサーチを使用する use_hybrid_search ナレッジストアからのデータ取得は文章のベクトルデータの類似によって行われますが、それと合わせてキーワードマッチでの取得をハイブリッドで行うことができます。この機能をONにすると、ハイブリッドでの取得を行います

ナレッジストアに追加された文書は、1ファイル(1URLなど)が1つのデータになるのではなく、適切な長さで分割された文字列を1つのデータとしています。そのため、例えば100ページのPDFファイルを文書として登録しても、関係性が高いと思われる部分のみが文章生成に使用されます。