LangChain4j系列:QueryTransformer 让大模型更理解用户意图

# LangChain4j系列:Advanced RAG 核心组件源码分析与实践 文章中介绍了Advanced RAG 增强器组件,本文开始对查询转换器 QueryTransformer 的优化方案进行一一详细解密并实战。

更详细的内容大家参考如下:

查询转换 ??

查询转换将用户输入查询转换为一个或者多个查询,目标是通过修改或扩展原始 Query 来提高检索质量。让大模型更了解用户的真实意图。

目前已知的一些查询转换的方式和技术;

  • 查询压缩 (Query compression)
  • 查询扩展 (Query expansion)
  • 查询重写 (Query re-writing)
  • 后退提示 (Step-back prompting)
  • 假设文档嵌入 (HyDE)

本文将详细介绍每种查询转换技术的技术细节以及在实践中如何使用它们。

查询压缩

在LangChain4j框架中查询压缩的实现方式基于:大模型 + 提示词。

text 复制代码
"""
        Read and understand the conversation between the User and the AI. \
        Then, analyze the new query from the User. \
        Identify all relevant details, terms, and context from both the conversation and the new query. \
        Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.
        
        Conversation:
        {{chatMemory}}
        
        User query: {{query}}
        
        It is very important that you provide only reformulated query and nothing else! \
        Do not prepend a query with anything!"""

意思就是:从用户会话的上下文中识别与用户查询相关的内容,将用户的查询改写为清晰、准确、自描述的新的查询。

举个例子:

text 复制代码
User: Tell me about John Doe  
AI: John Doe was a ...  
User: Where did he live?

Where did he live?如果不结合历史会话或者说没有查询压缩,那么大模型无法确认 he 是谁。所以经过压缩查询,Where did he live?将会转换为 Where did John Doe live?

查询扩展

学习中,逐步完善

查询重写

学习中,逐步完善

Step-Back Prompting

学习中,逐步完善

HyDE

学习中,逐步完善

相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
AlbertZein1 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
1点东西1 天前
做了近两年的Agent开发,其实真正要学的就是这五件事
llm·agent·ai编程
七牛云行业应用1 天前
Qwen-Image-2.1 开源部署完整指南:Diffusers、ComfyUI 与推理服务
ai编程
卡布鲁1 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
福如意如我心意2 天前
TencentDB Agent Memory和其他开源memory
ai编程