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

学习中,逐步完善

相关推荐
这儿有一堆花12 分钟前
网站链接重定向原理
前端
Tang102417 分钟前
Cursor AI 编程工具指南
ai编程·cursor
cecyci20 分钟前
如何实现AI聊天机器人的打字机效果?
前端·javascript
IT_陈寒24 分钟前
Vite 5个隐藏技巧让你的项目构建速度提升50%,第3个太香了!
前端·人工智能·后端
用户40993225021226 分钟前
复杂查询总拖后腿?PostgreSQL多列索引+覆盖索引的神仙技巧你get没?
后端·ai编程·trae
詩句☾⋆᭄南笙33 分钟前
HTML的盒子模型
前端·html·盒子模型
落言34 分钟前
AI 时代的工程师:懂,却非懂的时代
前端·程序员·架构
一枚攻城狮37 分钟前
前端知识点大汇总
前端
麦麦麦造1 小时前
有了 MCP,为什么Claude 还要推出 Skills?
人工智能·aigc·ai编程
AI分享猿1 小时前
MonkeyCode:开源AI编程助手的技术实践与应用价值
开源·ai编程