字段级校验规则
把校验规则内联写进提示:枚举取值、数值范围、字符串正则与长度。模型在输出前逐字段自检,程序侧再独立执行一遍同样的规则。两处必须对齐——提示里写的是「11 位数字」,程序里就该是同一套正则,规则不一致时模型照做也会被打回,反复重试消耗配额。
基本信息
| 校验维度 | 枚举 / 范围 / 正则 / 长度 / 必填 |
|---|---|
| 执行位置 | 提示内自检 + 程序侧独立校验 |
| 无法修正 | 输出 null 并在 notes 说明原因 |
| 对称要求 | 提示与代码里的规则逐条对应 |
典型使用场景
- 工单结构化:状态字段只能取固定枚举值
- 进度上报:数值限定在 0-100 的整数区间
- 联系方式抽取:按固定格式写入,便于后续外呼
- 批量入库前的门禁:字段级规则统一在提示和代码里各写一遍
- 多语言输出:语言码限定在固定集合内
内联校验条款
内联校验条款
输出前逐字段自检,不符合则先修正再输出:
- status:必须是 open / closed / pending 之一
- progress:0 到 100 的整数,不加百分号
- phone:11 位数字,用连字符分隔,如 138-0000-0000
- due_date:YYYY-MM-DD 格式,无法确定时输出 null
无法修正的字段输出 null,并在 notes 里说明原值形态。
自检通过后再输出完整结果,不要输出自检过程。校验维度与写法
| 维度 | 提示中的写法 | 程序侧的对应实现 |
|---|---|---|
| 枚举 | 列出全部允许取值 | 集合成员判断(同一份取值列表) |
| 范围 | 写明上下界与是否含端点 | 数值比较,注意端点开闭一致 |
| 正则 | 给出示例值而非只有文字描述 | 与示例一致的正则表达式 |
| 长度 | 按字符数还是字节数要写明 | 与提示口径一致的计数方式 |
| 必填 | 说明缺失时的输出形态 | 非空校验 + null 白名单 |
要求模型输出自检过程会把推理噪声带进结果,通常只要结果不要过程。自检作为提示内部的执行步骤存在,不必体现在输出里。
规则只写在代码里、没写进提示,是常见的返工来源:模型按自己的习惯输出格式,程序逐条打回,重试率升高但没人知道为什么。两边同时更新才有效。