37
在多轮对话中,如何处理Query改写(Query Rewriting)以提升RAG检索效果?
RAG检索增强生成中等
📋 面试问题
在多轮对话中,如何处理Query改写(Query Rewriting)以提升RAG检索效果?
✅ 期望回答
多轮对话中,用户Query常含指代(「它的性能怎么样?」),不能直接用做检索Query
处理方案:- Query改写:将用户Query与历史对话上下文拼接 -> 让LLM生成完整的检索Query
改写后 -> 「vLLM中的PagedAttention是什么?」
- 上下文窗口检索:不仅用当前Query,还从对话历史中提取近1-3轮的关键实体/话题,联合检索
- 意图维持:如果用户转换话题,检测到Topic Change则重置上下文
- 用轻量LLM(如LLaMA-3 8B)做Query改写,成本低延迟小
- 缓存改写的Query -> 检索 -> 如果Recall@k低于阈值、无结果,重新改写
- LangChain/LlamaIndex有ConversationalRetrievalChain等现成工具支持
#Query改写#多轮对话#上下文