实现真实的混合检索框架
All checks were successful
构建并部署 AI Agent 服务 / deploy (push) Successful in 6m23s

- 移除假的 create_hybrid_retriever 实现
- 添加 HybridRetriever 类,支持检测 Qdrant 稀疏向量配置
- 更新 README.md 说明现状(未配置稀疏向量,优雅降级到纯稠密检索)
- 语法检查通过
This commit is contained in:
2026-05-03 17:46:38 +08:00
parent a9451681f6
commit 17bc72b76c
2 changed files with 91 additions and 8 deletions

View File

@@ -103,11 +103,19 @@ retriever = create_base_retriever(
docs = retriever.invoke("什么是 RAG")
```
### Level 2: 混合检索与重排序 (Hybrid Search + Reranker)
### Level 2: 混合检索与重排序Hybrid Search + Reranker
混合检索旨在结合向量的"语义泛化"与关键词的"精匹配",随后利用重排序模型过滤噪声。
混合检索旨在结合向量的"语义泛化"与关键词的"精匹配",随后利用重排序模型过滤噪声。
**1. 基础召回 (混合检索)**
**⚠️ 现状说明**
- `create_hybrid_retriever` 函数已实现框架,能检测 Qdrant 集合是否有稀疏向量配置
- 目前 Qdrant 集合**未配置**稀疏向量字段,混合检索会优雅降级为纯稠密检索
- 如果需要启用完整混合检索,需:
1. 使用 BM25 计算稀疏向量
2. 在 Qdrant 集合配置 sparse_vectors
3. 更新索引器以同时存储稠密和稀疏向量
**1. 基础召回(纯稠密检索)**
- **核心原理**: 结合基于 HNSW 的 Dense Vector 相似度搜索与基于 TF-IDF 的 BM25 稀疏检索 (Sparse Vector)。
- **实现指南**: 使用 `app/rag/retriever.py` 中的 `create_hybrid_retriever` 函数,配置 `dense_k=10``sparse_k=10`,总召回 20 条结果。