xsl
e78ba3feef
feat(report): LLM copy generation with mandatory post-validation and fallback
report_copy/v1 prompt(系统段零变量)+ 结构化 ReportCopy + 素材组装
(skipped 不进 prompt/超长裁剪)+ 贬损词表/一致性/绝对化三重校验 +
重试一次后降级规则直出模板(T-P3-10/11)。
- copy.py:ReportCopy(schema 宽进严出取舍见注释)/compose_prompt_material
(ok 过滤+6000 字符裁剪,低优先级先丢、硬结论不丢,记录 dropped_keys)/
render_fallback_copy 零 LLM 降级模板
- validation.py:PEJORATIVE_TERMS 35 词(源自合规 §3,初版内嵌注释)+
一致性三规则(枚举同款含别名/色值在板内/建议句需规则支撑·宽松口径)+
绝对化用语兜底
- copy_stage.py / validation_stage.py:任何出口 passed=true 或抛错,
语义层重试一次(与网关解析层重试独立),仍违规降级模板并 fail-close 自证
- 单测 25 例(词表含变形/三规则正反/降级零违规)+ 集成 4 例
(FakeProvider 全栈:干净通过/脏一次修正通过/持续脏降级且最终文案
零贬损词——黄金断言);全量 529 单测 + 49 集成全绿
偏差说明:
1. prompts/report_copy/v1.txt 非新建——LLM 批次已放置初版(user 段变量
为 {payload}),按本任务契约改写为 {dimensions_json} 并补内容红线
(该文件任务文档明确归 T17,无与他人冲突)。
2. check_conclusion_consistency 按契约签名 (copy, dimensions) 之外增加
可选 rule_hits 关键字参数:规则③的支撑判定需兼容命中内嵌在维度/
顶层列表两种 T16 契约形态,缺省时不追责(宽松口径)。
3. 绝对化用语未按单字「最」拦截,取营销语境复合词(最好/最合适/第一/
百分百等 17 词):单字会误杀「最近/最终」等中性词,红线范围不变。
4. 集成文件未挂 MEIDA_RUN_INTEGRATION skipif:用例为 FakeProvider 内存
装配、不依赖真实 PG/Redis,按任务要求仍放 tests/integration/ 并带
integration marker。
2026-08-14 22:09:09 +08:00
..
2026-08-14 20:09:12 +08:00
2026-08-14 21:19:31 +08:00
2026-08-14 16:23:14 +08:00
2026-08-14 00:54:40 +08:00
2026-08-14 00:54:40 +08:00
2026-08-14 16:27:21 +08:00
2026-08-14 00:26:39 +08:00
2026-08-14 20:12:27 +08:00
2026-08-14 16:16:26 +08:00
2026-08-14 16:27:21 +08:00
2026-08-14 19:59:15 +08:00
2026-08-14 00:54:40 +08:00
2026-08-14 20:09:12 +08:00
2026-08-14 00:54:40 +08:00
2026-08-14 01:02:13 +08:00
2026-08-14 00:26:39 +08:00
2026-08-14 00:26:39 +08:00
2026-08-14 11:28:35 +08:00
2026-08-14 16:21:52 +08:00
2026-08-14 22:09:09 +08:00
2026-08-14 22:09:09 +08:00
2026-08-14 20:12:27 +08:00
2026-08-14 00:26:39 +08:00
2026-08-14 21:16:51 +08:00
2026-08-14 20:12:27 +08:00
2026-08-14 00:26:39 +08:00
2026-08-14 20:10:21 +08:00
2026-08-14 20:10:21 +08:00
2026-08-14 20:10:21 +08:00
2026-08-14 20:10:21 +08:00
2026-08-14 20:04:46 +08:00
2026-08-14 16:23:14 +08:00
2026-08-14 00:26:39 +08:00
2026-08-14 00:54:40 +08:00
2026-08-14 16:27:21 +08:00
2026-08-14 16:17:49 +08:00