# Knowledge Answers TODO 更新时间:2026-05-16 目标: - 让知识库问答的主路径从“LightRAG 检索 + 慢模型二次整理”改为“结构化证据优先 + 模型可选总结”。 - 让问答能力尽量依赖当前文档内容本身,而不是依赖某一份制度、某一个城市或某一种表格写法。 - 参考 Yuxi 的优点,优先补齐 `统一解析思路 + 文档类型友好的结构增强 + 检索后原文证据回退`,不照搬其完整平台基础设施。 Yuxi 调研结论: - [x] 已完成 Yuxi 调研与方案提炼 备注:Yuxi 的通用性主要来自三层:统一文档解析、可切换的 chunk/preset、检索不足时回到解析后 Markdown 继续取证;并不是靠给某个文档写死回答逻辑。 本轮改造原则: - [x] 先撤掉文档特化硬编码,再补通用结构能力。 - [x] 真实答案只能来自当前命中文档的内容,代码里不固化制度金额、地区档位或条款结论。 - [x] 即使问题不是表格表达,也要能基于章节、条款、列表、键值对、上下文段落给出可读答案。 - [x] 模型只负责“压缩表达”,不负责“凭空补事实”;模型超时时也必须能返回像样的证据型答复。 实施清单: - [x] 移除当前临时文档特化 fast path 备注:删除当前围绕差旅表格、城市档位、职级档位的临时规则,避免系统继续向单文档 hardcode 演化。 - [x] 入库增强:补通用结构附录 备注:参考 Yuxi 的解析/分块思想,在现有入库文本增强中补充章节、条款、列表、键值对、表格与上下文邻接信息,让非表格关系也能被稳定命中。 - [x] 检索后增强:生成面向回答的证据片段 备注:从命中的 hits 中再次抽取更短、更结构化的 answer evidence,优先保留标题路径、条款句、列表项、表格行和与 query 强相关的上下文窗口。 - [x] 回答链路重构:证据驱动直答 备注:新增通用知识问答直答器,先根据 answer evidence 生成可直接展示的短答案;只有在证据不足或问题需要更自然表达时才调用模型。 - [x] 模型总结收口:缩小上下文面,保留原文约束 备注:把传给模型的上下文从“整段命中 chunk”收缩到“高置信 answer evidence”,既降延迟,也降低答非所问和错列风险。 - [x] 降级回答升级:从“命中摘抄”改成“证据摘要” 备注:即使模型超时或失败,也要返回按证据组织好的结论、依据和缺失信息,而不是大段原文拼贴。 - [x] 测试补齐 备注:覆盖非表格制度文本、表格文本、列表/键值对文本、模型超时降级、去除硬编码路径等关键回归点。 - [x] 真实验证与回填 TODO 备注:已重建当前知识库索引并完成真实验证。当前“回答整理”阶段已降到亚秒级,但 LightRAG 首次/冷启动检索仍受 embedding 与 rerank 耗时影响,后续如要继续压缩总耗时,应进一步优化检索参数与模型链路。 验收标准: - [x] 常规知识问答不再长时间卡在“正在整理答案”。 - [x] 文档不是表格表达时,仍能基于章节/条款/列表/上下文回答。 - [x] 文档内容变动后,不需要改业务代码里的制度结论或金额常量。 - [x] 模型超时时仍能返回结构清楚、证据明确的答案。 - [x] 相关测试通过,且没有破坏现有知识库问答流程。 验证记录: - [x] 单测通过:`test_user_agent_service.py`、`test_knowledge_normalizer.py`、`test_knowledge_rag_service.py` 共 35 项全部通过。 - [x] 当前知识库文档已按新规则 `force` 重建索引成功。 - [x] 真实问答抽检:`餐补标准是什么?`、`费用发生后多久内提交报销申请?`、`前往北京出差的报销标准是什么?` 备注:回答生成阶段约 `0.24s ~ 0.30s`;其中“前往北京出差”问题会明确提示当前证据未直接给出“北京”地区档位映射,不再硬猜。