.NET Aspire Azure OpenAI Integration
In diesem Artikel erfahren Sie, wie Sie die .NET AspireAzureOpenAIclientverwenden. Die Aspire.Azure.AI.OpenAI
-Bibliothek wird verwendet, um eine OpenAIClient
-Komponente im Container zum Einfügen von Abhängigkeiten (Dependency Injection, DI) zu registrieren, um Azure-,OpenAI- oder OpenAI-Funktionen zu nutzen. Es ermöglicht die entsprechende Protokollierung und Telemetrie.
Weitere Informationen zur Verwendung der OpenAIClient
finden Sie unter Schnellstart: Erste Schritte mit AzureOpenAI Servicebei der Textgenerierung.
Loslegen
- Azure Abonnement: Ein kostenloseserstellen.
- Azure OpenAI- oder OpenAI-Konto: eine AzureOpenAI-Dienstressourceerstellen.
Um mit der .NET AspireAzureOpenAI-Integration zu beginnen, installieren Sie das NuGet-Paket 📦Aspire.Azure.AI.OpenAI im verbrauchenden Projekt client, das heißt, das Projekt der Anwendung, die die AzureOpenAIclientverwendet.
dotnet add package Aspire.Azure.AI.OpenAI
Weitere Informationen finden Sie in dotnet add package oder Verwalten von Paketabhängigkeiten in .NET Anwendungen.
Beispiel Verwendung
Rufen Sie in der Program.cs-Datei Ihres client-verbrauchenden Projekts die Erweiterungsmethode auf, um eine OpenAIClient
für die Verwendung über den Container zum Einfügen von Abhängigkeiten zu registrieren. Die Methode verwendet einen Verbindungsnamenparameter.
builder.AddAzureOpenAIClient("openAiConnectionName");
Im vorherigen Code fügt die AddAzureOpenAIClient
-Methode dem DI-Container eine OpenAIClient
hinzu. Der Parameter openAiConnectionName
ist der Name der Verbindungszeichenfolge in der Konfiguration. Anschließend können Sie die Instanz OpenAIClient
mithilfe der Abhängigkeitsinjektion abrufen. Um beispielsweise die Verbindung von einem Beispieldienst abzurufen:
public class ExampleService(OpenAIClient client)
{
// Use client...
}
Nutzung des App-Hosts
Um Azure Hosting-Unterstützung zu Ihrem IDistributedApplicationBuilderhinzuzufügen, installieren Sie das 📦Aspire.Hosting.Azure.CognitiveServices NuGet-Paket im App-Host Projekt.
dotnet add package Aspire.Hosting.Azure.CognitiveServices
Registrieren Sie in Ihrem App-Hostprojekt eine AzureOpenAI Ressource mithilfe der folgenden Methoden, z. B. AddAzureOpenAI:
var builder = DistributedApplication.CreateBuilder(args);
var openai = builder.ExecutionContext.IsPublishMode
? builder.AddAzureOpenAI("openAiConnectionName")
: builder.AddConnectionString("openAiConnectionName");
builder.AddProject<Projects.ExampleProject>()
.WithReference(openai);
Die AddAzureAIOpenAI
-Methode liest Verbindungsinformationen aus der Konfiguration des App-Hosts (z. B. aus "Benutzergeheimnissen") unter dem ConnectionStrings:openAiConnectionName
-Konfigurationsschlüssel. Die WithReference-Methode übergibt diese Verbindungsinformationen an eine Connection-String mit dem Namen openAiConnectionName
im ExampleProject
-Projekt. In der Program.cs Datei von ExampleProject kann die Verbindung verwendet werden:
builder.AddAzureAIOpenAI("openAiConnectionName");
Konfiguration
Die .NET AspireAzureOpenAI Integration bietet mehrere Optionen zum Konfigurieren der Verbindung basierend auf den Anforderungen und Konventionen Ihres Projekts.
Verwenden Sie eine Verbindungszeichenfolge
Wenn Sie eine Verbindungszeichenfolge aus dem Konfigurationsabschnitt ConnectionStrings
verwenden, können Sie beim Aufrufen von builder.AddAzureAIOpenAI
den Namen der Verbindungszeichenfolge angeben:
builder.AddAzureAIOpenAI("openAiConnectionName");
Die Verbindungszeichenfolge wird aus dem Konfigurationsabschnitt ConnectionStrings
abgerufen. Es gibt zwei unterstützte Formate: Entweder wird der Kontoendpunkt zusammen mit den Standardanmeldeinformationen Azure verwendet, oder es wird eine Verbindungszeichenfolge mit dem Kontoschlüssel eingesetzt.
Kontoendpunkt
Der empfohlene Ansatz besteht darin, einen Endpointzu verwenden, der mit der AzureOpenAISettings.Credential
-Eigenschaft funktioniert, um eine Verbindung herzustellen. Wenn keine Anmeldeinformationen konfiguriert sind, wird die DefaultAzureCredential verwendet.
{
"ConnectionStrings": {
"openAiConnectionName": "https://{account_name}.openai.azure.com/"
}
}
Weitere Informationen finden Sie unter Verwendung von AzureOpenAI ohne Tasten.
Verbindungszeichenfolge
Alternativ kann eine benutzerdefinierte Verbindungszeichenfolge verwendet werden.
{
"ConnectionStrings": {
"openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
}
}
Um eine Verbindung mit dem Nicht-Azure-OpenAI-Dienst herzustellen, lassen Sie die Eigenschaft Endpoint
weg und setzen Sie nur die Schlüssel-Eigenschaft, um den -API-Schlüsselfestzulegen.
Verwenden von Konfigurationsanbietern
Die .NET AspireAzureOpenAI Integration unterstützt Microsoft.Extensions.Configuration. Es lädt die AzureOpenAISettings
aus der Konfiguration mithilfe des Aspire:Azure:AI:OpenAI
-Schlüssels. Beispiel appsettings.json, das einige der Optionen konfiguriert:
{
"Aspire": {
"Azure": {
"AI": {
"OpenAI": {
"DisableTracing": false,
}
}
}
}
}
Verwenden Sie Inline-Delegaten
Sie können auch den Action<AzureOpenAISettings> configureSettings
Delegat übergeben, um einige oder alle Optionen inline einzurichten, z. B. zum Deaktivieren der Ablaufverfolgung aus Code:
builder.AddAzureAIOpenAI(
"openAiConnectionName",
static settings => settings.DisableTracing = true);
Sie können die OpenAIClientOptions auch mit dem optionalen Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder
-Parameter der AddAzureAIOpenAI
-Methode einrichten. Um beispielsweise die client-ID für diese clientfestzulegen:
builder.AddAzureAIOpenAI(
"openAiConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Observability und Telemetrie
.NET .NET Aspire Integrationen richten automatisch Protokollierungs-, Tracing- und Metrikkonfigurationen ein, die manchmal als die Säulen der Beobachtbarkeitbezeichnet werden. Weitere Informationen zur Integrationsüberwachung und Telemetrie finden Sie unter Übersicht über .NET.NET Aspire Integrationen. Abhängig vom unterstützenden Dienst unterstützen manche Integrationen möglicherweise nur bestimmte dieser Funktionen. Beispielsweise unterstützen einige Integrationen Protokollierung und Ablaufverfolgung, aber keine Metriken. Telemetriefunktionen können auch mithilfe der Techniken deaktiviert werden, die im Abschnitt Configuration dargestellt werden.
Protokollierung
Die .NET AspireAzureOpenAI Integration verwendet die folgenden Protokollkategorien:
Azure
Azure.Core
Azure.Identity