intégration de .NET AspireAzureOpenAI
Dans cet article, vous allez apprendre à utiliser le .NET AspireAzureOpenAIclient. La bibliothèque Aspire.Azure.AI.OpenAI
est utilisée pour inscrire un OpenAIClient
dans le conteneur d’injection de dépendances (DI) pour consommer des fonctionnalités AzureOpenAI ou OpenAI. Elle active la journalisation et la télémétrie correspondantes.
Pour plus d’informations sur l’utilisation du OpenAIClient
, consultez Démarrage rapide : Prise en main de la génération de texte à l’aide de AzureOpenAI Service.
Démarrer
- abonnement Azure : en créer un gratuitement.
- Azure OpenAI ou compte OpenAI : créer une ressource de service AzureOpenAI.
Pour démarrer avec l’intégration .NET AspireAzureOpenAI, installez le package NuGet 📦Aspire.Azure. IA.OpenAI dans le projet qui consomme client, c’est-à-dire le projet pour l’application qui utilise le AzureOpenAIclient.
dotnet add package Aspire.Azure.AI.OpenAI
Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances de packages dans les applications .NET.
Exemple d’utilisation
Dans le fichier Program.cs de votre projet consommant client, appelez la méthode d’extension pour enregistrer une OpenAIClient
à utiliser via le conteneur d’injection de dépendance. La méthode prend un paramètre de nom de connexion.
builder.AddAzureOpenAIClient("openAiConnectionName");
Dans le code précédent, la méthode AddAzureOpenAIClient
ajoute un OpenAIClient
au conteneur d’adresses de domaine. Le paramètre openAiConnectionName
est le nom de la chaîne de connexion dans la configuration. Vous pouvez ensuite récupérer l’instance OpenAIClient
à l’aide de l’injection de dépendances. Par exemple, pour récupérer la connexion à partir d’un exemple de service :
public class ExampleService(OpenAIClient client)
{
// Use client...
}
Utilisation de l’hôte d’application
Pour ajouter la prise en charge de l'hébergement Azure à votre IDistributedApplicationBuilder, installez le package NuGet 📦Aspire.Hosting.Azure.CognitiveServices dans le projet hôte de l'application .
dotnet add package Aspire.Hosting.Azure.CognitiveServices
Dans votre projet hôte d’application, inscrivez une ressource AzureOpenAI à l’aide des méthodes suivantes, telles que AddAzureOpenAI:
var builder = DistributedApplication.CreateBuilder(args);
var openai = builder.ExecutionContext.IsPublishMode
? builder.AddAzureOpenAI("openAiConnectionName")
: builder.AddConnectionString("openAiConnectionName");
builder.AddProject<Projects.ExampleProject>()
.WithReference(openai);
La méthode AddAzureAIOpenAI
lira les informations de connexion à partir de la configuration de l'hôte de l'application, comme par exemple dans les "secrets utilisateur", sous la clé de configuration ConnectionStrings:openAiConnectionName
. La méthode WithReference transmet ces informations de connexion dans une chaîne de connexion nommée openAiConnectionName
dans le projet ExampleProject
. Dans le fichier Program.cs d’ExampleProject, la connexion peut être consommée à l’aide de :
builder.AddAzureAIOpenAI("openAiConnectionName");
Configuration
L’intégration .NET AspireAzureOpenAI fournit plusieurs options pour configurer la connexion en fonction des exigences et des conventions de votre projet.
Utiliser une chaîne de connexion
Lorsque vous utilisez une chaîne de connexion à partir de la section de configuration ConnectionStrings
, vous pouvez fournir le nom de la chaîne de connexion lors de l’appel de builder.AddAzureAIOpenAI
:
builder.AddAzureAIOpenAI("openAiConnectionName");
La chaîne de connexion est récupérée à partir de la section de configuration ConnectionStrings
et il existe deux formats pris en charge, soit le point de terminaison de compte utilisé conjointement avec les informations d’identification par défaut Azure, soit une chaîne de connexion avec la clé de compte.
Point de terminaison de compte
L’approche recommandée consiste à utiliser un point de terminaison , qui fonctionne avec la propriété AzureOpenAISettings.Credential
pour établir une connexion. Si aucune information d’identification n’est configurée, la DefaultAzureCredential est utilisée.
{
"ConnectionStrings": {
"openAiConnectionName": "https://{account_name}.openai.azure.com/"
}
}
Pour plus d’informations, consultez Utiliser AzureOpenAI sans clés.
Chaîne de connexion
Vous pouvez également utiliser une chaîne de connexion personnalisée.
{
"ConnectionStrings": {
"openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
}
}
Pour vous connecter au service nonAzureOpenAI, supprimez la propriété Endpoint
et définissez uniquement la propriété Clé pour définir la clé API .
Utiliser des fournisseurs de configuration
L’intégration .NET AspireAzureOpenAI prend en charge Microsoft.Extensions.Configuration. Il charge le AzureOpenAISettings
à partir de la configuration à l’aide de la clé Aspire:Azure:AI:OpenAI
. Exemple appsettings.json qui configure certaines des options suivantes :
{
"Aspire": {
"Azure": {
"AI": {
"OpenAI": {
"DisableTracing": false,
}
}
}
}
}
Utiliser des délégués inline
Vous pouvez également transmettre le délégué Action<AzureOpenAISettings> configureSettings
pour configurer certaines ou toutes les options en ligne, par exemple pour désactiver le traçage à partir du code :
builder.AddAzureAIOpenAI(
"openAiConnectionName",
static settings => settings.DisableTracing = true);
Vous pouvez également configurer OpenAIClientOptions à l’aide du paramètre facultatif Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder
de la méthode AddAzureAIOpenAI
. Par exemple, pour définir l’ID de client pour cette client:
builder.AddAzureAIOpenAI(
"openAiConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Observabilité et télémétrie
.NET .NET Aspire intégrations configurent automatiquement les configurations de journalisation, de suivi et de métriques, parfois appelées les piliers de l’observabilité. Pour plus d’informations sur l’observabilité de l’intégration et la télémétrie, consultez .NET.NET Aspire vue d’ensemble des intégrations. Selon le service de stockage, certaines intégrations peuvent uniquement prendre en charge certaines de ces fonctionnalités. Par exemple, certaines intégrations prennent en charge la journalisation et le suivi, mais pas les métriques. Les fonctionnalités de télémétrie peuvent également être désactivées à l’aide des techniques présentées dans la section Configuration.
Exploitation forestière
L’intégration .NET AspireAzureOpenAI utilise les catégories de journaux suivantes :
Azure
Azure.Core
Azure.Identity