① 选择报销备注(对应 prompt_lab.py 的 TEST_INPUTS)
坏提示词 · BAD_PROMPT
「帮我分析一下这份报销备注:{note}」
—— 只有一个动词,没有可验证目标。模型会自由发挥:写散文、丢字段、编数字。
五要素提示词 · GOOD_PROMPT(可现场改写)
RoleGoal
ContextRules
Few-shot
BAD 输出(原始文本)
GOOD 输出(原始 JSON)
① 报销备注
② 对照实验开关
取消勾选 = 把枚举放开成自由文本 → 观察「类别字段漂移」
temperature 0.0
③ System 提示词(与 extract_api.py 一致)
你是报销审核助理。从备注中提取字段。规则:1) 备注未提及的字段输出 null,禁止编造;2) '8千'等中文数字换算为阿拉伯数字;3) 金额均为含税口径。
请求报文(发给 DeepSeek 的完整 payload)
(点击「抽取」后显示)
模型输出(JSON 高亮)
客户端校验(Pydantic 约束逐条核对)
💡
DeepSeek 只有
json_object 模式,没有服务端 schema 约束 —— 格式之外的一切约束(枚举、可空、禁止编造)都要在客户端校验。工程上不能信任模型输出。
提示词资产(v1.0.md,占位符 {policy_text} / {question} 原样保留)
版本名
现场把 Rules 加强(如注入免疫措辞)→ 版本名改 v1.1 → 重跑全套 → 看 diff。这就是 CHANGELOG.md 的网页版闭环。
制度材料(policy_text,与 run_golden.py 一致)
[TRAVEL-2026:12] 差旅住宿标准:一线城市每晚不超过 650 元,其他城市不超过 450 元。
[TRAVEL-2026:13] 餐费补贴按自然日计,一线城市每日 150 元,需提供就餐发票。
[IT-SEC-01:3] 办公电脑每 48 个月可更换,需 IT 部门评估后走资产流程。
单问试射(⚠️ = golden.jsonl 注入用例,应拒答)
Golden Set 回归(判定逻辑与 run_golden.py 对齐)
| # | 问题 | 期望 | 结果 | 模型回答 |
|---|