尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

高级RAG技术:查询扩展、自查询、过滤向量搜索与重排序的实现

高级RAG技术:查询扩展、自查询、过滤向量搜索与重排序的实现
📅 发布时间:2026/7/15 12:00:25

引言:RAG推理流水线架构概览

在构建生产级RAG系统时,检索步骤是决定生成质量的核心。本章将深入讲解四个高级RAG技术:查询扩展(Query Expansion)、自查询(Self-Querying)、过滤向量搜索(Filtered Vector Search)和重排序(Reranking)。这些技术分别作用于预检索、检索和后检索阶段,显著提升召回率和准确率。

整个RAG推理流水线流程如下:用户输入查询 → 查询扩展(生成多个变体) → 自查询(提取作者ID等元数据) → 过滤向量搜索(对每个变体执行相似度搜索,并应用元数据过滤) → 收集所有结果(N×K个) → 重排序(交叉编码器打分,取Top-K) → 构建提示并调用LLM生成答案。

预检索优化:查询扩展

问题

传统RAG使用单个向量表示查询,只能覆盖嵌入空间的局部区域。当查询的语义不够丰富时,容易遗漏相关文档。

解决方案

利用LLM生成原始查询的多个变体,每个变体从不同角度刻画同一信息需求。嵌入这些变体后,搜索范围扩大,召回率提升。

代码实现

首先定义QueryExpansionTemplate,用于构建生成多查询的提示模板:

fromlangchain.promptsimportPromptTemplatefrom.baseimportPromptTemplateFactoryclassQueryExpansionTemplate(PromptTemplateFactory):prompt:str="""You are an AI language model assistant. Your task is to generate {expand_to_n} different versions of the given user question to retrieve relevant documents from a vector database. By generating multiple perspectives on the user question, your goal is to help the user overcome some of the limitations of the distance-based similarity search. Provide these alternative questions separated by '{separator}'. Original question: {question}"""@propertydefseparator(self)->str:return"#next-question#"defcreate_template(self,expand_to_n:int)->PromptTemplate:returnPromptTemplate(template=self.prompt,input_variables=["question"],partial_variables={"separator":self.separator,"expand_to_n":expand_to_n,},)

接着实现QueryExpansion类,继承RAGStep基类:

fromlangchain_openaiimportChatOpenAIfromllm_engineering.domain.queriesimportQueryfromllm_engineering.settingsimportsettingsfrom.baseimportRAGStepfrom.prompt_templatesimportQueryExpansionTemplateclassQueryExpansion(RAGStep):

相关新闻

  • 【STM32】F103 时钟树配置实战:从理论到代码实现
  • LingBot 到底发布了什么:一文看懂 VLA、VA、World 与 Video 四条路线
  • 上海百达翡丽中国官方售后服务网络全解析 | 官网认证地址及电话全新启用(2026 年 7 月最新) - 百达翡丽售后服务官网

最新新闻

  • 为什么选择deepin-rpm-installer?openEuler系统RPM安装的最佳实践指南
  • SpringBoot穿越时光云养公益平台小程序开题报告
  • 你还在手动截图代码?Cursor AI原生导出功能深度解锁(附VS Code无法实现的3大导出特权)
  • 如何三步永久备份微信聊天记录?WeChatMsg免费工具完整指南
  • 齿轮360°环绕式全自动视觉检测系统介绍
  • 知乎数据采集利器:zhihu-spider开源爬虫实战指南

日新闻

  • 告别启动盘残留:用Diskpart彻底清除U盘EFI分区与恢复完整空间
  • 2026 年宜春诚信的塑料缠绕膜厂家哪个好,缠绕膜背后的秘密:你不知道的成本陷阱 - 领域鉴赏官
  • Arch ECS 入门指南:10分钟掌握C#高性能数据驱动架构

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号