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
- Azure subskrypcji: utwórz bezpłatną subskrypcję.
- konto AzureOpenAI lub OpenAI: utworzyć zasób usługi AzureOpenAI Service.
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