OpenAI 迎来了一个令人兴奋的全新的功能 —— 结构化输出(Structured Outputs),旨在使模型生成的输出能够严格遵循开发者提供的 JSON 模式。
去年的开发者日(DevDay)上,OpenAI 首次推出了 JSON 模式,这为开发者构建可靠应用程序提供了一个重要基础。虽然 JSON 模式提升了模型生成有效 JSON 输出的可靠性,但并未确保模型的响应符合特定的模式。今天的结构化输出功能正是为了解决这个问题而来。
随着 AI 在应用中的广泛应用,从非结构化输入生成结构化数据已成为一个核心用例。开发者们利用 OpenAI API 构建强大的助手,可以通过函数调用获取数据、回答问题,还能提取结构化数据进行数据录入。过去,开发者们常常需要借助开源工具、重复请求等方式,来确保模型的输出符合系统所需的格式。而现在,结构化输出功能通过约束 OpenAI 模型匹配开发者提供的模式,极大地提升了输出的可靠性。
复杂 JSON 模式结构化输出得分100%
值得一提的是,在对复杂 JSON 模式的评估中,新模型 gpt-4o-2024-08-06在结构化输出方面得到了完美的100% 分数,而之前的 gpt-4-0613得分不到40%。这意味着,新模型在生成符合特定模式的输出上表现得更加出色。
如何使用结构化输出
使用结构化输出非常简单,OpenAI 为 API 引入了两种形式:一种是通过工具进行的函数调用,另一种是响应格式的新选项,开发者可以通过 json_schema 参数提供 JSON 模式。当启用严格模式时,模型的输出将严格符合提供的模式。
1.函数调用:通过在函数定义中设置 strict: true
可以获得通过 tools
的结构化输出。此功能适用于支持工具的所有模型,包括所有模型 gpt-4-0613
和 gpt-3.5-turbo-0613
以及更高版本。启用结构化输出后,模型输出将与提供的工具定义匹配。
2.response_format
参数的新选项:开发人员现在可以通过 json_schema
提供 JSON 模式,这是 response_format
参数的新选项。当模型不是调用工具,而是以结构化的方式响应用户时,这很有用。此功能适用于我们最新的 GPT-4o 模型:今天发布的 gpt-4o-2024-08-06
和 gpt-4o-mini-2024-07-18
。当 response_format
与 strict: true
一起提供时,模型输出将与提供的架构匹配。
安全性是 OpenAI 的重中之重,新功能将在现有安全政策下运行,模型仍然可以拒绝不安全的请求。同时,为了简化开发过程,我们新增了一个拒绝字符串值,帮助开发者程序性地检测模型是否生成了拒绝信息。
原生 SDK 支持
OpenAI 的 Python 和 Node SDK 也已更新,支持结构化输出的原生功能。开发者只需提供 Pydantic 或 Zod 对象,OpenAI 的 SDK 就会自动处理数据类型转换和 JSON 响应的解析。
今天的发布会让大家看到,结构化输出将为开发者的工作带来更多便利,帮助他们更轻松地创建出色的应用。
官方博客:https://openai.com/index/introducing-structured-outputs-in-the-api/
划重点:
🌟 结构化输出功能上线,模型输出更可靠,遵循开发者提供的 JSON 模式。
🔍 新模型 gpt-4o-2024-08-06在复杂 JSON 模式的评估中获得完美100% 分数。
🔧 Python 和 Node SDK 已更新,支持结构化输出,简化开发者的工作流程。