OpenAI
此頁面由機器翻譯。查看原始英文文章

OpenAI API 中的函式呼叫

什麼是函式呼叫?它在 OpenAI API 中如何運作?

更新日期:4 days ago

截至 2025 年 3 月 11 日,我們已發布全新 Agents 平台的基礎建構元件。詳情請參閱我們的 API 文件,內容涵蓋Responses API、工具(包括Web SearchFile SearchComputer Use),以及包含TracingAgents SDK

函式呼叫可讓您將 OpenAI 模型連接至外部工具和系統。這項功能用途廣泛,例如賦予 AI 助理更多能力,或讓您的應用程式與大型語言模型深度整合。

詳情請參閱我們的函式呼叫開發人員指南

2024 年 6 月,我們推出了結構化輸出。對於支援的模型和要求設定,當模型發出函式呼叫時,只要結構描述採用支援的 JSON Schema 子集並符合嚴格模式的要求,在函式定義中設定 strict: true,即可確保生成的引數符合所提供的結構描述。使用不受支援或不合規結構描述的要求會遭拒絕並傳回錯誤。

2024 年 10 月,我們推出了「生成任何內容」功能。開發人員可以描述函式、直接貼上函式內容,或貼上程式碼,以生成有效的函式結構描述。若要進一步瞭解「生成任何內容」,請參閱這篇說明中心文章

如何使用函式呼叫?

函式呼叫適用於大量使用案例,例如:

  • 讓助理擷取資料

  • 讓助理採取動作

  • 讓助理執行運算

  • 建構豐富的工作流程

  • 擷取原始文字,接著將其轉換為結構化資料並儲存到資料庫的資料擷取管線。

函式呼叫受 Responses API 支援,該 API 統一了先前分散於 Chat Completions APIAssistants API 的功能。

如何使用 JSON 模式?

開啟 JSON 模式時,模型的輸出會確保為有效的 JSON,但某些邊緣情況例外;你應偵測並妥善處理。

若要透過 Chat Completions API 要求 JSON 模式,請在支援的模型上將 response_format 設為 { "type": "json_object" }。使用 Responses API 時,請在適用情況下將 text.format 設為 { "type": "json_object" },例如 text: { "format": { "type": "json_object" } }。在任一 API 中,JSON 模式只有在符合模型、訊息和工具的先決條件時才會運作(例如,模型支援 json_object、對話包含產生 JSON 的指示,且任何工具限制皆相容)。在有效輸入內容中,至少一則請求訊息或輸入訊息必須包含不區分大小寫形式的 json,例如 JSONjsonJson;否則 API 會傳回錯誤。在 Responses 中,僅有最上層的 instructions 欄位並不足以通過此驗證。在相容的模型/路徑上使用函式呼叫時,JSON 限制會自動套用至函式呼叫引數;不相容的模型或工具/回應格式組合可能遭到拒絕,或可能不使用受 JSON 限制的取樣。

重要注意事項:

  • 使用 JSON 模式時,你必須一律透過對話中的某則訊息指示模型產生 JSON,例如透過你的系統訊息。如果未包含產生 JSON 的明確指示,模型可能會產生無止盡的空白字元串流,而請求可能會持續執行,直到達到 Token 限制。為協助確保你不會忘記,除非相關輸入訊息或指示中包含某種形式且不區分大小寫的 json 一詞,否則 JSON 模式會拒絕請求。

  • JSON 模式不保證輸出符合任何特定結構描述,只保證其為有效且可剖析而無錯誤。你應使用結構化輸出以確保其符合你的結構描述;若無法這麼做,則應使用驗證程式庫,並視需要重試,以確保輸出符合你想要的結構描述。

  • 你的應用程式必須偵測並處理可能導致模型輸出不是完整 JSON 物件的邊緣情況(見下文)

這篇文章有幫助嗎?