共用方式為


Azure Functions 的 Azure OpenAI 延伸模組

重要

適用於 Azure Functions 的 Azure OpenAI 延伸模組目前為預覽狀態。

適用於 Azure Functions 的 Azure OpenAI 擴充功能會實作一組觸發程式和系結,可讓您輕鬆地將 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 套件:

安裝搭售方案

您可以在檔案 host.json 中新增或取代下列程式代碼來新增預覽延伸模組,其特別針對包含 OpenAI 延伸模組的 4.x 套件組合預覽版本:

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.*, 5.0.0)"
  }
}

線上到 OpenAI

若要使用 Azure OpenAI 系結延伸模組,您必須指定 OpenAI 的連線。 此連線是使用應用程式設定來定義,以及 AIConnectionName 觸發程式或系結的屬性。 您也可以使用環境變數來定義金鑰型連線。

我們建議您使用受控識別型連線和 AIConnectionName 屬性。

OpenAI 系結具有 AIConnectionName 屬性,可用來指定 <ConnectionNamePrefix> 這個應用程式設定群組的 ,以定義與 Azure OpenAI 的連線:

設定名稱 描述
<CONNECTION_NAME_PREFIX>__endpoint 設定 Azure OpenAI 服務的 URI 端點。 這項設定一律為必要。
<CONNECTION_NAME_PREFIX>__clientId 設定取得存取令牌時要使用的特定使用者指派身分識別。 需要將 <CONNECTION_NAME_PREFIX>__credential 設定為 managedidentity。 屬性接受的用戶端識別碼,對應至指派給應用程式的使用者指派身分識別。 指定資源識別碼和用戶端識別碼無效。 如果沒有指定,則會使用系統指派的身分識別。 不應該設定 時,這個屬性會以不同的方式用於credential
<CONNECTION_NAME_PREFIX>__credential 定義如何取得連線的存取令牌。 用於 managedidentity 受控識別驗證。 僅在裝載環境中有受控識別可用時,這個值才有效。
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId credential 設定為 managedidentity 時,可將這個屬性設定為指定在取得權杖時所要使用的資源身分識別。 屬性會接受的資源識別碼是對應至使用者定義受控識別的資源識別碼。 指定資源識別碼和用戶端識別碼無效。 如果未指定這兩個身分識別,則會使用系統指派的身分識別。 不應該設定 時,這個屬性會以不同的方式用於credential
<CONNECTION_NAME_PREFIX>__key 設定使用金鑰型驗證存取 Azure OpenAI 服務端點所需的共用秘密金鑰。 作為安全性最佳做法,您應該一律使用 Microsoft Entra ID 搭配受控識別進行驗證。

當 屬性 AIConnectionName 設定為 myAzureOpenAI時,請考慮這些受控識別連線設定:

  • myAzureOpenAI__endpoint=https://contoso.openai.azure.com/
  • myAzureOpenAI__credential=managedidentity
  • myAzureOpenAI__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 項目檔。 如需詳細資訊,請參閱 使用身分識別型連線進行本機開發

如需詳細資訊,請參閱使用應用程式設定