feat: 重构知识库系统,移除Hermes集成,增强RAG和同步功能

主要变更:
- 移除Hermes智能体及相关回调服务
- 新增知识库RAG、同步、调度、规范化和索引任务服务
- 重构orchestrator服务,增强运行时聊天功能
- 更新前端聊天、政策制度、设置等页面样式和逻辑
- 更新expense_claims和document_intelligence服务
- 删除llm_wiki相关服务和测试文件
- 更新docker-compose配置和启动脚本
This commit is contained in:
caoxiaozhu
2026-05-17 08:38:41 +00:00
parent 212c935308
commit 68f663f2f4
308 changed files with 83729 additions and 13588 deletions

View File

@@ -0,0 +1,56 @@
# 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`;其中“前往北京出差”问题会明确提示当前证据未直接给出“北京”地区档位映射,不再硬猜。