Skip to content

【修复】对话总结意图跳过知识库检索 - #3919

Open
Jonesxq wants to merge 1 commit into
Tencent:mainfrom
Jonesxq:fix/summarize-intent-retrieval
Open

Jonesxq wants to merge 1 commit into
Tencent:mainfrom
Jonesxq:fix/summarize-intent-retrieval

Conversation

@Jonesxq

@Jonesxq Jonesxq commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

背景

对话总结类请求被分类为 summarize,但随后仍触发知识库向量检索、重排等流程,增加延迟并可能把知识库内容混入对话总结。

修改内容

  • IntentSummarize 不再被 NeedsRetrieval() 判定为需要知识库检索。
  • 增加意图路由回归测试,覆盖知识库搜索、澄清、总结、其他对话意图、空意图兜底,以及 Web Search 开关。

验证

  • 修复前后 trace 对照:修复前总结请求仍执行 embedding/retrieve/rerank;修复后这些检索阶段耗时为 0,符合跳过知识库检索的预期。
  • gofmt 和 git diff --check 通过。
  • go test ./internal/types ./internal/application/service/chat_pipeline 在当前 Windows 环境未能进入测试阶段:环境 CGO_ENABLED=0,而现有 internal/utils/inject.go 依赖 pg_query_go 的 CGO 实现(Parse/Deparse),编译失败。此失败与本次改动无关。

Fixes #3918

修复前后 Trace 对比

图一:修复前 — summarize 意图仍执行知识库检索、重排。

修复前 Trace

图二:修复后 — 检索阶段已跳过。

修复后 Trace

@jdzhang1221

Copy link
Copy Markdown

为什么总结要查知识库
总结型请求通常有两种情况,两种都依赖知识库:

总结知识库里的内容:比如“帮我总结一下这份文档的要点”,那必须先把文档内容检索出来才能总结。

总结当前对话或某个话题:即使总结对象是对话,模型也往往需要回查知识库里的相关材料,确保总结有据可依,而不是仅凭记忆。

把总结型请求归为“需要检索”,是宁可多查、不可漏查的保守策略——多检索一次的成本,远低于总结时漏掉关键信息、给出错误结论的代价。

@Jonesxq

Jonesxq commented Oct 5, 2026

Copy link
Copy Markdown
Contributor Author

@jdzhang1221 你说得对,这里不能只凭 summarize 这个标签一刀切。总结知识库或文档内容需要先检索;如果总结当前对话时也需要知识库资料佐证,同样不能跳过检索。当前 PR 把这些场景都归为免检索,确实过于粗略,可能漏掉必要依据。

更合适的做法是区分总结对象以及是否需要知识库依据,再决定路由。这个边界我之前考虑得不够充分,感谢指出。

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

【缺陷】对话总结意图仍触发知识库检索

2 participants