截至 2025 年 3 月 11 日,我們已推出全新智能代理平台的基礎組件。詳情請參閱我們的 API 文件,包括Responses API、工具(包括Web Search、File Search及Computer Use),以及附有Tracing的Agents SDK。
函數調用讓你可將 OpenAI 模型連接至外部工具和系統。這可用於多種用途,例如賦予 AI 助理更多能力,或將你的應用程式與大型語言模型深度整合。
詳情請參閱函數調用開發者指南。
2024 年 6 月,我們推出了結構化輸出內容。使用受支援的模型和請求配置時,如模型輸出函數調用,只要在函數定義中設定 strict: true,即可確保生成的引數符合所提供的結構定義,前提是該結構定義使用受支援的 JSON Schema 子集,並符合嚴格模式的要求。使用不受支援或不合規結構定義的請求會遭拒絕,並傳回錯誤。
2024 年 10 月,我們推出了「生成任何內容」功能,讓開發者描述函數並直接貼上,或貼上程式碼,以生成有效的函數結構定義。如欲進一步了解「生成任何內容」,請參閱這篇說明中心文章。
我可以如何使用函數調用?
函數調用適用於大量使用案例,例如:
讓助理擷取資料:
讓助理執行動作:
讓助理進行運算:
建立豐富工作流程:
擷取原始文字,然後將其轉換為結構化資料並儲存在資料庫中的資料擷取管道。
Responses API 支援函數調用,該 API 統合了過去分散於 Chat Completions API 和 Assistants 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,例如 JSON、json 或 Json;否則 API 會傳回錯誤。在 Responses 中,單靠最上層 instructions 欄位並不能滿足此驗證。在相容的模型/路徑上使用函數調用時,系統會自動將 JSON 限制套用至函數調用引數;不相容的模型或工具/回應格式組合可能會被拒絕,或可能不會使用受 JSON 限制的取樣。
重要備註:
使用 JSON 模式時,你必須一律透過對話中的某則訊息指示模型產生 JSON,例如透過你的系統訊息。如果你沒有加入產生 JSON 的明確指示,模型可能會產生無止境的空白字元串流,而請求可能會持續執行,直至達到 token 限制。為協助確保你不會忘記,除非相關輸入訊息或指示以大小寫不拘的某種形式包含
json一詞,否則 JSON 模式會拒絕請求。JSON 模式不會保證輸出符合任何特定結構定義,只會保證其有效且可無錯誤地剖析。你應使用結構化輸出內容,以確保其符合你的結構定義;如果這不可行,則應使用驗證程式庫,並可能透過重試來確保輸出符合你所需的結構定義。
你的應用程式必須偵測並處理可能導致模型輸出不是完整 JSON 物件的邊緣情況(見下文)
