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
+7 -2
View File
@@ -137,11 +137,16 @@ class WriterAgent:
self._chunk_source(context.structured_source) # 分块可用性验证(真实拼回留待后续)
# 步骤 A:推导本章期望输出语言(仅依赖 context,循环前置,稳定)
v = context.to_vars()
# fallback 用「规则文档」(write_rules/design_rulesRAG 自日文作成说明书/记入规则检索,
# 含假名可判日文)。不能用 impact/data(源数据):样本含中文元素名(止损风控等)、
# 影响标签为汉字无假名 → 会把日文文档误判为期望 zh(真实试运行暴露)。
expected = resolve_expected_language(
explicit=context.output_language,
title=context.title,
fallback_texts=[v.get("impact", "") or "", v.get("data", "") or ""],
fallback_texts=[
"\n".join(context.write_rules or []),
"\n".join(context.design_rules or []),
],
)
last_err: Exception | None = None