RAG_COMPLETE_IMPLEMENTATION.md 2.8 KB

RAG 機能の完全実装ドキュメント

実装完了 ✅

バックエンドの実装

  • RagService: コアとなる RAG ロジック。ベクトル検索とプロンプト構築をサポート。
  • RagModule: モジュール化されたカプセル化。
  • API エンドポイント: POST /api/knowledge-bases/rag-search
  • 類似度フィルタリング: 動的なしきい値設定。
  • LangChain 統合: プロンプトテンプレートの管理。

フロントエンドの実装

  • 設定パネル: 類似度しきい値スライダー (0.1-1.0)
  • RAG サービス: API 呼び出しのカプセル化。
  • チャット統合: 自動 RAG 検索と拡張。
  • 検索ステータス: 「ナレッジベースを検索中...」のヒント表示。
  • 結果表示: SearchResultsPanel コンポーネント。

コアフロー

1. ユーザーの質問

ユーザーが質問を入力 → RAG 検索がトリガーされる

2. RAG 検索

質問のベクトル化 → ES ベクトル検索 → 類似度フィルタリング → 拡張プロンプトの構築

3. LLM 生成

拡張プロンプト → LLM 推論 → 出典が付与された回答

4. 結果の表示

回答の表示 + [ファイル名.pdf] + 検索されたセグメントの確認

主要な特徴

✅ インテリジェント検索

  • ユーザーが選択した Embedding モデルを使用。
  • 類似度しきい値によるフィルタリングをサポート。
  • ファイルごとにグループ化して結果を表示。

✅ 拡張生成

  • RAG プロンプトを自動構築。
  • ドキュメントのコンテキストと出典情報を含める。
  • 多言語での回答をサポート。

✅ ユーザー体験

  • 検索プロセスの可視化。
  • 具体的な検索セグメントの確認が可能。
  • 自動的な出典の付与。
  • 関連コンテンツがない場合の明確な通知。

✅ 柔軟な設定

  • 動的な類似度しきい値。
  • topK 結果数の制御。
  • 再ランキングのサポート(有効な場合)。

利用方法

  1. ドキュメントのアップロード → 自動的にベクトルインデックスを作成。
  2. 設定の調整 → 類似度しきい値、topK など。
  3. 質問 → 自動的に RAG 検索と拡張を実行。
  4. 結果の確認 → 出典付きのインテリジェントな回答。
  5. セグメントの確認 → 検索アイコンをクリックして具体的な内容を表示。

技術スタック

  • バックエンド: NestJS + LangChain + Elasticsearch
  • フロントエンド: React + TypeScript
  • ベクトル化: 多様な Embedding モデルをサポート
  • 検索: コサイン類似度 + しきい値フィルタリング