截至 2025 年 3 月 11 日,我們已推出全新智能代理平台的基礎組件。詳情請參閱我們的 API 文件,包括Responses API、工具(包括Web Search、File Search及Computer Use),以及附有Tracing的Agents SDK。
函數調用可讓你將 OpenAI 模型連接至外部工具和系統。這對許多情境都很有用,例如為 AI 助理賦予能力,或在你的應用程式與 LLM 之間建立深度整合。
請在我們的 函數調用開發者指南 中了解更多。
2024 年 6 月,我們推出了結構化輸出內容。當你在函數定義中設定 strict: true 來啟用它時,結構化輸出內容可保證模型為函數調用產生的引數,會與你在函數定義中提供的 JSON 結構定義完全相符。
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 物件的邊緣情況(見下文)
