Udostępnij za pośrednictwem


integracja .NET AspireAzureOpenAI

Z tego artykułu dowiesz się, jak używać .NET AspireAzureOpenAIclient. Biblioteka Aspire.Azure.AI.OpenAI służy do rejestrowania OpenAIClient w kontenerze wstrzykiwania zależności (DI) w celu użycia funkcji Azure,OpenAI lub OpenAI. Umożliwia ono rejestrowanie i telemetrię.

Aby uzyskać więcej informacji na temat korzystania z OpenAIClient, zobacz Szybki start: Rozpoczynanie generowania tekstu przy użyciu usługi AzureOpenAI Service.

Zaczynaj

Aby rozpocząć pracę z integracją .NET AspireAzureOpenAI, zainstaluj 📦Aspire.Azure. AI.OpenAI pakiet NuGet w projekcie korzystającym z client, tj. projekt aplikacji, która używa AzureOpenAIclient.

dotnet add package Aspire.Azure.AI.OpenAI

Aby uzyskać więcej informacji, zobacz dotnet add package lub Zarządzaj zależnościami pakietów w .NET aplikacjach.

Przykładowe użycie

W pliku Program.cs projektu zużywającego client, wywołaj metodę rozszerzenia, aby zarejestrować OpenAIClient do użycia za pośrednictwem kontenera wstrzykiwania zależności. Metoda przyjmuje parametr nazwy połączenia.

builder.AddAzureOpenAIClient("openAiConnectionName");

W poprzednim kodzie metoda AddAzureOpenAIClient dodaje OpenAIClient do kontenera DI. Parametr openAiConnectionName jest nazwą ciągu połączenia w konfiguracji. Następnie można pobrać wystąpienie OpenAIClient przy użyciu wstrzykiwania zależności. Aby na przykład pobrać połączenie z przykładowej usługi:

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

Użycie hosta aplikacji

Aby dodać obsługę hostingu Azure do IDistributedApplicationBuilder, zainstaluj pakiet NuGet 📦Aspire.Hosting.Azure.CognitiveServices w projekcie hosta aplikacji .

dotnet add package Aspire.Hosting.Azure.CognitiveServices

W projekcie hosta aplikacji zarejestruj zasób AzureOpenAI przy użyciu następujących metod, takich jak AddAzureOpenAI:

var builder = DistributedApplication.CreateBuilder(args);

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

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

Metoda AddAzureAIOpenAI odczytuje informacje o połączeniu z konfiguracji hosta aplikacji (na przykład z "wpisów tajnych użytkownika") w kluczu konfiguracji ConnectionStrings:openAiConnectionName. Metoda WithReference przekazuje te informacje o połączeniu do ciągu połączenia o nazwie openAiConnectionName w projekcie ExampleProject. W pliku Program.cs projektu ExampleProject można wykorzystać połączenie za pomocą:

builder.AddAzureAIOpenAI("openAiConnectionName");

Konfiguracja

Integracja .NET AspireAzureOpenAI udostępnia wiele opcji konfigurowania połączenia na podstawie wymagań i konwencji projektu.

Używanie parametrów połączenia

W przypadku używania parametrów połączenia z sekcji konfiguracji ConnectionStrings można podać nazwę parametrów połączenia podczas wywoływania builder.AddAzureAIOpenAI:

builder.AddAzureAIOpenAI("openAiConnectionName");

Parametry połączenia są pobierane z sekcji konfiguracji ConnectionStrings, a obsługiwane są dwa formaty: punkt końcowy konta używany w połączeniu z domyślnymi poświadczeniami Azure lub łańcuch połączenia z kluczem konta.

Punkt końcowy konta

Zalecaną metodą jest użycie punktu końcowego, który współpracuje z właściwością AzureOpenAISettings.Credential w celu nawiązania połączenia. Jeśli nie skonfigurowano poświadczeń, zostanie użyta DefaultAzureCredential.

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

Aby uzyskać więcej informacji, zobacz Użyj AzureOpenAI bez kluczy.

Ciąg połączenia

Alternatywnie można użyć niestandardowych parametrów połączenia.

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

Aby nawiązać połączenie z usługą inną niżAzureOpenAI, usuń właściwość Endpoint i ustaw tylko właściwość Key, aby ustawić klucz interfejsu API .

Korzystanie z dostawców konfiguracji

Integracja .NET AspireAzureOpenAI obsługuje Microsoft.Extensions.Configuration. Ładuje AzureOpenAISettings z konfiguracji przy użyciu klucza Aspire:Azure:AI:OpenAI. Przykład appsettings.json, który konfiguruje niektóre opcje:

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

Używanie delegatów wbudowanych

Możesz również przekazać delegata Action<AzureOpenAISettings> configureSettings, aby skonfigurować niektóre lub wszystkie opcje wbudowane, na przykład w celu wyłączenia śledzenia z kodu:

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

Można również skonfigurować opcje OpenAIClientOptions przy użyciu opcjonalnego parametru Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder metody AddAzureAIOpenAI. Aby na przykład ustawić identyfikator client dla tego client:

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

Obserwowanie i telemetria

.NET .NET Aspire integracje automatycznie konfigurują ustawienia rejestrowania, śledzenia i metryk, które nazywane są czasem filarami obserwowalności. Aby uzyskać więcej informacji na temat możliwości obserwacji integracji i telemetrii, zobacz omówienie integracji .NET.NET Aspire. W zależności od usługi pomocniczej niektóre integracje mogą obsługiwać tylko niektóre z tych funkcji. Na przykład niektóre integracje obsługują rejestrowanie i śledzenie, ale nie metryki. Funkcje telemetrii można również wyłączyć przy użyciu technik przedstawionych w sekcji konfiguracji .

Dziennikowanie

Integracja .NET AspireAzureOpenAI używa następujących kategorii dzienników:

  • Azure
  • Azure.Core
  • Azure.Identity

Zobacz też