重要
適用於 Azure Functions 的 Azure OpenAI 延伸模組目前為預覽狀態。
適用於 Azure Functions 的 Azure OpenAI 擴充功能會實作一組觸發程式和系結,可讓您輕鬆地 將 Foundry 模型中 Azure OpenAI 的功能和行為整合到函式程式代碼執行中。
Azure Functions 是事件驅動的計算服務,會提供一組可與其他 Azure 服務輕鬆連線的觸發程序和繫結。
透過 Azure OpenAI 與 Functions 之間的整合,您可以建置具有以下功能的函數:
| 動作 | 觸發程序/繫結型別 |
|---|---|
| 使用標準文字提示進行內容完成 | Azure OpenAI 文字完成輸入繫結 |
| 回應助理要求以呼叫函式 | Azure OpenAI 助理觸發程序 |
| 建立助理 | Azure OpenAI 助理建立輸出繫結 |
| 發訊息給助理 | Azure OpenAI 助理文章輸入繫結 |
| 取得助理歷程記錄 | Azure OpenAI 助理查詢輸入繫結 |
| 讀取文字內嵌 | Azure OpenAI 內嵌輸入繫結 |
| 寫入向量資料庫 | Azure OpenAI 內嵌儲存輸出繫結 |
| 從向量資料庫讀取 | Azure OpenAI 語意搜尋輸入繫結 |
安裝擴充功能
您安裝的延伸模組 NuGet 套件取決於您在函式應用程式中使用的 C# 模式內含式 或 隔離式背景工作處理序:
您可以使用 .NET CLI,透過安裝 Microsoft.Azure.Functions.Worker.Extensions.OpenAI NuGet 套件將 Azure OpenAI 延伸模組新增至您的專案中:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.OpenAI --prerelease
使用向量資料庫儲存內容時,您也應該至少安裝下列其中一個 NuGet 套件:
- Azure AI 搜尋:Microsoft.Azure.Functions.Worker.Extensions.OpenAI.AzureAISearch
- Azure DocumentDB: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.CosmosDBSearch
- 適用於 NoSQL 的 Azure Cosmos DB: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.CosmosDBSearch
- Azure 資料總管:Microsoft.Azure.Functions.Worker.Extensions.OpenAI.Kusto
安裝搭售方案
你可以透過在檔案 host.json 中新增或替換以下程式碼來添加預覽擴充功能,該程式碼專門針對包含 OpenAI 擴充功能的 4.x 套件預覽版本:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.*, 5.0.0)"
}
}
目前 Go 不支援此功能。
連結
要使用 Azure OpenAI 綁定擴充功能,你需要指定一個連接到 OpenAI 模型定義的連結。 請使用以下其中一種方法在綁定中設定 OpenAI 模型連線:
- 使用
AIConnectionNamebinding 屬性(Azure OpenAI 偏好)。 - 在應用程式內設定並設定
AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY(針對 Azure OpenAI)。 - 只
Open_API_Key在應用程式設定中設定(針對https://api.openai.com)。
連線的設定方式取決於模型 API 與認證方法,如下表所示:
| 認證/模型 API | Azure OpenAI | OpenAI (https://api.openai.com) |
|---|---|---|
| 管理身份連線 | AIConnectionName |
不支援 |
| 金鑰保存庫 參考 | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
| 應用程式配置參考 | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
| 共用密碼 | AZURE_OPENAI_ENDPOINTAZURE_OPENAI_KEY |
Open_API_Key |
使用基於管理身份的連線和屬性 AIConnectionName 。
當你使用 AIConnectionName時,這個屬性設定的值會依連接類型而異:
-
管理身份連線:此
AIConnectionName屬性由<CONNECTION_NAME_PREFIX>一組設定共享,這些設定共同定義了與 Azure OpenAI 的身份基礎連線。 欲了解更多資訊,請參閱定義身份連結。 -
金鑰保存庫 參考:
AIConnectionName屬性設定回傳一個 Azure Key Vault 參考,指向 API 金鑰集中維護的位置。 欲了解更多資訊,請參閱定義 金鑰保存庫 連接。 -
App Configuration 參考:
AIConnectionName屬性設定會回傳一個 Azure 應用程式組態 參考,該參考會回傳 API 金鑰或 金鑰保存庫 參考。 欲了解更多資訊,請參閱連接條目中的 Azure 應用程式組態。 -
API 金鑰:
AIConnectionName屬性設定會解析成包含端點與金鑰的應用程式設定。 由於共享金鑰可能被入侵,請盡可能使用受管理身份連線。 欲了解更多資訊,請參閱定義連結。
想了解更多關於綁定連接的資訊,請參閱 Azure Functions 中的 Manage connections 。
OpenAI 綁定包含一個AIConnectionName屬性,你可以用來指定定義與 Azure OpenAI 連結的應用程式設定群組:<ConnectionNamePrefix>
當你將屬性設定 AIConnectionName 為 myAzureOpenAI:
myAzureOpenAI__endpoint=https://contoso.openai.azure.com/myAzureOpenAI__credential=managedidentitymyAzureOpenAI__clientId=aaaaaaaa-bbbb-cccc-1111-222222222222
執行時,主機將這些設定解讀為單一 myAzureOpenAI 設定:
"myAzureOpenAI":
{
"endpoint": "https://contoso.openai.azure.com/",
"credential": "managedidentity",
"clientId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
}
使用受管理身份時,務必將你的身份加入認知 服務 OpenAI 使用者 角色。
本地執行時,請將這些設定加入 local.settings.json 專案檔案。 如需詳細資訊,請參閱 使用身分識別型連線進行本機開發。
如需詳細資訊,請參閱使用應用程式設定。