Exercice : Utiliser des plug-ins intégrés
Pour cet exercice, vous ajoutez un plug-in existant à votre projet de noyau sémantique et découvrez comment utiliser votre premier plug-in pour accomplir une tâche. C’est parti !
Préparer votre environnement de développement
Pour ces exercices, un projet de démarrage est mis à votre disposition. Effectuez les étapes suivantes pour configurer le projet de démarrage :
Important
Vous devez avoir installé Visual Studio Code et le .NET Framework 8.0 pour effectuer ces étapes. Vous devrez peut-être également installer l’extension du Kit de développement C# de Visual Studio Code.
Ouvrez Visual Studio Code.
Sous la section Démarrer de Visual Studio Code , sélectionnez le référentiel git clone.
Dans la barre d’URL, entrez
https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git
Dans l’Explorateur de fichiers, créez un dossier dans un emplacement facile à trouver et à mémoriser, tel qu’un dossier dans votre Bureau.
Cliquez sur le bouton Sélectionner en tant que destination du référentiel.
Vous devez être connecté à GitHub pour cloner correctement le projet.
Ouvrez le projet dans Visual Studio Code.
Dans l’Explorateur, cliquez avec le bouton droit sur le dossier M02-create-plugins-for-semantic-kernel/M02-Project, puis cliquez sur Ouvrir dans le terminal intégré.
Développez le dossier M02-create-plugins-for-semantic-kernel/M02-Project.
Vous devez voir un fichier « Program.cs ».
Ouvrez le fichier Program.cs, puis mettez à jour les variables suivantes avec votre point de terminaison, clé API et nom de déploiement Azure OpenAI Services.
string yourDeploymentName = ""; string yourEndpoint = ""; string yourKey = "";
Vous êtes maintenant prêt à commencer l’exercice. Bonne chance !
Obtenir l’intention de l’utilisateur
Dans le terminal intégré, ajoutez les plug-ins du noyau sémantique. Intégrez le package à votre projet en exécutant la commande suivante :
dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha
Remarque
Actuellement, le package est une version préliminaire. Vous pouvez vérifier quelle est la version la plus récente à l’adresse https://www.nuget.org/packages/Microsoft.SemanticKernel.Plugins.Core/1.2.0-alpha.
Ajoutez le code suivant à votre fichier Program.cs :
builder.Plugins.AddFromType<ConversationSummaryPlugin>(); var kernel = builder.Build(); string input = @"I'm a vegan in search of new recipes. I love spicy food! Can you give me a list of breakfast recipes that are vegan friendly?"; var result = await kernel.InvokeAsync( "ConversationSummaryPlugin", "GetConversationActionItems", new() {{ "input", input }}); Console.WriteLine(result);
Dans ce code, vous importez le
ConversationSummaryPlugin
à partir du packageCore.Plugins
. Vous créez un générateur de noyau et y ajoutez le plug-in. LeConversationSummaryPlugin
prend en charge plusieurs actions :GetConversationActionItems
,SummarizeConversation
etGetConversationTopics
.Vous créez une chaîne avec un exemple de conversation, puis appelez le plug-in avec le nom de la fonction et transmettez la chaîne de conversation. Le plug-in retourne un résumé de la conversation.
Remarque
Étant donné que le plug-in est toujours en préversion, vous devrez peut-être ajouter l’option permettant de masquer l’avertissement en utilisant
#pragma warning disable SKEXP0050
en haut du fichier.Exécutez le code en entrant
dotnet run
dans le terminal.Vous devez voir une réponse similaire à la sortie suivante :
{ "actionItems": [ { "owner": "", "actionItem": "Provide a list of vegan-friendly spicy breakfast recipes", "dueDate": "", "status": "Open", "notes": "" } ] }
Notez que le plug-in a pu identifier une intention simplifiée à partir de la chaîne d’entrée.
Ceci n’est qu’un exemple basique de ce que vous pouvez faire avec le kit SDK Noyau sémantique. Dans l’unité suivante, vous découvrirez d’autres manières de personnaliser des plug-ins et d’exécuter des fonctions.
Important
Veillez à conserver tout le code que vous avez écrit jusqu’à présent, car vous en aurez besoin pour les exercices suivants.