截至 2025 年 3 月 11 日,我們已推出全新智能代理平台的基礎組件。詳情請參閱我們的 API 文件,包括Responses API、工具(包括Web Search、File Search及Computer Use),以及附有Tracing的Agents SDK。
函數調用讓你可將 OpenAI 模型連接至外部工具及系統。這對多種用途都很有幫助,例如為 AI 助手賦予更多能力,或在你的應用程式與 LLM 之間建立深度整合。
請在我們的函數調用開發者指南了解更多。
我們於 2024 年 6 月推出了結構化輸出內容。當你在函數定義中設定 `strict: true` 以啟用此功能時,結構化輸出內容可保證模型為函數調用產生的引數,會與你在函數定義中提供的 JSON Schema 完全一致。
我們於 2024 年 10 月推出「Generate Anything」功能,讓開發者可描述一個函數、直接貼上該函數,或貼上你的程式碼,並產生有效的函數結構定義。有關「Generate Anything」的詳情,請參閱此說明中心文章。
我可以如何使用函數調用?
函數調用適用於大量使用情境,例如:
讓助手擷取資料:
當使用者問「我最近有哪些訂單?」時,AI 助手需要先從內部系統擷取最新的客戶資料,之後才能向使用者產生回應。
讓助手採取行動:
AI 助手需要根據使用者偏好及行事曆空檔安排會議。
讓助手執行運算:
數學導師助手需要進行數學運算。
建立豐富工作流程:
例如一個資料擷取流程會先抓取原始文字,然後將其轉換為結構化資料,再儲存到資料庫。
函數調用支援於 Responses API,此 API 整合了以往分散在 Chat Completions API 與 Assistants API 的功能。
我可以如何使用 JSON 模式?
啟用 JSON 模式後,除了你應偵測並妥善處理的某些邊緣情況外,模型的輸出會確保為有效的 JSON。
若要透過 Responses API 或 Chat Completions API 要求使用 JSON 模式,你可在支援的模型上將 response_format 設為 { "type": "json_object" };但這只會在滿足模型/訊息/工具的前提條件時生效(例如模型支援 json_object、對話包含產生 JSON 的指示,以及任何工具限制均相容)。如要以 response_format: {"type": "json_object"} 使用 JSON 模式,至少有一則請求訊息必須以某種形式包含 json,例如 JSON、json 或 Json;否則 API 會回傳錯誤。當在相容的模型/路徑上使用函數調用時,JSON 限制會自動套用至函數調用引數;不相容的模型或工具/回應格式組合可能會遭拒絕,或不會使用受 JSON 約束的抽樣。
重要注意事項:
使用 JSON 模式時,你必須始終透過對話中的某則訊息指示模型產生 JSON,例如在系統訊息中說明。如果你沒有加入明確指示來產生 JSON,模型可能會持續輸出無止境的空白字元,而請求亦可能一直執行,直到達到 token 上限。為協助確保你不會忘記,JSON 模式會拒絕相關輸入訊息或指示未以任何大小寫形式包含
json一詞的請求。JSON 模式不會保證輸出符合任何特定結構定義,只會保證其為有效內容並可在不出錯的情況下剖析。你應使用結構化輸出內容以確保其符合你的結構定義;若無法這樣做,則應使用驗證函式庫,並在需要時重試,以確保輸出符合你所需的結構定義。
你的應用程式必須偵測並處理可能導致模型輸出不是完整 JSON 物件的邊緣情況(見下文)。
