RAG機能について

公開日 2026年10月08日

更新日 2026年10月08日

JoruriAgent(チャットボット)のRAG機能の操作マニュアルです。

RAG機能について[PDF:1.76MB]

RAGのしくみ

RAGのしくみは下記の通りです。

RAGのしくみ

事前準備

Webページをクローリングし、生成AIが参照できるようにインデキシングを実施します。

  1. WebページをクロールしてDBテーブルに登録
    1日に1回、サイトの記事ページを取得(クロール)してDBテーブルに登録します。
  2. テキストをチャンキング(分割)
    記事ページのテキスト(タイトルと本文)を一定のサイズに分割して、DBテーブルに登録します。
  3. テキストをBERTに入力
    テキストをBERT(Bidirectional Encoder Representations from Transformers)に入力します。
  4. テキストをベクトルに変換
    BERTがテキストをベクトルに変換します。
  5. Elasticsearch(検索エンジン)にテキストとベクトルを保存
    テキストとベクトルをElasticsearchに保存して検索できるようにします。
    これをインデキシングと呼びます。

生成AIによる回答作成

ユーザーが入力した質問からページを検索し、検索したページを参照して生成AIが回答を作成します。

  1. ユーザーの質問をBERTに入力
    ユーザーの質問をBERTに入力します。
  2. 質問のテキストをベクトルに変換
    事前準備の3.と同様にBERTが質問のテキストをベクトルに変換します。
  3. 検索処理を実行
    質問のテキストで全文検索を実行、ベクトルでベクトル検索を実行します。
    その後、各々の検索結果をRPF(Reciprocal Rank Fusion)で統合します。
  4. 検索結果に対応するWebページのテキストを取得
    検索結果に対応するWebページのテキストを取得します。
  5. LLMへ入力するプロンプトを作成
    ページのテキストをベースにLLMへ入力するプロンプトを作成します。
  6. プロンプトをLLMへ入力
    作成したプロンプトをLLMへ入力します。この時、LLMへのシステム指示も入力します。
  7. LLMの出力を表示
    LLMの出力を公開画面に表示します。

利用しているモジュール

RAG Python 3.11
FastAPI + Transformers(エンベディングAPI)
Elasticsearch 9.3.4
Gemini API
Topへ