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

学习中,逐步完善

相关推荐
JustHappy10 小时前
古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
前端·后端·网络协议
snow@li10 小时前
SEO-文章标题:写文章时候,分类+主标题+大纲+解释 作为标题 / 不点进去也知道全文覆盖什么 / 标题即架构
前端
kyriewen11 小时前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试
小和尚同志11 小时前
AI 自动化测试探索(一):Playwright MCP
前端·人工智能·aigc
老马识途2.012 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring
徐小夕12 小时前
Loop Engineering 深度解析与实战指南(全网最全)
前端·算法·github
运筹vivo@12 小时前
Python ContextVar 底层机制与内存模型拆解
前端·数据库·python
一只叫煤球的猫12 小时前
团队使用 Claude Code / Codex 的规范治理——献给所有全员 AI 开发的团队
人工智能·agent·ai编程
#麻辣小龙虾#14 小时前
基于vue3.0开发一款【固废与废气运维管理系统】(支持源码)
前端·vue.js·vue3