结构化输出落地时,Schema 设计比模型选择更关键
如果只讲原则,这篇文章还是会显得空。所以我直接拿一个真实得不能再真实的例子来说:退款工单分诊。
这类任务的目标通常是把用户自然语言输入转成一个后续系统能继续处理的对象,例如:
- 这是不是退款请求
- 订单号有没有识别到
- 用户给出的理由是什么
- 是否要转人工审核
团队最早的做法很常见:先让模型直接输出一段 JSON,大概长这样:
{
"title": "用户申请退款",
"summary": "用户表示重复支付,希望退款",
"tags": ["退款", "重复支付"]
}
看上去没毛病,前端也能展示,测试样本甚至都能过。但真正进系统后,这种 Schema 很快就会把问题暴露出来:它描述了内容,却没有描述动作边界。
真正让系统难受的不是模型会不会吐 JSON,而是下游根本不知道怎么用这个结果继续执行。
