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 結果数の制御。
- 再ランキングのサポート(有効な場合)。
利用方法
- ドキュメントのアップロード → 自動的にベクトルインデックスを作成。
- 設定の調整 → 類似度しきい値、topK など。
- 質問 → 自動的に RAG 検索と拡張を実行。
- 結果の確認 → 出典付きのインテリジェントな回答。
- セグメントの確認 → 検索アイコンをクリックして具体的な内容を表示。
技術スタック
- バックエンド: NestJS + LangChain + Elasticsearch
- フロントエンド: React + TypeScript
- ベクトル化: 多様な Embedding モデルをサポート
- 検索: コサイン類似度 + しきい値フィルタリング