当模型输出要进入程序、表格或数据库时,自然语言的灵活性会变成解析风险。结构化输出可以缩小自由度,但它只能解决部分问题。
一、任务约束:先定义要判断什么
字段名称无法替代任务定义。分类标签的含义、允许证据、缺失信息处理和拒答条件,都需要在任务说明中明确。否则模型可能返回格式完美但含义错误的结果。
二、模式约束:定义输出形状
输出模式应说明字段类型、必填项、枚举值、数组结构和是否允许额外字段。字段越少越容易验证;只为后续流程真正使用的信息建立字段。
三、字段验证:格式有效不代表值有效
解析成功后仍要检查空值、长度、日期、数字范围、枚举和重复项。不要让模型自行决定关键标识、金额或权限值是否合法。
四、业务校验:把规则留在确定性程序中
库存不能为负、结束时间不能早于开始时间、普通用户不能获得管理员权限,这些规则应由确定性逻辑执行。模型适合提取与建议,不应成为唯一的权限判定器。
五、失败时应该怎样处理
- 格式无法解析:可在有限次数内要求模型按原模式修复。
- 字段校验失败:返回具体字段错误,不重新开放整段自由生成。
- 业务规则失败:停止写入并交由用户或上游流程处理。
- 多次失败:保留原始输入与错误原因,避免无限重试。
参考来源
- Understanding JSON Schema,用于结构模式概念参考,访问于 2026-07-29。