Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce guide de démarrage rapide, vous créez une application de conversation qui demande une réponse avec une sortie structurée. Une réponse de sortie structurée est une réponse de conversation qui est d’un type que vous spécifiez au lieu de simplement du texte brut. L’application de conversation que vous créez dans ce guide de démarrage rapide analyse les sentiments des différents avis de produit, catégorisant chaque révision en fonction des valeurs d’une énumération personnalisée.
Conditions préalables
- .NET 8 ou une version ultérieure
- Visual Studio Code (facultatif)
Configurer le service IA
Pour approvisionner un service et un modèle Azure OpenAI à l’aide du Portail Azure, suivez les étapes décrites dans l’article Créer et déployer une ressource Azure OpenAI Service. Dans l’étape « Déployer un modèle », sélectionnez le gpt-4o modèle.
Créer l’application de conversation
Effectuez les étapes suivantes pour créer une application console qui se connecte au gpt-4o modèle IA.
Dans une fenêtre de terminal, accédez au répertoire dans lequel vous souhaitez créer votre application et créez une application console avec la
dotnet newcommande :dotnet new console -o SOChatAccédez au répertoire
SOChatet ajoutez les packages nécessaires à votre application :dotnet add package Azure.AI.OpenAI dotnet add package Azure.Identity dotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecretsExécutez les commandes suivantes pour ajouter des secrets d’application pour votre point de terminaison Azure OpenAI, le nom du modèle et l’ID de locataire :
dotnet user-secrets init dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint> dotnet user-secrets set AZURE_OPENAI_GPT_NAME gpt-4o dotnet user-secrets set AZURE_TENANT_ID <your-tenant-ID>Remarque
Selon votre environnement, l’ID de locataire peut ne pas être nécessaire. Dans ce cas, supprimez-le du code qui instancie le DefaultAzureCredential.
Ouvrez la nouvelle application dans votre éditeur de choix.
Ajouter le code
Définissez l’énumération qui décrit les différents sentiments.
public enum Sentiment { Positive, Negative, Neutral }Créez le IChatClient qui communiquera avec le modèle.
IConfigurationRoot config = new ConfigurationBuilder() .AddUserSecrets<Program>() .Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string model = config["AZURE_OPENAI_GPT_NAME"]; string tenantId = config["AZURE_TENANT_ID"]; // Get a chat client for the Azure OpenAI endpoint. AzureOpenAIClient azureClient = new( new Uri(endpoint), new DefaultAzureCredential(new DefaultAzureCredentialOptions() { TenantId = tenantId })); IChatClient chatClient = azureClient .GetChatClient(deploymentName: model) .AsIChatClient();Remarque
DefaultAzureCredential recherche des identifiants d'authentification depuis votre environnement ou vos outils locaux. Vous devez attribuer le
Azure AI Developerrôle au compte que vous avez utilisé pour vous connecter à Visual Studio ou à Azure CLI. Pour plus d'informations, voir Authentification aux services Azure AI avec .NET.Envoyez une demande au modèle avec un avis de produit unique, puis affichez le sentiment analysé dans la console. Vous déclarez le type de sortie structuré demandé en le transmettant en tant qu’argument de type à la ChatClientStructuredOutputExtensions.GetResponseAsync<T>(IChatClient, String, ChatOptions, Nullable<Boolean>, CancellationToken) méthode d’extension.
string review = "I'm happy with the product!"; var response = await chatClient.GetResponseAsync<Sentiment>($"What's the sentiment of this review? {review}"); Console.WriteLine($"Sentiment: {response.Result}");Ce code produit une sortie similaire à :
Sentiment: PositiveAu lieu d’analyser simplement une seule révision, vous pouvez analyser une collection de révisions.
string[] inputs = [ "Best purchase ever!", "Returned it immediately.", "Hello", "It works as advertised.", "The packaging was damaged but otherwise okay." ]; foreach (var i in inputs) { var response2 = await chatClient.GetResponseAsync<Sentiment>($"What's the sentiment of this review? {i}"); Console.WriteLine($"Review: {i} | Sentiment: {response2.Result}"); }Ce code produit une sortie similaire à :
Review: Best purchase ever! | Sentiment: Positive Review: Returned it immediately. | Sentiment: Negative Review: Hello | Sentiment: Neutral Review: It works as advertised. | Sentiment: Neutral Review: The packaging was damaged but otherwise okay. | Sentiment: NeutralAu lieu de demander uniquement la valeur d’énumération analysée, vous pouvez demander la réponse textuelle avec la valeur analysée.
Définissez un type d’enregistrement pour contenir la réponse de texte et le sentiment analysé :
record SentimentRecord(string ResponseText, Sentiment ReviewSentiment);(Ce type d’enregistrement est défini à l’aide de la syntaxe du constructeur principal . Les constructeurs principaux combinent la définition de type avec les paramètres nécessaires pour instancier n’importe quelle instance de la classe. Le compilateur C# génère des propriétés publiques pour les paramètres du constructeur principal.)
Envoyez la requête à l’aide du type d’enregistrement comme argument de type à
GetResponseAsync<T>:var review3 = "This product worked okay."; var response3 = await chatClient.GetResponseAsync<SentimentRecord>($"What's the sentiment of this review? {review3}"); Console.WriteLine($"Response text: {response3.Result.ResponseText}"); Console.WriteLine($"Sentiment: {response3.Result.ReviewSentiment}");Ce code produit une sortie similaire à :
Response text: Certainly, I have analyzed the sentiment of the review you provided. Sentiment: Neutral
Nettoyer les ressources
Si vous n’en avez plus besoin, supprimez la ressource Azure OpenAI et le déploiement de modèle GPT-4.
- Dans le portail Azure , accédez à la ressource Azure OpenAI.
- Sélectionnez la ressource Azure OpenAI, puis sélectionnez Supprimer.