OpenAI最近推出了一项重要的新功能,以响应用户需求:API的结构化输出。这一功能旨在解决大型语言模型(LLMs)生成JSON内容时出现的问题,如幻觉或不完整解析。
新的结构化输出功能确保模型生成的输出与指定的JSON模式相匹配。这对于保持应用程序的一致性至关重要,也是开发者最迫切需要的功能之一。OpenAI首席执行官Sam Altman指出,这一发布"满足了许多用户的迫切需求"。
关于结构化输出功能的要点:
- 适用于GPT-4o-mini、GPT-4o及其微调版本
- 兼容聊天完成API、助手API、批处理API和视觉输入
- 允许开发者限制OpenAI模型以匹配数据模式
- 提高模型对复杂数据模式的理解
- 确保遵守数据模式,防止缺失键或无效枚举值
- 支持逐步生成答案
- 简化提示并提供清晰的拒绝声明
- 遵循现有的OpenAI安全政策
OpenAI声称他们最新的GPT-4o模型在结构化输出评估中获得了"100%完美"的分数。
该公司承认从开源项目如outlines、jsonformer、instructor、guidance和lark库中汲取灵感。
虽然这一功能满足了重要需求,但一些开发者指出潜在的限制:
- 由于模式编译,第一个标记的生成速度较慢
- API对JSON模式的接受有限
- Python SDK中广告宣传的变更未完全实现
一些开发者建议,像Instructor + Pydantic这样的组合可能仍是使用OpenAI和其他LLM解决方案实现结构化输出的最简单方法。
总的来说,在OpenAI的API中引入原生结构化输出支持是一个重大进步,尽管在广泛应用于生产环境之前可能还需要进一步完善。