事件
了解 OpenAI 函式呼叫
函式呼叫是 OpenAI 模型功能,可讓您使用 JSON 在提示描述函式及其引數。 模型不會叫用函式本身,而是傳回 JSON 輸出,描述應該呼叫哪些函式和要使用的引數。
函式呼叫可簡化將外部工具連線至 AI 模型的方式。 首先,將每個工具的函式指定至模型。 然後,模型會根據提示問題決定應該呼叫哪些函式。 模型使用函式呼叫結果,建置更精確且一致的回覆。
函數呼叫的潛在使用案例包括:
- 呼叫外部 API 回答問題,例如傳送電子郵件或取得天氣預報。
- 用內部資料存放區資訊回答問題,例如彙總銷售資料回答「我最暢銷的產品是什麼?」。
- 例如,從文字資訊建立結構化資料,從聊天歷程建立有詳細資料的使用者資訊物件。
使用 OpenAI 模型呼叫函式的一般步驟如下:
- 以包含
tools
參數定義之函式的要求,傳送使用者的問題。 - 模型會決定要呼叫哪些函式 (若有)。 輸出包含 JSON 物件,其中列出函式呼叫及其引數。
注意
模型可能虛構額外的引數。
- 使用指定的引數剖析輸出及呼叫要求的函式。
- 傳送另一個要求,其中包含以新訊息隨附的函式結果。
- 模型會以更多函式呼叫要求回覆,或是回答使用者的問題。
- 繼續叫用要求的函式呼叫,直到模型以答案回覆為止。
您可以將 tool_choice
參數設定為函式的名稱,強制模型要求特定函式。 您也可以將 tool_choice
參數設定為 "none"
,強制模型以訊息回覆使用者。
某些模型支援平行函式呼叫,可讓模型在一個輸出要求多個函式呼叫。 傳回模型的一個回覆,包含了每個函式呼叫的結果。 平行函數呼叫可減少產生答案所需的 API 要求數目和時間。 每個函式結果都會以新訊息的方式包含在交談中,隨附符合函式呼叫要求之 id
的 tool_call_id
。
並非所有 OpenAI 模型都是為了支援函數呼叫而訓練。 如需支援函式呼叫或平行函數呼叫的模型清單,請參閱 OpenAI - 支援的模型。
語意核心 SDK 支援使用 KernelFunction
裝飾項目描述 AI 可用的函式。
核心根據裝飾項目建置要求的 tools
參數、協調要求的程式碼函式呼叫,並將結果傳回模型。
您向模型提出的要求系統訊息包含函式描述。 這些函式描述以模型的權杖限制為計算基礎,而且包含於要求的成本。
如果您的要求超過模型的權杖限制,請嘗試下列修改:
- 減少函式的數目。
- 縮短 JSON 中的函式和引數描述。
其他資源
訓練
認證
Microsoft Certified: Azure AI Fundamentals - Certifications
示範與 Microsoft Azure 軟體和服務開發相關的基本 AI 概念,以建立 AI 解決方案。
文件
-
使用擷取擴增世代將您的資料整合到 AI 應用程式 - .NET
瞭解擷取增強產生如何讓您搭配 LLM 使用您的數據,以在 .NET 中產生更佳的完成。
-
了解向量資料庫如何在 .NET 中儲存和處理內嵌來擴充 LLM 功能。
-
了解內嵌如何擴充 .NET 中 AI 模型的限制和功能。