Skip to content

fix: correct stage12 evaluation evidence - #52

Closed
xjx-star wants to merge 3 commits into
XiaoCow666:mainfrom
xjx-star:codex/stage12-knowledge-evaluation
Closed

xjx-star wants to merge 3 commits into
XiaoCow666:mainfrom
xjx-star:codex/stage12-knowledge-evaluation

Conversation

@xjx-star

Copy link
Copy Markdown
Contributor

变更范围

这是阶段十二 PR #51 合并后的跟进修订,只修正离线评估样本的事实标签,并补充可复核的验证与维护者抽查答复。目标分支为 main,当前 head 为 fc7e45f35df8e76d10167a91bf18df2f2e2f2b72。

  • tests/fixtures/knowledge_rag_eval.json:新增真实的 array-indexing 数组下标文档,将“下标”问题的相关文档从误标的 sorting-stability 改为 array-boundary 与 array-indexing。
  • tests/test_knowledge_eval.py:锁定最后一题 top-k=1 的实际结果与 0.5 Recall,防止评估标签和行为再次脱节。
  • KNOWLEDGE_RAG_STAGE12.md:刷新当前 head 的验证结果,明确旧全量结果所属提交,并回答 64/8 边界和空索引/无匹配索引的回退路径。
  • 不修改数据库结构、权限、部署、生产密钥、核心接口或运行时数据。

与 PR #51 评审意见的对应

  1. 修正评估集标签:sorting-stability 不是数组下标文档,已替换为 array-indexing;Recall 仍按真实相关文档数计算,最后一题在 top-k=1 下为 0.5。
  2. 记录已刷新为当前 head fc7e45f。旧提交 d370b5f 的全量回归结果仍明确标注为旧提交,不冒充本次修订后的结果。
  3. 补充抽查答复:MAX_INDEX_DOCUMENTS=64 控制索引候选读取范围,ID10 在范围内、ID70 被截断;MAX_EVIDENCE=8 只控制最终证据数量。空索引的“数据库迁移”走 no_result/NO_KNOWLEDGE_EVIDENCE;有数组/指针文档但无匹配时走 priority_fallback,返回已有优先级证据以保持阶段 11 兼容行为。

验证命令与结果

使用隔离 worktree 和共享 student-eval Python 环境;未使用生产数据库、Redis、外部 AI 或生产凭据。

  • python -m pytest tests/test_knowledge_eval.py tests/test_knowledge_vector_store.py tests/test_knowledge_rag.py -q --disable-warnings:19 passed,退出码 0,37.93s。
  • python -m services.knowledge_eval:5 个问题、4 个有标注问题;Recall@1=0.875,Recall@k=0.875;模式为 vector 3、keyword_fallback 1、no_result 1;expected mode mismatch=0;共索引 16 个切片。普通问题构建 mean/P95=0.341/1.477ms,查询=0.045/0.094ms,合计=0.387/1.532ms;64 文档性能样本构建=0.946ms,查询 mean/P95=0.392/0.660ms,总耗时=40.161ms,摊销=0.402ms/次。
  • git diff --check:通过。
  • 前一提交 d370b5f 已验证全量 python -m pytest -q --disable-warnings:681 passed,13:26;本次跟进只涉及评估 fixture、评估断言和文档,当前全量结果未重新宣称。

事实与推断边界

  • 已确认事实:当前指定定向测试通过;评估输出为上述数值;标签现在对应真实数组下标文档;修订不改变数据库、权限、部署和核心运行时接口。
  • 仅属推断:CJK bigram 稀疏向量的泛化能力和本地耗时不能代表线上 Recall 或 SLA。
  • 未验证:真实 Redis、外部 AI、生产数据库、并发压力、浏览器全流程、持久化向量库和线上 SLA;本次未重跑全量回归。

后续

请按 main 当前状态复核并合并本跟进 PR;若仍需全量回归或网络侧 merge-precheck,请以新 head fc7e45f 重跑。阶段十二 PR #51 已合并,本 PR 仅承接其评审反馈中的事实记录修正。

@XiaoCow666 XiaoCow666 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

结论:需要补齐阶段 13 的必要交付证据。仅静态审查所提供的 diff,未调用工具或执行测试;未发现可由这些片段直接确认的功能或安全阻塞问题。

必要修改项

  1. [P2] 当前交付与阶段 13 任务不对应,任务台四个证据字段全部为空。
    • 位置:KNOWLEDGE_RAG_STAGE12.md 的“观察与可证伪假设”“实际结果”,以及 TASK CONTEXT 的 reproduction_evidence、planned_changes、learning_summary、verification_result。
    • 证据与影响:文档明确标注 stage12;所述瓶颈是原有 8 条候选截断。diff 确实包含扩大候选池、向量检索和回归测试,但没有证明阶段 13 当前的可靠性或容量缺口,也未说明选题如何避免与其他成员重复。不能据此确认本次阶段任务完成。
    • 请打开 KNOWLEDGE_RAG_STAGE12.md 的上述标题,保留阶段 12 历史记录;另新增 KNOWLEDGE_RAG_STAGE13.md,记录当前基线的具体输入、预期与实际结果,选择一个不重复且可回滚的子问题,并提交对应行为改动和回归测试,不要仅将阶段编号改成 13。
    • 请把任务台空字段改为具体证据:reproduction_evidence 填基线提交、复现命令和实际输出;planned_changes 填选题、去重依据、修改位置及回滚办法;learning_summary 填观察、取舍与局限;verification_result 填修改后提交、命令、退出码和结果。然后运行 python -m pytest tests/test_knowledge_eval.py tests/test_knowledge_vector_store.py tests/test_knowledge_rag.py -q --disable-warnings、python -m services.knowledge_eval 及 git diff --check,并记录所选子问题新增回归的结果。

已检查范围与后续建议

  • 已检查评估标签、Recall 分母与去重逻辑、64 条候选和 8 条证据边界、请求内索引、异常回退及新增测试。最后一题两个相关文档、top-k=1 对应 Recall=0.5,逻辑一致。
  • PR 正文称只修改 fixture、断言和文档,但提供的 diff 还新增两个服务模块并修改运行时检索。建议按实际 diff 重写变更范围,列出候选池扩大和检索模式变化,便于首次审阅者准确判断影响。
  • 验证记录请继续区分当前提交的定向结果与旧提交的全量结果;正文中的通过数量属于贡献者报告,本次未独立验证。

@xjx-star

Copy link
Copy Markdown
Contributor Author

该 PR 因 #51 为 squash 合并,导致历史分支展示为整组重复 diff。已从当前 main 新建干净跟进分支,仅保留 3 个文件的评审修正,并提交到后续 PR #53:https://github.com/XiaoCow666/CodeSense/pull/53。请以 #53 为准。

@xjx-star xjx-star closed this Sep 15, 2026
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