共用方式為


.NET Aspire Azure OpenAI 整合

在本文中,您將瞭解如何使用 .NET AspireAzureOpenAIclient。 Aspire.Azure.AI.OpenAI 函式庫可用來在相依性注入容器中註冊 OpenAIClient,以取用 AzureOpenAI 或 OpenAI 功能。 它可啟用對應的記錄和遙測。

如需使用 OpenAIClient的詳細資訊,請參閱 快速入門:開始使用 AzureOpenAI Service產生文字。

開始使用

若要開始使用 .NET AspireAzureOpenAI 整合,請在 client使用的專案(即使用 AzureOpenAIclient的應用程式專案)中安裝 📦Aspire.Azure.AI.OpenAI NuGet 套件。

dotnet add package Aspire.Azure.AI.OpenAI

如需詳細資訊,請參閱 dotnet add package管理 .NET 應用程式中的套件相依性

範例使用方式

在您的 client使用專案的 Program.cs 檔案中,呼叫擴充方法來註冊 OpenAIClient,以透過相依注入容器使用。 方法會採用連接名稱參數。

builder.AddAzureOpenAIClient("openAiConnectionName");

在上述程式代碼中,AddAzureOpenAIClient 方法會將 OpenAIClient 新增至 DI 容器。 openAiConnectionName 參數是組態中連接字串的名稱。 接著,您可以使用相依注入來擷取 OpenAIClient 實例。 例如,若要從範例服務擷取連線:

public class ExampleService(OpenAIClient client)
{
    // Use client...
}

應用程式主機使用方式

若要將 Azure 主機支援新增至您的 IDistributedApplicationBuilder,請在 應用程式主機 專案中安裝 📦Aspire.Hosting.Azure.CognitiveServices NuGet 套件。

dotnet add package Aspire.Hosting.Azure.CognitiveServices

在應用程式主機專案中,使用下列方法註冊 AzureOpenAI 資源,例如 AddAzureOpenAI

var builder = DistributedApplication.CreateBuilder(args);

var openai = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureOpenAI("openAiConnectionName")
    : builder.AddConnectionString("openAiConnectionName");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(openai);

AddAzureAIOpenAI 方法會從應用程式主機的組態(例如,從「用戶密碼」)讀取 ConnectionStrings:openAiConnectionName 組態密鑰下的連線資訊。 WithReference 方法會將該連接資訊傳遞至 ExampleProject 項目中名為 openAiConnectionName 的連接字串。 在 ExampleProject 的 Program.cs 檔案中,可以使用以下方式取得連線:

builder.AddAzureAIOpenAI("openAiConnectionName");

配置

.NET Aspire Azure OpenAI 整合提供多個選項,可根據專案的需求和慣例來設定連線。

使用連接字串

從 [ConnectionStrings 組態] 區段使用連接字串時,您可以在呼叫 builder.AddAzureAIOpenAI時提供連接字串的名稱:

builder.AddAzureAIOpenAI("openAiConnectionName");

連接字串是從 [ConnectionStrings 組態] 區段擷取,而且有兩種支援的格式:搭配預設 Azure 認證使用的帳戶端點,或是具有帳戶密鑰的連接字串。

帳戶端點

建議的方法是使用 Endpoint,其可與 AzureOpenAISettings.Credential 屬性搭配使用,以建立連線。 如果未設定認證,則會使用 DefaultAzureCredential

{
  "ConnectionStrings": {
    "openAiConnectionName": "https://{account_name}.openai.azure.com/"
  }
}

如需詳細資訊,請參閱 使用 AzureOpenAI 不需索引鍵

連接字串

或者,也可以使用自定義連接字串。

{
  "ConnectionStrings": {
    "openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
  }
}

若要連線到非AzureOpenAI 服務,請卸除 Endpoint 屬性,並只設定 Key 屬性來設定 API 金鑰

使用組態提供者

.NET Aspire Azure OpenAI 整合支援 Microsoft.Extensions.Configuration。 它會使用 Aspire:Azure:AI:OpenAI 鍵從組態載入 AzureOpenAISettings。 例如 appsettings.json,用於設定某些選項:

{
  "Aspire": {
    "Azure": {
      "AI": {
        "OpenAI": {
          "DisableTracing": false,
        }
      }
    }
  }
}

使用內聯委派

您也可以傳遞 Action<AzureOpenAISettings> configureSettings 委任來設置部分或所有的內嵌選項,例如,從程式碼中停用追蹤:

builder.AddAzureAIOpenAI(
    "openAiConnectionName",
    static settings => settings.DisableTracing = true);

您也可以使用 AddAzureAIOpenAI 方法中的可選 Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder 參數來設定 OpenAIClientOptions。 例如,若要設定此 client的 client 標識碼:

builder.AddAzureAIOpenAI(
    "openAiConnectionName",
    configureClientBuilder: builder => builder.ConfigureOptions(
        options => options.Diagnostics.ApplicationId = "CLIENT_ID"));

可檢視性和遙測

.NET .NET Aspire 整合會自動設定記錄、追蹤和度量組態,有時稱為 可觀測性的支柱。 如需整合可觀察性和遙測的詳細資訊,請參閱 .NET.NET Aspire 整合概觀。 視支援服務而定,某些整合可能只支援其中一些功能。 例如,某些整合支援記錄和追蹤,但不支援計量。 您也可以使用 組態 一節中呈現的技術來停用遙測功能。

伐木

.NET Aspire Azure OpenAI 整合會使用下列記錄類別:

  • Azure
  • Azure.Core
  • Azure.Identity

另請參閱