用心打造
VPS知识分享网站

OpenAI为开发人员解决结构化数据难题

OpenAI推出了“结构化输出”,这是一项新的 API 功能,旨在解决从大型语言模型 (LLM) 可靠地生成结构化数据的长期挑战。该功能现已推出,可确保模型生成的输出符合开发人员定义的 JSON 模式。

OpenAI为开发人员解决结构化数据难题

从非结构化输入生成结构化数据是当今许多 AI 应用程序的基石。开发人员利用 OpenAI API 构建复杂的助手,这些助手能够获取数据、通过函数调用回答复杂问题、提取结构化数据以实现无缝数据输入,并实现 LLM 可以采取特定操作的多步骤工作流程。

然而,LLM 在持续生成结构化输出方面存在固有局限性,这导致开发人员采用开源工具、复杂的提示技术和重复请求重试等变通方法。这些变通方法虽然实用,但增加了复杂性并影响了效率。

OpenAI 的结构化输出有望消除这些变通方法。它通过限制 OpenAI 模型以匹配开发人员提供的模式,并通过训练模型以更好地理解和遵循复杂的数据结构来实现这一点。

OpenAI 在一篇博客文章中表示:“结构化输出通过约束 OpenAI 模型以匹配开发人员提供的模式并训练我们的模型以更好地理解复杂模式来解决这一问题。”

使用复杂 JSON 模式进行的内部评估显示出了显著的效果。最新模型 gpt-4o-2024-08-06 在遵守结构化输出方面获得了完美的 100% 分数,与之前的 gpt-4-0613(得分不到 40%)相比有了显著的提高。

结构化输出有两种主要实现方式:

  1. 函数调用:通过在函数定义中设置 strict: true 来启用此方法,开发人员可以定义模型调用的函数返回的数据的精确结构。此功能与所有支持工具的模型兼容,包括 gpt-4-0613、gpt-3.5-turbo-0613 及更高版本。
  2. 响应格式参数:此方法允许开发人员通过 response_format 参数中的新 json_schema 选项提供 JSON 模式。当模型需要以结构化格式直接响应用户而无需调用工具时,这尤其有用。目前,最新的 GPT-4o 模型支持此功能:gpt-4o-2024-08-06 和 gpt-4o-mini-2024-07-18。在 response_format 中设置 strict: true 可确保模型输出符合提供的模式。

OpenAI 在结构化输出中优先考虑安全性,确保其与预先存在的安全政策保持一致。该模型保留了拒绝不安​​全请求的能力,通过 API 响应中的新拒绝字符串值向开发人员指示。这允许以编程方式检测拒绝,确保可预测的行为和简化的错误处理。值得注意的是,没有拒绝值和成功的生成过程(由 finish_reason 表示)保证了与开发人员定义的模式匹配的有效 JSON 输出。

OpenAI 的 Python 和 Node SDK 已集成对结构化输出的原生支持,从而简化了其使用。开发人员可以通过提供 Pydantic 或 Zod 对象来定义工具或响应格式的架构,SDK 会自动将其转换为 JSON 架构。SDK 还管理将 JSON 响应反序列化为类型化数据结构并处理潜在的拒绝。

赞(0)
未经允许不得转载;国外VPS测评网 » OpenAI为开发人员解决结构化数据难题
分享到