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

学习中,逐步完善

相关推荐
Mintopia2 分钟前
深入理解 Three.js 中 Shader 的使用及示例
前端·javascript·three.js
睡觉zzz4 分钟前
React写ai聊天对话,如何实现聊天makedown输出转化
前端·人工智能·react.js
iOS阿玮4 分钟前
截止目前已有15.6w应用惨遭下架,你的应用还好么?
前端·app·apple
半旧5185 分钟前
【重构谷粒商城12】npm快速入门
前端·重构·npm
snakeshe10107 分钟前
剖析 React Commit 阶段:详解工作流程与三大核心模块
前端
爱生活的前端狗9 分钟前
一次大批量处理视频文件的性能优化记录
前端·javascript·vue.js
玲小珑9 分钟前
LLMOps开发(四) Tool + Agent
langchain·node.js·ai编程
不讲道理的柯里昂10 分钟前
基于 JSXGraph + Vue3.0 的交互式几何作图组件开发实践
前端
wordbaby11 分钟前
Axios 封装:集成 Loading、Token、401 与 503 智能重试
前端
Mike_jia14 分钟前
一篇文章带你了解一款强大的LLM应用开发平台---Dify
前端·开源