22 结构化输出¶
难度:中级|前置:LLM 基础|目标:让模型输出进入可靠程序边界
为什么不能解析一段随意文本¶
错误做法:
模型可能改变措辞、顺序和语言,程序解析脆弱。
结构化结果:
{
"is_correct": false,
"score": 0.5,
"confidence": 0.72,
"error_type": "calculation",
"explanation": "第二步计算错误"
}
Schema 的三层作用¶
1. 语法结构¶
- 必填字段;
- 类型;
- 枚举;
- 数组和嵌套对象。
2. 业务规则¶
Schema 合法后继续校验:
3. 业务权限¶
即使参数合法,也要判断用户是否有权操作目标资源。
失败处理¶
不要无限让模型“再试一次”。
Schema 设计原则¶
- 字段少而明确;
- 使用枚举代替自由文本分类;
- 描述字段含义和单位;
- 区分未知、空值和不适用;
- 不让模型生成可由程序计算的字段;
- 给 Schema 版本号。
置信度¶
模型自报置信度不是可靠概率。可以作为信号之一,但必须通过历史数据校准,并结合:
- 规则检查;
- 检索质量;
- 多次一致性;
- 人工标注;
- 任务风险。
自测¶
- JSON 可解析为什么仍不代表业务正确?
- 哪些字段不应该让模型生成?
- 结构化输出连续失败后应该怎么办?
- 模型置信度为什么不能直接当真实概率?
完成标准¶
- 能为一个判题或诊断结果设计 Schema
- 能写出至少三条业务校验
- 能设计有限重试和回退
- 能解释 Schema 版本的意义
下一单元:Tool Calling 可靠性