Files
PlantAI-rag-new/docs/team/TEST_REPORT_PRIV_R3.md

4.5 KiB
Raw Permalink Blame History

TEST_REPORT_PRIV_R3 —— 私有资料问答轮次测试 R3(R2 缺陷复测 + 全量回归)

docs/team/TEST_REPORT_PRIV_R3.md | T1 执行 2026-09-08 | 用例表 docs/team/TEST_CASES_PRIVATE.md(v1.3) 基线:feature/bioflow-conversation-orchestration @ 92e2754(BUG-PRIV-R2-01 修复,BFF 已重启) L4 浏览器冒烟由 TL 终验执行。

1. 执行摘要

  • BUG-PRIV-R2-01 关闭:真命中问题「批量导入压测样例 序号 38」→ hit:true + answer 明确回答「序号为 38,标志串 DOCGEN_PERF_SENTINEL_9F3A」并引 [资料1][资料2]。
  • R1 三缺陷复验无回归:ok 键 / 422(空+缺)/ 无关查询 hit:false 全部保持。
  • 全量回归全绿:vstore 101/101;sdk 225 passed + 38 errors(预存基线);前端 373 + 23 = 396。
  • 红线 diff 复核:全部为空。
  • 缺陷清零(含观察项 1 条,非缺陷)——具备 TL 终验条件。

2. 缺陷复测结论

BUG-PRIV-R2-01(ask_private 的 LLM 调用未传 question)——【关闭】

  • 复现问题(R2 失败用例):POST /api/qa/private {"question":"批量导入压测样例 序号 38"}
  • R3 实际:{ok:true, hit:true, mode:"vector", items:8, elapsed_ms:…}
    • answer 关键句:「相关资料([资料1]、[资料2])仅显示该样例的标志串为 DOCGEN_PERF_SENTINEL_9F3A,序号为 38……其他资料([资料3]至[资料8])涉及序号 37、48、58,与序号 38 无关。」
    • [资料n] 编号与 items[].ref 对应;明确回答了用户问题指向。
  • 修复实现核对(git show 92e2754,仅 sdk/app/services/privateqa.py,+5/-1): user_message = f"用户问题:{question}\n\n参考资料:\n{context}" 替换原 context 直传——LLM 现收到用户问题与参考资料。修复面与 R2 报告建议一致,无越界改动。

R1 三缺陷复验(无回归)

缺陷 复验结果 判定
BUG-PRIV-R1-01(信封缺 ok 键) 未命中态 keys=[answer,hit,items,mode,ok],ok:true 保持关闭
BUG-PRIV-R1-02(空 question 422) 空 question HTTP 422 VALIDATION;缺 question HTTP 422 VALIDATION 保持关闭
BUG-PRIV-R1-03(无关查询零痕迹) 无关查询 → ok:true, hit:false, mode:empty, items:0 保持关闭

3. 全量回归统计

套件 结果 对比 R2
vstore pytest(仓库根全量) 101 passed,2 warnings(fastapi DeprecationWarning 预存) 一致
sdk pytest(sdk/ 全量) 225 passed / 0 failed / 38 errors(38 errors = 预存基线 test_docgen_api.py collection ERROR,R1 报告 §5 已有 dea4640 对照证据) 一致
前端 vitest 全量 27 files / 373 passed 一致
前端 private_docs 4 files / 23 passed 一致

4. 观察项(非缺陷)

O-R3-01:sdk 全量首跑出现 1 failed(app/services/test_docgen_pipeline.py::test_generate_outline_fallback_default,断言「背景与目标」未命中)。排查结论:该测试文件与 pipeline.py 相对 dea4640 基线均零改动(git diff dea4640 HEAD --stat 为空),92e2754 仅改 privateqa.py;隔离单跑该用例 3/3 通过(0.6s),随后全量重跑恢复 225 passed / 38 errors——判定为偶发 flaky(大纲 LLM 降级测试的伪随机/顺序相关),与本轮 FR-PRIV 改动无关。建议 TL 知悉,若再现在独立任务中处理(测试文件不在 FR-PRIV 清单内,T1 不动)。

5. 红线 diff 复核(dea4640..HEAD)

项 结果
QA 金标树 8091(agent/qa) diff 空
前端红线(modes/labels/bench/api/qa/sse/parser/PipelineCard) diff 空
vstore 红线(retrieval/parsing/backend/crypto) diff 空
sdk 红线(qa.py/sse_relay.py/compile_sdk.sh) diff 空
新模块无 yield(privateqa.py / private_docs.py) grep 0 / 0

HEAD=92e2754,修复仅 1 文件(privateqa.py +5/-1),在清单内。

6. 用例表回写(TEST_CASES_PRIVATE.md v1.3)

  • TC-PRIV-L2-10 判据:去掉「LLM 上下文不含 question(BUG-PRIV-R2-01)」R2 注,改为「LLM 收到用户问题与参考资料(user_message = 用户问题 + [资料n] 参考资料)」。
  • 追溯矩阵复核:defined = used,无孤儿无缺漏。

7. 结论

R3 缺陷清零(R2-01 关闭 + R1 三缺陷保持关闭 + 无新缺陷;观察项 O-R3-01 为非 FR-PRIV 的偶发 flaky,已记录)。全量回归与红线复核全绿。具备 TL 终验条件(L4 浏览器项由 TL 终验执行)。