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.
Ce tutoriel montre comment ajouter une fonctionnalité agentique à une application CRUD principale basée sur les données existante ASP.NET. Cela utilise deux approches différentes : Microsoft Agent Framework et Foundry Agent Service.
Si votre application web dispose déjà de fonctionnalités utiles, telles que l’achat, la réservation d’hôtels ou la gestion des données, il est relativement simple d’ajouter des fonctionnalités d’agent à votre application web en encapsulant ces fonctionnalités en tant qu’outils (pour Microsoft Agent Framework) ou en tant que point de terminaison OpenAPI (pour le service De l’agent Foundry). Dans ce tutoriel, vous commencez par une application de liste to-do simple. À la fin, vous pourrez créer, mettre à jour et gérer des tâches avec un agent dans une application App Service.
Microsoft Agent Framework et Foundry Agent Service vous permettent de créer des applications web agentiques avec des fonctionnalités basées sur l’IA. Le tableau suivant présente certaines considérations et compromis :
| Consideration | Microsoft Agent Framework | Service d’agent de la fonderie |
|---|---|---|
| Performance | Rapide (s’exécute localement) | Plus lent (service géré, distant) |
| Development | Code complet, contrôle maximal | Faible code, intégration rapide |
| Testing | Tests manuels/unitaires dans le code | Terrain de jeu intégré pour les tests rapides |
| Scalability | Géré par l’application | Géré par Azure, mise à l’échelle automatique |
| Garde-fous de sécurité | Implémentation personnalisée requise | Sécurité et modération du contenu intégrées |
| Identité | Implémentation personnalisée requise | ID de l'agent et authentification intégrés |
| Entreprise | Intégration personnalisée requise | Déploiement intégré de Microsoft 365/Teams et appels d’outils intégrés à Microsoft 365. |
Dans ce tutoriel, vous allez apprendre à :
- Convertissez les fonctionnalités d’application existantes en outils pour Microsoft Agent Framework.
- Ajoutez les outils à un agent Microsoft Agent Framework et utilisez-le dans une application web.
- Convertir les fonctionnalités de l'application existante en un point de terminaison OpenAPI pour le Service de l’Agent Foundry.
- Appelez un agent Foundry dans une application web.
- Attribuez les autorisations requises pour la connectivité d’identité managée.
Prerequisites
- Un compte Azure avec un abonnement actif : créez un compte gratuitement.
- Compte GitHub pour utiliser GitHub Codespaces - En savoir plus sur GitHub Codespaces.
Ouvrir l’exemple avec Codespaces
Le moyen le plus simple de commencer consiste à utiliser GitHub Codespaces, qui fournit un environnement de développement complet avec tous les outils requis préinstallés.
Accédez au dépôt GitHub à l’adresse https://github.com/Azure-Samples/app-service-agentic-semantic-kernel-ai-foundry-agent.
Sélectionnez le bouton Code , sélectionnez l’onglet Espaces de code, puis sélectionnez Créer un espace de code dans l’espace de code principal.
Attendez quelques instants pour que votre espace de code s’initialise. Une fois prêt, vous verrez un environnement de développement entièrement configuré dans votre navigateur.
Exécutez l’application localement :
dotnet runLorsque vous voyez Votre application, qui s’exécute sur le port 5280, est disponible, sélectionnez Ouvrir dans le navigateur et ajoutez quelques tâches.
Passer en revue le code de l’agent
Les deux approches utilisent le même modèle d’implémentation, où l’agent est initialisé en tant que service (dans Program.cs) dans un fournisseur et injecté dans le composant Blazor respectif.
Le AgentFrameworkProvider est initialisé dans Services/AgentFrameworkProvider.cs. Le code d’initialisation effectue les opérations suivantes :
- Crée un
IChatClientà partir d’Azure OpenAI à l’aide duAzureOpenAIClient. - Obtient l’instance
TaskCrudToolqui encapsule les fonctionnalités de l’application CRUD (dans Tools/TaskCrudTool.cs). Les attributsDescriptiondes méthodes de l'outil aident l’agent à déterminer comment les appeler. - Crée un agent IA avec
CreateAIAgent()avec des instructions et des outils enregistrés viaAIFunctionFactory.Create(). - Crée un thread pour que l'agent puisse persister la conversation lors de la navigation.
// Create IChatClient
IChatClient chatClient = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetChatClient(deployment)
.AsIChatClient();
// Get TaskCrudTool instance from service provider
var taskCrudTool = sp.GetRequiredService<TaskCrudTool>();
// Create agent with tools
var agent = chatClient.CreateAIAgent(
instructions: @"You are an agent that manages tasks using CRUD operations.
Use the provided functions to create, read, update, and delete tasks.
Always call the appropriate function for any task management request.
Don't try to handle any requests that are not related to task management.
When handling requests, if you're missing any information, don't make it up but prompt the user for it instead.",
tools:
[
AIFunctionFactory.Create(taskCrudTool.CreateTaskAsync),
AIFunctionFactory.Create(taskCrudTool.ReadTasksAsync),
AIFunctionFactory.Create(taskCrudTool.UpdateTaskAsync),
AIFunctionFactory.Create(taskCrudTool.DeleteTaskAsync)
]);
// Create thread for this scoped instance (persists across navigation)
var thread = agent.GetNewThread();
return (agent, thread);
Chaque fois que l’utilisateur envoie un message, le composant Blazor (dans Components/Pages/AgentFrameworkAgent.razor) appelle Agent.RunAsync() avec le message de l'utilisateur et le thread de l’agent. Le thread de l’agent effectue le suivi de l’historique des conversations.
var response = await this.Agent.RunAsync(sentInput, this.agentThread);
Déployer l’exemple d’application
L’exemple de référentiel contient un modèle Azure Developer CLI (AZD), qui crée une application App Service avec une identité managée et déploie votre exemple d’application.
Dans le terminal, connectez-vous à Azure à l’aide d’Azure Developer CLI :
azd auth loginSuivez les instructions pour terminer le processus d’authentification.
Déployez l’application Azure App Service avec le modèle AZD :
azd upLorsque vous y êtes invité, fournissez les réponses suivantes :
Question Answer Entrez un nouveau nom d’environnement : Tapez un nom unique. Sélectionnez un abonnement Azure à utiliser : Sélectionnez l’abonnement. Choisissez un groupe de ressources à utiliser : Sélectionnez Créer un groupe de ressources. Sélectionnez un emplacement dans lequel créer le groupe de ressources : Sélectionnez Suède Centre. Entrez un nom pour le nouveau groupe de ressources : Tapez Entrée. Dans la sortie AZD, retrouvez l’URL de votre application et accédez-y dans le navigateur. L’URL ressemble à ceci dans la sortie AZD :
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
Sélectionnez l’élément de schéma OpenAPI pour ouvrir le schéma OpenAPI généré automatiquement au chemin d’accès par défaut
/openapi/v1.json. Vous avez besoin de ce schéma ultérieurement.Une fois le déploiement réussi, vous verrez une URL pour votre application déployée.
Vous disposez maintenant d’une application App Service avec une identité managée affectée par le système.
Créer et configurer la ressource Microsoft Foundry
Dans le portail Foundry, vérifiez que le bouton radio "New Foundry" en haut est activé et créez un projet.
Déployez un modèle de votre choix (consultez Démarrage rapide Microsoft Foundry : Créer des ressources).
Depuis le haut du model playground, copiez le nom du modèle.
Le moyen le plus simple d’obtenir le point de terminaison Azure OpenAI est toujours à partir du portail Classic. Sélectionnez le bouton radio New Foundry, puis Azure OpenAI, et copiez l’URL dans le point d'accès Azure OpenAI pour plus tard.
Attribuer des autorisations requises
Dans le menu supérieur du nouveau portail Foundry, sélectionnez Utiliser, puis sélectionnez Administrateur. Dans la ligne de votre projet Foundry, vous devez voir deux liens. La colonne Name est la ressource de projet Foundry, et celle de la colonne de ressource Parent est la ressource Foundry.
Sélectionnez la ressource Foundry dans la ressource parente , puis sélectionnez Gérer cette ressource dans le portail Azure. À partir du portail Azure, vous pouvez attribuer un accès en fonction du rôle pour la ressource à l’application web déployée.
Ajoutez le rôle suivant pour l’identité managée de l’application App Service :
Ressource cible Rôle requis Nécessaire pour Fonderie Utilisateur OpenAI de Cognitive Services Service d’achèvement de conversation dans Microsoft Agent Framework. Pour obtenir des instructions, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Configurer des variables de connexion dans votre exemple d’application
Ouvrez appsettings.json. À l’aide des valeurs que vous avez copiées précédemment à partir du portail Foundry, configurez les variables suivantes :
Variable Description AzureOpenAIEndpointPoint de terminaison Azure OpenAI (copié à partir du portail Classic Foundry). ModelDeploymentNom du modèle dans le déploiement (copié depuis le model playground dans le nouveau portail Foundry). Note
Pour simplifier le didacticiel, vous allez utiliser ces variables dans appsettings.json au lieu de les remplacer par des paramètres d’application dans App Service.
Note
Pour simplifier le didacticiel, vous allez utiliser ces variables dans appsettings.json au lieu de les remplacer par des paramètres d’application dans App Service.
Connectez-vous à Azure avec Azure CLI :
az loginCela permet à la bibliothèque cliente Azure Identity dans l’exemple de code de recevoir un jeton d’authentification pour l’utilisateur connecté. N’oubliez pas que vous avez ajouté le rôle requis pour cet utilisateur précédemment.
Exécutez l’application localement :
dotnet runLorsque votre application s'exécutant sur le port 5280, est disponible, sélectionnez Ouvrir dans le navigateur.
Sélectionnez le lien Microsoft Agent Framework Agent et le lien Du service Foundry Agent pour tester l’interface de conversation. Si vous obtenez une réponse, votre application se connecte correctement à la ressource Microsoft Foundry.
De retour dans l’espace de code GitHub, déployez les modifications apportées à votre application.
azd upAccédez à nouveau à l’application déployée et testez les agents de conversation.
Nettoyer les ressources
Lorsque vous avez terminé avec l’application, vous pouvez supprimer les ressources App Service pour éviter d’entraîner d’autres coûts :
azd down --purge
Étant donné que le modèle AZD n’inclut pas les ressources Microsoft Foundry, vous devez les supprimer manuellement si vous le souhaitez.