结构化输出
本节定位
很多人第一次用大模型时,默认让它输出一段自然语言。
但一旦你要把模型接进程序系统,很快就会碰到一个现实问题:
自然语言虽然灵活,但不稳定。
结构化输出就是在解决“让模型的回答更像程序接口”这件事。
学习目标
- 理解为什么结构化输出对 LLM 应用非常重要
- 学会设计一个简单但清晰的 JSON 输出格式
- 理解字段设计、约束说明和校验逻辑
- 看懂一个从 Prompt 到 JSON 解析的最小闭环
- 分清“结构化输出”和“Function Calling”的区别与联系
一、为什么光有自然语言不够?
1.1 一个很常见的脆弱场景
假设你想让模型识别用户意图:
用户输入:
“我想了解退款政策”
如果模型返回:
“这个用户大概率是想问退款相关内容,建议转到退款模块。”
人当然能看懂。
但程序会很难稳定使用这段话。
因为程序更希望拿到的是:
{
"intent": "refund_policy",
"confidence": 0.92
}
1.2 真正的问题是什么?
问题不在于模型不会回答,而在于:
自然语言输出太自由,程序很难稳定消费。
所以当模型输出要继续传给:
- 前端
- 后端
- 工作流
- 数据库
时,结构化输出几乎就变成刚需。