外观
JSON 输出与 Schema 约束解决什么问题?
标准回答
合法 JSON 只保证语法可解析;Schema 进一步约束字段、类型或枚举;业务校验检查设备是否存在、用户是否有权限、动作是否允许。三层不能互相替代。
关键机制
- 模型接口支持结构化输出时,按其支持的 Schema 范围约束生成;不同平台与模式的保证范围不同。
- 执行端仍需解析与校验,处理拒答、截断、缺字段和未知值;不要只靠正则从任意文字中截一段花括号。
- 修复与重试设置上限,结果无法满足契约时返回可识别错误;不能把“修成可解析”当作修成正确业务参数。
通俗例子
模型返回 {"deviceId":"lamp-9","level":30},格式完全正确,但该设备不属于当前用户,执行器仍必须拒绝。
易混淆点
Schema 无法证明自然语言结论真实,也不能保证一个合法设备编号当前在线;运行时验证必不可少。
参考资料
内容来源
- Android 技术札记 · 原条目
structured-output