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的結構化輸出功能,不僅爲開發人員提供了一個更可靠、更精確的工具,也進一步推動了人工智能技術在數據處理和應用開發方面的進步。隨着這一功能的正式推出,我們期待看到更多創新應用的誕生。