閱讀英文

共用方式為


了解 OpenAI 函式呼叫

函式呼叫是 OpenAI 模型功能,可讓您使用 JSON 在提示描述函式及其引數。 模型不會叫用函式本身,而是傳回 JSON 輸出,描述應該呼叫哪些函式和要使用的引數。

函式呼叫可簡化將外部工具連線至 AI 模型的方式。 首先,將每個工具的函式指定至模型。 然後,模型會根據提示問題決定應該呼叫哪些函式。 模型使用函式呼叫結果,建置更精確且一致的回覆。

函數呼叫的潛在使用案例包括:

  • 呼叫外部 API 回答問題,例如傳送電子郵件或取得天氣預報。
  • 用內部資料存放區資訊回答問題,例如彙總銷售資料回答「我最暢銷的產品是什麼?」。
  • 例如,從文字資訊建立結構化資料,從聊天歷程建立有詳細資料的使用者資訊物件。

使用 OpenAI 呼叫函式

使用 OpenAI 模型呼叫函式的一般步驟如下:

  1. 以包含 tools 參數定義之函式的要求,傳送使用者的問題。
  2. 模型會決定要呼叫哪些函式 (若有)。 輸出包含 JSON 物件,其中列出函式呼叫及其引數。

    注意

    模型可能虛構額外的引數。

  3. 使用指定的引數剖析輸出及呼叫要求的函式。
  4. 傳送另一個要求,其中包含以新訊息隨附的函式結果。
  5. 模型會以更多函式呼叫要求回覆,或是回答使用者的問題。
    • 繼續叫用要求的函式呼叫,直到模型以答案回覆為止。

您可以將 tool_choice 參數設定為函式的名稱,強制模型要求特定函式。 您也可以將 tool_choice 參數設定為 "none",強制模型以訊息回覆使用者。

平行呼叫函式

某些模型支援平行函式呼叫,可讓模型在一個輸出要求多個函式呼叫。 傳回模型的一個回覆,包含了每個函式呼叫的結果。 平行函數呼叫可減少產生答案所需的 API 要求數目和時間。 每個函式結果都會以新訊息的方式包含在交談中,隨附符合函式呼叫要求之 idtool_call_id

支援的模型

並非所有 OpenAI 模型都是為了支援函數呼叫而訓練。 如需支援函式呼叫或平行函數呼叫的模型清單,請參閱 OpenAI - 支援的模型

搭配語意核心 SDK 的函式呼叫

語意核心 SDK 支援使用 KernelFunction 裝飾項目描述 AI 可用的函式。

核心根據裝飾項目建置要求的 tools 參數、協調要求的程式碼函式呼叫,並將結果傳回模型。

權杖計數

您向模型提出的要求系統訊息包含函式描述。 這些函式描述以模型的權杖限制為計算基礎,而且包含於要求的成本

如果您的要求超過模型的權杖限制,請嘗試下列修改:

  • 減少函式的數目。
  • 縮短 JSON 中的函式和引數描述。