forked from hangshuo652/aurak
feat: implement QuestionBank CRUD with pagination and template query
- Add pagination support to findAll (page, limit query params) - Add findByTemplateId method to service - Add GET /by-template/:templateId endpoint to controller - Service already includes CRUD for QuestionBank and QuestionBankItem
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
# 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 モデルをサポート
|
||||
- **検索**: コサイン類似度 + しきい値フィルタリング
|
||||
Reference in New Issue
Block a user