OpenAI 迎來了一個令人興奮的全新的功能 —— 結構化輸出(Structured Outputs),旨在使模型生成的輸出能夠嚴格遵循開發者提供的 JSON 模式。

image.png

去年的開發者日(DevDay)上,OpenAI 首次推出了 JSON 模式,這爲開發者構建可靠應用程序提供了一個重要基礎。雖然 JSON 模式提升了模型生成有效 JSON 輸出的可靠性,但並未確保模型的響應符合特定的模式。今天的結構化輸出功能正是爲了解決這個問題而來。

隨着 AI 在應用中的廣泛應用,從非結構化輸入生成結構化數據已成爲一個核心用例。開發者們利用 OpenAI API 構建強大的助手,可以通過函數調用獲取數據、回答問題,還能提取結構化數據進行數據錄入。過去,開發者們常常需要藉助開源工具、重複請求等方式,來確保模型的輸出符合系統所需的格式。而現在,結構化輸出功能通過約束 OpenAI 模型匹配開發者提供的模式,極大地提升了輸出的可靠性。

複雜 JSON 模式結構化輸出得分100%

值得一提的是,在對複雜 JSON 模式的評估中,新模型 gpt-4o-2024-08-06在結構化輸出方面得到了完美的100% 分數,而之前的 gpt-4-0613得分不到40%。這意味着,新模型在生成符合特定模式的輸出上表現得更加出色。

image.png

如何使用結構化輸出

使用結構化輸出非常簡單,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 已更新,支持結構化輸出,簡化開發者的工作流程。