fix(writer): auto 模式语言 fallback 改用规则文档,修复日文文档被误判期望 zh

真实 ja 试运行暴露:auto 模式 fallback 误用 impact/data 源数据(含中文元素名
止损风控等 + 汉字标签无假名)→ 把日文文档误判为期望 zh → LLM 正常日文输出被
判违规 → 硬失败。修复:fallback 改用 write_rules/design_rules(RAG 自日文作成
说明书/记入规则检索,含假名可靠判 ja);加回归测试
test_generate_chapter_auto_with_ja_rules_but_chinese_source_data_enforces_ja。
修复后 ja 真实试运行成功(7章);zh 真实试运行成功(7章);425 passed / 99.15%
This commit is contained in:
lhl
2026-08-26 00:36:54 +08:00
parent d01e1b720f
commit 3f4d17cf69
4 changed files with 47 additions and 6 deletions
@@ -100,13 +100,20 @@ python scripts/run_trial.py
- [x] 步骤 0-3 实施
- [ ] 验收
## 验收记录(2026-08-25
## 验收记录(2026-08-25,含真实 LLM 双跑
- pytest 全量:**424 passed / 99.15%**(覆盖率门槛 99% 达标)
- pytest 全量:**425 passed / 99.15%**(覆盖率门槛 99% 达标)
- Fake 模式双模板试运行:zh 模板 + `--output-language zh` → 7 章 docxja 模板默认 → 7 章 docx,均无崩溃
- 程序化扫描 `output/zh_output.docx`:25 段落,**0 日文假名混入**(语言一致性成立)
- **真实 LLM 双跑(2026-08-26.env 已配 key**
- `--template 概要设计书模板_中文.docx --output-language zh` → 7 章 ✓,无强制硬失败
- ja 模板默认(auto)→ 首次在 function_list 硬失败(期望 zhBUG),修复 fallback 后重跑成功 7 章 ✓
- **程序化扫描真实输出**
- `zh_real.docx`48 非空段落,1 处含假名 = **表5-1 表格说明段落**(中文句式 + 引用日文源表名 訂単テーブル/即時行情テーブル)→ 属"表格照抄原文"范畴,判定可接受
- `ja_real.docx`:47 非空段落,1 处纯汉字 ≥12 = **封面字段「作成日: 2026-08-26」**(模板元数据,非正文)→ 误报
- 结论:**两输出均无中日混杂正文缺陷**;检测器按设计排除 table/heading 与封面元数据
- **真实试运行暴露并修复的 BUG**auto 模式 fallback 误用 impact/data 源数据(含中文元素名 止损风控 等 + 汉字标签无假名)→ 把日文文档误判期望 zh → 硬失败。修复:fallback 改用 **write_rules/design_rules(规则文档,日文含假名)**,并加回归测试 `test_generate_chapter_auto_with_ja_rules_but_chinese_source_data_enforces_ja`
- 约束链路单测覆盖:writer 重试/硬失败、QA 第 11 维度、validator 透传、qa_loop 透传
- ⚠️ **未执行项**:真实 LLM 双语双跑需 `GENESIS_INFERENCE__API_KEY`(本环境无 key),确定性强制逻辑已由 e2e + 单测 + 覆盖率间接验证;真实双跑待 key 就绪后补。
- ⚠️ 说明:ja 真实跑曾出现一次 function_list 随机性硬失败(LLM 单次输出疑似纯汉字段落),重跑即成功 → LLM 输出方差,强制机制按设计重试/硬失败,非确定性缺陷
## 实施进度(2026-08-25 暂停于步骤 A 修正点)