OpenAI在其API中加入結構化輸出(Structured Outputs)功能,確保模型生成的輸出,能夠完全符合開發者所提供的JSON結構。這項功能可被用於建構爬蟲等工具,透過功能呼叫抓取需要的資料,從非結構化資料中擷取結構化資料,並根據這些資料回答用戶問題,對於資料輸入和處理情境非常有用。

雖然之前OpenAI就已經在API推出JSON模式,試圖更好地提供結構化的資料,讓開發者能夠用於建構可靠的應用程式,但是雖然JSON模式可以提高JSON檔案輸出的可靠性,但是卻不能保證模型的回應能夠完全符合特定的結構。

而OpenAI API新加入的結構化輸出功能,便能準確地回應開發者對JSON檔案的需求,避免需要使用開源工具、提示並反覆試錯來要求模型輸出符合需求的格式。官方提到,結構化輸出透過約束OpenAI模型來符合開發者的結構,並訓練模型更好地理解複雜JSON結構以解決這個問題。

OpenAI API提供兩種結構化輸出使用方式,以符合開發者提供的JSON結構,第一種是功能呼叫,適用於所有支援工具的模型,開發者在功能定義中設定strict:true,就能啟動結構化輸出功能。第二種則是開發者可以在response_format參數中使用新的json_schema選項,這適用於在模型不呼叫工具,而是以結構化方式回應用戶的情境。

目前OpenAI已經更新Python和Node SDK,原生支援結構化輸出,這代表開發者可以像是使用Pydantic或是Zod物件一樣,簡單地提供工具的結構或回應格式,SDK將會自動處理資料型別轉換,將開發者的資料型別轉換為支援的JSON結構。

熱門新聞

Advertisement