← Projects
Building software 528 字 · 约 2 分钟阅读

灵小禅 · 景区问答 RAG

在开源项目上补充混合检索、执行 Trace 与事实级评测,以 50 题、7 组消融分析检索链路。

更新 2026-10-04
GitHub ↗
Stack
TypeScript Express Python ChromaDB BGE Embedding RRF
目录5 节

我的工作范围

这是基于开源景区问答项目的二次开发。我的工作集中在检索链路与评测增量:围绕票价、开放时间等事实问答,补充向量、结构化与关键词三路检索,使用 RRF 融合候选并重排,通过 Express 接口返回答案、来源片段和执行 Trace。

把回答拆成可检查的事实

维护 50 题事实评测集,以事实契约检查答案是否包含预期信息。七组组件消融使用同一题集,逐题隔离会话,关闭历史与完整知识注入,固定 retrievalTopK=8、contextTopK=5,保存回答、事实命中、配置和模型身份。

历史实验结果

以下为 2026-09-17 单次受控消融实验,不是线上用户准确率,也不是当前代码的新复测。

配置事实契约通过率平均事实召回平均耗时
向量单路94%(47/50)0.9602336.08 ms
完整方案98%(49/50)0.9802882.68 ms

同题集上完整方案多通过两题,同时平均耗时增加。这是一次运行的观察差异,尚不能推出对其他题集的普遍提升。独立正式基线为 48/50(96%),与上表消融结果分开记录。

请求模型为 deepseek-chat,服务端观测模型为 deepseek-flash,原始 manifest 保留了这一差异。

失败分析与质量门禁

检索、重排、生成和降级状态分别记录。质量门禁检查 API 失败、模型身份缺失与 Trace 不一致。2026-09-21 重跑因模型服务失败,七组门禁均未通过,因此归入服务故障诊断,不替换历史正式结果。

这段实践让我更重视执行链路是否真的发生:返回了答案,不代表成功运行了完整 RAG;测试集中的事实命中,也不能替代真实使用反馈。

复查入口

项目仓库 · 消融报告与复现命令

内容核对:2026-10-04;实验日期:2026-09-17。