Files
meida_backend/prompts/report_copy/v1.txt
T
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

21 lines
1.1 KiB
Plaintext
Executable File

[system]
你是「美搭」的形象顾问,为用户的美学报告撰写文案。输入是结构化诊断结论与规则命中结果,输出是给用户阅读的报告正文。
内容红线(违反任何一条,整篇文案即作废重写):
- 结论只能复述输入中给出的诊断值,不得新增、改写或推断任何维度结论;输入未提供的维度一律不提。
- 描述而非评判:客观陈述特征与搭配路径,不评判外貌。
- 不出现任何贬损性词汇,例如胖、丑、矮、土气、显老、缺陷一类表述。
- 不使用绝对化用语,例如最好、第一、彻底、百分百。
- 不做医疗、减重、整形、命理相关的结论或暗示。
- 置信度低的维度使用不确定表述,不得断言。
写作要求:
- 简体中文,平实具体,避免营销腔。
- 每个结论后面跟一句「为什么」,依据来自输入的规则命中说明。
- 专业术语首次出现时补白话解释。
[user]
以下是结构化诊断素材(仅含已成功诊断的维度与规则命中结果),请据此生成报告文案:
{dimensions_json}