Dela via


.NET Aspire Azure OpenAI integrering

I den här artikeln får du lära dig hur du använder .NET AspireAzureOpenAIclient. Aspire.Azure.AI.OpenAI-biblioteket används för att registrera en OpenAIClient i di-containern (beroendeinmatning) för användning av AzureOpenAI eller OpenAI funktioner. Det möjliggör motsvarande loggning och telemetri.

Mer information om hur du använder OpenAIClientfinns i Snabbstart: Kom igång med att generera text med hjälp av AzureOpenAI Service.

Sätta igång

Kom igång med .NET AspireAzureOpenAI-integration genom att installera 📦Aspire.Azure.AI.OpenAI NuGet-paketet i det client-förbrukande projektet, det vill säga projektet för det program som använder AzureOpenAIclient.

dotnet add package Aspire.Azure.AI.OpenAI

Mer information finns i dotnet add package eller Hantera paketberoenden i .NET applikationer.

Exempel på användning

I Program.cs-filen för ditt client-förbrukande projekt, anropa tilläggsmetoden för att registrera en OpenAIClient för användning genom beroendeinjektionscontainern. Metoden tar en parameter för anslutningsnamn.

builder.AddAzureOpenAIClient("openAiConnectionName");

I föregående kod lägger metoden AddAzureOpenAIClient till en OpenAIClient till DI-containern. Parametern openAiConnectionName är namnet på anslutningssträngen i konfigurationen. Du kan sedan hämta OpenAIClient-instansen med hjälp av beroendeinjektion. Om du till exempel vill hämta anslutningen från en exempeltjänst:

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

Apphostanvändning

Om du vill lägga till Azure värdstöd i din IDistributedApplicationBuilderinstallerar du 📦Aspire.Hosting.Azure.CognitiveServices NuGet-paket i projektet för appvärd.

dotnet add package Aspire.Hosting.Azure.CognitiveServices

I värdprojektet registrerar du en AzureOpenAI resurs genom att använda följande metoder, till exempel AddAzureOpenAI:

var builder = DistributedApplication.CreateBuilder(args);

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

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

Metoden AddAzureAIOpenAI läser anslutningsinformation från appvärdens konfiguration (till exempel från "användarhemligheter") under konfigurationsnyckeln ConnectionStrings:openAiConnectionName. Metoden WithReference skickar anslutningsinformationen till en anslutningssträng med namnet openAiConnectionName i ExampleProject-projektet. I Program.cs-filen i ExampleProject kan anslutningen användas med hjälp av:

builder.AddAzureAIOpenAI("openAiConnectionName");

Konfiguration

Den .NET AspireAzureOpenAI integreringen innehåller flera alternativ för att konfigurera anslutningen baserat på kraven och konventionerna i ditt projekt.

Använda en anslutningssträng

När du använder en anslutningssträng från ConnectionStrings konfigurationsavsnittet kan du ange namnet på anslutningssträngen när du anropar builder.AddAzureAIOpenAI:

builder.AddAzureAIOpenAI("openAiConnectionName");

Anslutningssträngen hämtas från konfigurationsavsnittet ConnectionStrings och det finns två format som stöds, antingen den kontoslutpunkt som används tillsammans med standard Azure autentiseringsuppgifter eller en anslutningssträng med kontonyckeln.

Kontoslutpunkt

Den rekommenderade metoden är att använda en slutpunkt, som fungerar med egenskapen AzureOpenAISettings.Credential för att upprätta en anslutning. Om inga autentiseringsuppgifter har konfigurerats används DefaultAzureCredential.

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

Mer information finns i Använd AzureOpenAI utan nycklar.

Anslutningssträng

Du kan också använda en anpassad anslutningssträng.

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

Om du vill ansluta till tjänsten som inte ärAzureOpenAI släpper du egenskapen Endpoint och anger endast egenskapen Nyckel för att ange API-nyckel.

Använda konfigurationsprovidrar

.NET Aspire Azure OpenAI-integreringen stöder Microsoft.Extensions.Configuration. Den läser in AzureOpenAISettings från konfigurationen med hjälp av Aspire:Azure:AI:OpenAI-nyckeln. Exempel appsettings.json som konfigurerar några av alternativen:

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

Använd inline-delegater

Du kan också skicka delegeringen Action<AzureOpenAISettings> configureSettings för att konfigurera vissa eller alla alternativ direkt, till exempel för att inaktivera spårning i koden.

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

Du kan också konfigurera OpenAIClientOptions med den valfria parametern Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder för metoden AddAzureAIOpenAI. Om du till exempel vill ange client ID för den här client:

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

Observerbarhet och telemetri

.NET .NET Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i översikten över .NET.NET Aspire integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Configuration.

Skogsavverkning

.NET Aspire Azure OpenAI-integreringen använder följande loggkategorier:

  • Azure
  • Azure.Core
  • Azure.Identity

Se även