本章节介绍 GC-QA-RAG 智能问答系统的核心检索技术原理,包括向量化策略、混合检索机制、RRF 融合排序等关键实现细节。

1. 检索流程概述

系统采用典型的 RAG(Retrieval-Augmented Generation)三阶段架构,检索阶段的目标是:在用户提问时,结合关键词与语义理解,快速定位最相关的知识点,为后续生成高质量答案提供支撑。

检索流程如下:

  1. 用户输入问题;
  2. 系统对问题进行向量化(稠密+稀疏);
  3. 在知识库中并行检索“问题”和“答案”字段;
  4. 采用 RRF(Reciprocal Rank Fusion)算法融合多路检索结果,返回 TopK 最优答案。

2. 混合检索机制

2.1 多通道检索

系统采用混合检索(Hybrid Search),即同时利用稀疏向量(BM25)和稠密向量(Dense Embedding)两种方式,分别对“问题”和“答案”字段进行检索:

  • 稀疏检索(BM25):适合关键词明确的查询,召回能力强;
  • 稠密检索(Dense Vector):基于语义相似度,适合复杂表达和模糊查询。

每一路检索均获取 TopK=40 条候选结果。

2.2 检索字段

每个知识条目包含四类向量特征:

  • Prefix_Question_Dense
  • Prefix_Answer_Dense
  • Prefix_Question_Sparse
  • Prefix_Answer_Sparse

检索时,用户问题会分别与“预设问题”和“答案”字段的稠密/稀疏向量进行匹配,极大提升了召回率和相关性。

2.3 RRF 融合排序

多路检索结果通过 RRF(Reciprocal Rank Fusion)算法进行融合排序,最终选取 TopK=8 条最优结果返回。RRF 能有效兼顾不同检索通道的优势,提升最终结果的多样性和准确性。

3. 检索实现细节

3.1 向量化与查询

  • 用户问题首先通过 embedding 模型生成稠密向量和稀疏向量(如 BM25 权重);
  • 检索时,分别以“问题稠密”、“答案稠密”、“问题稀疏”、“答案稀疏”四路向量为查询,调用向量数据库(如 Qdrant)的多路预取(Prefetch)接口;
  • 检索结果通过 RRF 融合,去重后返回。

3.2 代码实现要点

以 search.py 为例,核心检索逻辑如下:

  • get_embedding_pair:对输入问题生成稠密和稀疏向量;
  • search_sementic_hybrid_single:对单个知识库集合,分别以四路向量进行预取检索(Prefetch),并通过 RRF 融合排序;
  • search_sementic_hybrid:对所有知识库(如文档、论坛问答、教程)并行检索,合并结果;
  • distinct_search_hits:对检索结果去重,确保每个知识点唯一。

3.3 检索流程示意

用户问题
   │
   ├─> 生成稠密/稀疏向量
   │
   ├─> [问题稠密] ─┐
   ├─> [答案稠密] ─┼─> 多路检索(TopK=40)
   ├─> [问题稀疏] ─┤
   └─> [答案稀疏] ─┘
         │
   └─> RRF 融合排序 → TopK=8
         │
   └─> 返回检索结果

4. 检索结果的结构与用途

每条检索结果包含:

  • Question:预设问题
  • Answer:标准答案
  • FullAnswer:详细解释
  • Summary:上下文摘要
  • Url、Title、Category、Date 等元数据

这些信息不仅用于直接展示,也为后续大模型生成答案提供丰富上下文。

5. 技术优势与优化点

  • 多路混合检索:兼顾关键词和语义理解,极大提升召回率和准确性;
  • RRF 融合排序:有效融合多通道结果,提升多样性和相关性;
  • Prefix 机制:通过文档类别/标题前缀,避免语义混叠,提升检索精准度;
  • 高效去重:确保每个知识点唯一,避免重复信息干扰。

6. 总结

本系统通过多通道混合检索、RRF 融合排序、丰富的向量化与元数据设计,实现了高效、精准的知识检索能力,为智能问答系统提供了坚实的基础。

历史文章

GC-QA-RAG 智能问答系统的文档切片

了解更多

AI智能体开发指南

葡萄城技术团队
2.7k 声望33.2k 粉丝

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。