2024年8月7日, OpenAI今日宣布在其API中引入一项突破性功能——结构化输出。这一新功能确保了模型生成的输出能够完全符合开发人员提供的JSON架构,从而显著提升了API的可靠性和应用的精确度。和以前的 JSON 模式不一样,现在的结构化输出不仅可以定义 JSON 的 Schema(也就是 JSON 输出的结构是什么样子),而且可以确保输出的 JSON 是100% 正确的。同时, OpenAI宣布新模型的价格下调了,输入价格只有原来的一半,输出也便宜了1/3。

image.png

技术革新:结构化输出的引入

去年,OpenAI推出了JSON模式,作为开发人员构建应用程序的有力工具。然而,尽管JSON模式提高了生成有效JSON输出的可能性,它并不能保证输出符合特定的架构。结构化输出的引入,正是为了解决这一局限性,通过约束模型输出以匹配预设的模式,确保了输出数据的准确性和一致性。

性能提升:评估与对比

在OpenAI对复杂JSON模式的跟踪评估中,新模型gpt-4o-2024-08-06在结构化输出方面取得了满分100%的卓越成绩,而旧模型gpt-4-0613的得分则不足40%。这一显著的进步,不仅展现了OpenAI在技术上的飞跃,也为开发人员带来了更高的工作效率和更少的错误率。

image.png

实际应用:如何使用结构化输出

OpenAI的API中引入了两种形式的结构化输出:

1、函数调用:通过在函数定义中设置,可以使用结构化输出。此功能适用于所有支持工具的模型,包括所有模型和更高版本。启用结构化输出后,模型输出将与提供的工具定义相匹配。


carbon.png

API请求设置

carbon (1).png

API响应

2、参数的新选项response_format:开发人员可以通过提供JSON模式json_schema作为参数的新选项,实现以结构化方式响应用户请求。

carbon (2).png

carbon (3).png

安全与支持:安全结构化输出与SDK更新

安全始终是OpenAI的首要任务。新的结构化输出功能遵守现有的安全政策,允许模型在必要时拒绝不安全的请求。此外,OpenAI的Python和Node SDK已经更新,原生支持结构化输出,简化了开发流程。

carbon (4).png

多样化用例:从动态界面到数据提取

结构化输出的应用范围极为广泛,包括根据用户意图动态生成用户界面、将最终答案与支持性推理分开,以及从非结构化数据中提取结构化数据等。这些用例展示了结构化输出在不同场景下的实用性和灵活性。

技术原理:受限解码与替代方法

OpenAI通过采用受限解码技术,实现了模型输出与JSON Schema的100%匹配。这一方法通过动态约束解码,确保了在每个步骤中,模型只能选择有效的标记,从而减少了错误的可能性。

结语

OpenAI的结构化输出功能,不仅为开发人员提供了一个更可靠、更精确的工具,也进一步推动了人工智能技术在数据处理和应用开发方面的进步。随着这一功能的正式推出,我们期待看到更多创新应用的诞生。