Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce guide de démarrage rapide, vous allez apprendre à créer une application de conversation de console .NET conversationnelle à l’aide d’un modèle OpenAI ou Azure OpenAI. L’application utilise la bibliothèque Microsoft.Extensions.AI afin de pouvoir écrire du code à l’aide d’abstractions IA plutôt que d’un KIT de développement logiciel (SDK) spécifique. Les abstractions IA vous permettent de modifier le modèle IA sous-jacent avec des modifications de code minimales.
Conditions préalables
- SDK .NET 8.0 ou version ultérieure - Installer le SDK .NET 8.0.
- Une clé API d’OpenAI pour pouvoir exécuter cet échantillon.
Conditions préalables
- SDK .NET 8.0 ou version ultérieure - Installer le SDK .NET 8.
- Un abonnement Azure : créez-en un gratuitement.
- Azure Developer CLI (facultatif) : installer ou mettre à jour l’interface de ligne de commande du développeur Azure.
Remarque
Vous pouvez également utiliser Semantic Kernel pour accomplir les tâches décrites dans cet article. Semantic Kernel est un noyau léger et open source qui vous permet de construire des agents d'IA et d'intégrer les derniers modèles d'IA dans vos applications .NET.
Créer l’application
Effectuez les étapes suivantes pour créer une application console .NET qui se connectera à un modèle d'IA.
Dans un répertoire vide sur votre ordinateur, utilisez la commande
dotnet new
pour créer une application console :dotnet new console -o ChatAppAI
Modifiez le répertoire dans le dossier de l’application :
cd ChatAppAI
Installez les packages nécessaires :
dotnet add package Azure.Identity dotnet add package Azure.AI.OpenAI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
dotnet add package OpenAI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets
Ouvrez l’application dans Visual Studio Code (ou l’éditeur de votre choix).
code .
Créer le service d’IA
Pour provisionner un service et un modèle Azure OpenAI, suivez les étapes décrites dans l’article Créer et déployer une ressource Azure OpenAI Service .
À partir d’un terminal ou d’une invite de commandes, accédez à la racine de votre répertoire de projet.
Exécutez les commandes suivantes pour configurer votre point de terminaison Azure OpenAI et le nom du modèle pour l’exemple d’application :
dotnet user-secrets init dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint> dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-Azure-OpenAI-model-name>
Configurer l’application
Accédez à la racine de votre projet .NET à partir d’un terminal ou d’une invite de commandes.
Exécutez les commandes suivantes pour configurer votre clé API OpenAI en tant que secret pour l’exemple d’application :
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-OpenAI-key> dotnet user-secrets set ModelName <your-OpenAI-model-name>
Ajoutez le code de l’application
Cette application utilise le Microsoft.Extensions.AI
package pour envoyer et recevoir des demandes au modèle IA. L’application fournit aux utilisateurs des informations sur les sentiers de randonnée.
Dans le
Program.cs
fichier, ajoutez le code suivant pour vous connecter et vous authentifier auprès du modèle IA.IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_GPT_NAME"]; IChatClient chatClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .GetChatClient(deployment) .AsIChatClient();
Remarque
DefaultAzureCredential recherche les informations d'identification dans vos outils locaux. Si vous n’utilisez pas le modèle
azd
pour provisionner la ressource Azure OpenAI, vous devez affecter le rôleAzure AI Developer
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.var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string model = config["ModelName"]; string key = config["OpenAIKey"]; // Create the IChatClient IChatClient chatClient = new OpenAIClient(key).GetChatClient(model).AsIChatClient();
Créez une invite système pour fournir au modèle IA un contexte de rôle initial et des instructions sur les recommandations de randonnée :
// Start the conversation with context for the AI model List<ChatMessage> chatHistory = [ new ChatMessage(ChatRole.System, """ You are a friendly hiking enthusiast who helps people discover fun hikes in their area. You introduce yourself when first saying hello. When helping people out, you always ask them for this information to inform the hiking recommendation you provide: 1. The location where they would like to hike 2. What hiking intensity they are looking for You will then provide three suggestions for nearby hikes that vary in length after you get that information. You will also share an interesting fact about the local nature on the hikes when making a recommendation. At the end of your response, ask if there is anything else you can help with. """) ];
Créez une boucle conversationnelle qui accepte une invite d’entrée de l’utilisateur, envoie l’invite au modèle et imprime l’achèvement de la réponse :
// Loop to get user input and stream AI response while (true) { // Get user prompt and add to chat history Console.WriteLine("Your prompt:"); string? userPrompt = Console.ReadLine(); chatHistory.Add(new ChatMessage(ChatRole.User, userPrompt)); // Stream the AI response and add to chat history Console.WriteLine("AI Response:"); string response = ""; await foreach (ChatResponseUpdate item in chatClient.GetStreamingResponseAsync(chatHistory)) { Console.Write(item.Text); response += item.Text; } chatHistory.Add(new ChatMessage(ChatRole.Assistant, response)); Console.WriteLine(); }
Utilisez la commande
dotnet run
pour exécuter l’application :dotnet run
L’application imprime la réponse d’achèvement du modèle IA. Envoyez des invites de suivi supplémentaires et posez d’autres questions pour tester la fonctionnalité de conversation IA.
Nettoyer les ressources
Si vous n’en avez plus besoin, supprimez la ressource Azure OpenAI et le déploiement de modèle GPT-4.