integratie van .NET AspireAzureOpenAI
In dit artikel leert u hoe u de .NET AspireAzureOpenAIclientgebruikt. De Aspire.Azure.AI.OpenAI
-bibliotheek wordt gebruikt om een OpenAIClient
te registreren in de container voor afhankelijkheidsinjectie (DI) om AzureOpenAI of OpenAI functies te gebruiken. Hiermee worden bijbehorende logboekregistratie en telemetrie ingeschakeld.
Zie Quickstart: Aan de slag met het genereren van tekst met AzureOpenAI Servicevoor meer informatie over het gebruik van de OpenAIClient
.
Aan de slag
- Azure-abonnement: Maak er gratis een aan.
- Azure OpenAI- of OpenAI-account: een AzureOpenAI Service-resourcemaken.
Installeer de 📦Aspireom aan de slag te gaan met de .NET AspireAzureOpenAI-integratie.Azure. AI.OpenAI NuGet-pakket in het clientverbruikende project, d.w. het project voor de toepassing die gebruikmaakt van de AzureOpenAIclient.
dotnet add package Aspire.Azure.AI.OpenAI
Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.
Voorbeeld van gebruik
Roep in het Program.cs bestand van uw clientverbruikende project de extensiemethode aan om een OpenAIClient
te registreren voor gebruik via de container voor afhankelijkheidsinjectie. De methode gebruikt een verbindingsnaamparameter.
builder.AddAzureOpenAIClient("openAiConnectionName");
In de voorgaande code voegt de methode AddAzureOpenAIClient
een OpenAIClient
toe aan de DI-container. De parameter openAiConnectionName
is de naam van de verbindingsreeks in de configuratie. Vervolgens kunt u het OpenAIClient
exemplaar ophalen met behulp van afhankelijkheidsinjectie. Als u bijvoorbeeld de verbinding wilt ophalen uit een voorbeeldservice:
public class ExampleService(OpenAIClient client)
{
// Use client...
}
App-hostgebruik
Als u Azure hostingondersteuning wilt toevoegen aan uw IDistributedApplicationBuilder, installeert u het 📦Aspire.Hosting.Azure.CognitiveServices NuGet-pakket in het app-hostproject .
dotnet add package Aspire.Hosting.Azure.CognitiveServices
Registreer in uw app-hostproject een AzureOpenAI resource met behulp van de volgende methoden, zoals AddAzureOpenAI:
var builder = DistributedApplication.CreateBuilder(args);
var openai = builder.ExecutionContext.IsPublishMode
? builder.AddAzureOpenAI("openAiConnectionName")
: builder.AddConnectionString("openAiConnectionName");
builder.AddProject<Projects.ExampleProject>()
.WithReference(openai);
De AddAzureAIOpenAI
-methode leest verbindingsgegevens uit de configuratie van de app-host (bijvoorbeeld van 'gebruikersgeheimen') onder de ConnectionStrings:openAiConnectionName
configuratiesleutel. De methode WithReference geeft die verbindingsgegevens door aan een verbindingsreeks met de naam openAiConnectionName
in het ExampleProject
project. In het Program.cs-bestand van ExampleProject kan de verbinding worden gebruikt door middel van:
builder.AddAzureAIOpenAI("openAiConnectionName");
Configuratie
De .NET AspireAzureOpenAI-integratie biedt meerdere opties voor het configureren van de verbinding op basis van de vereisten en conventies van uw project.
Een verbindingsreeks gebruiken
Wanneer u een verbindingsreeks uit de sectie ConnectionStrings
configuratie gebruikt, kunt u de naam van de verbindingsreeks opgeven bij het aanroepen van builder.AddAzureAIOpenAI
:
builder.AddAzureAIOpenAI("openAiConnectionName");
De verbindingsreeks wordt opgehaald uit de ConnectionStrings
-configuratiesectie, en er zijn twee ondersteunde indelingen: het accounteindpunt dat wordt gebruikt in combinatie met de standaard Azure-referentie of een verbindingsreeks met de accountsleutel.
Accounteindpunt
De aanbevolen methode is om een Endpoint-te gebruiken, die werkt met de eigenschap AzureOpenAISettings.Credential
om een verbinding tot stand te brengen. Als er geen referentie is geconfigureerd, wordt de DefaultAzureCredential gebruikt.
{
"ConnectionStrings": {
"openAiConnectionName": "https://{account_name}.openai.azure.com/"
}
}
Zie Gebruik AzureOpenAI zonder sleutelsvoor meer informatie.
Verbindingsreeks
U kunt ook een aangepaste verbindingsreeks gebruiken.
{
"ConnectionStrings": {
"openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
}
}
Als u verbinding wilt maken met de niet-AzureOpenAI-service, laat u de eigenschap Endpoint
achterwege en stelt u alleen de eigenschap Sleutel in om de API-sleutelin te stellen.
Configuratieproviders gebruiken
De .NET AspireAzureOpenAI-integratie ondersteunt Microsoft.Extensions.Configuration. Het laadt AzureOpenAISettings
vanuit de configuratie met behulp van de Aspire:Azure:AI:OpenAI
sleutel. Voorbeeld appsettings.json waarmee een aantal van de opties wordt geconfigureerd:
{
"Aspire": {
"Azure": {
"AI": {
"OpenAI": {
"DisableTracing": false,
}
}
}
}
}
Inline delegates gebruiken
U kunt ook de Action<AzureOpenAISettings> configureSettings
delegate doorgeven om enkele of alle opties inline in te stellen, bijvoorbeeld om tracering in de code uit te schakelen.
builder.AddAzureAIOpenAI(
"openAiConnectionName",
static settings => settings.DisableTracing = true);
U kunt de OpenAIClientOptions ook instellen met behulp van de optionele Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder
parameter van de AddAzureAIOpenAI
methode. Als u bijvoorbeeld de client-id voor deze clientwilt instellen:
builder.AddAzureAIOpenAI(
"openAiConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Waarneembaarheid en telemetrie
.NET .NET Aspire integraties stellen automatisch Logging, Tracing en metrische configuraties in, die soms ook wel aangeduid worden als de pijlers van waarneembaarheid. Zie .NET.NET Aspire overzicht van integratieintegratiesvoor meer informatie over de waarneembaarheid en telemetrie van integraties. Afhankelijk van de back-upservice ondersteunen sommige integraties mogelijk slechts enkele van deze functies. Sommige integraties ondersteunen bijvoorbeeld logboekregistratie en tracering, maar geen metrische gegevens. Telemetriefuncties kunnen ook worden uitgeschakeld met behulp van de technieken die worden weergegeven in de sectie Configuratie.
Logboekregistratie
De .NET AspireAzureOpenAI-integratie maakt gebruik van de volgende logboekcategorieën:
Azure
Azure.Core
Azure.Identity