You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
注册

实际RAG流程中用户追加要点问询的处理方案探讨

RAG落地中多轮对话场景的处理方案

针对你遇到的用户后续提问“再给我5个要点”的场景,结合实际落地经验,有以下几种可行的处理方式:

一、复用原始检索结果+对话历史补全

第一次调用Azure AI Search获取的5篇相关文档不要直接丢弃,而是缓存下来。当用户提出后续请求时,将以下内容一起传入大模型:

  • 完整对话历史(原问题、AI第一次输出的Top5要点)
  • 用户新提问“再给我5个要点”
  • 缓存的5篇原始文档

同时在提示词中明确约束:从提供的文档中提取未在之前回复中提及的Top5要点,禁止重复已输出的内容。这种方式的优势是无需重复调用搜索服务,节省成本,且能保证要点始终围绕原主题的文档内容,避免检索偏差。

二、基于上下文重构检索Query后重新检索

如果判断原始文档的内容已经无法提取更多有效要点,或者用户的追问隐含了拓展维度的需求,可以先让大模型基于对话历史重构检索Query,再调用Azure AI Search获取新文档。
比如针对原问题“MS keynote的Top5要点”和新提问“再给我5个要点”,重构后的Query可以是:MS keynote的额外关键要点(不包含之前提到的[已输出要点列表])
拿到新的检索文档后,结合对话历史和新文档,让大模型生成新的Top5要点。这种方式适合需要拓展内容范围的场景,但要注意Query重构的准确性,避免检索偏离主题。

三、混合策略(推荐落地)

实际落地中可以结合前两种方式:

  1. 优先尝试第一种方案,让大模型从缓存的原始文档中提取新要点;
  2. 在提示词中要求大模型判断是否还有未提取的有效内容,如果原始文档已无新信息,返回特定标识;
  3. 后台捕获该标识后,触发第二种方案,重构Query并重新检索,再生成回复。

落地注意事项

  • 做好对话上下文的管理:需要存储原问题、每轮AI回复、检索到的文档内容或唯一标识,确保多轮对话的连贯性;
  • 优化提示词约束:明确要求大模型避免重复内容,且要点必须来自提供的文档,减少幻觉;
  • 合理缓存检索结果:针对同一用户的同一主题请求,缓存检索结果的有效期可以设置为会话内有效,降低搜索服务的调用频次。

内容的提问来源于stack exchange,提问作者JamesP

火山引擎 最新活动