Maison > Article > Périphériques technologiques > Instructions étape par étape sur la façon de créer un chatbot à l'aide d'Azure Bot Services
Traducteur | Li Rui
Critique | Sun Shujuan
Les messagers, services réseau et autres logiciels sont indissociables des robots (bots). Dans le développement de logiciels et d'applications, un bot est une application conçue pour effectuer automatiquement (ou exécuter selon un script prédéfini) des actions créées en réponse aux demandes des utilisateurs. Dans cet article, Daniil Mikhov, développeur .NET chez NIX United, présente un exemple de création d'un chatbot à l'aide de Microsoft Azure Bot Services. Cet article sera utile aux développeurs qui souhaitent développer des chatbots à l'aide de ce service.
L’avantage du développement de chatbots sur Azure Bot Services est le haut niveau de support de Microsoft pour ses produits. Les experts de l'entreprise communiquent activement avec la communauté technique et identifient et corrigent rapidement les vulnérabilités du service. De plus, Microsoft offre la possibilité de créer des fichiers JSON personnalisés pour fonctionner avec certaines API de Messenger, offrant ainsi aux développeurs de nombreuses possibilités lors de la création de chatbots.
Il est également important de rappeler les autres avantages d'Azure Bot Services :
Les développeurs peuvent étendre l'infrastructure du chatbot sur la plateforme Azure en ajoutant de nouvelles fonctionnalités. Par exemple, vous pouvez ajouter plus de canaux et utiliser chaque canal à des fins de test. Le service Cosmos DB peut être utilisé pour stocker l'état de la conversation et les informations saisies par l'utilisateur. Pour former votre chatbot, vous pouvez ajouter la compréhension du langage (LUIS). Il utilise des algorithmes d'apprentissage automatique pour mieux communiquer avec les utilisateurs. Cependant, LUIS n'est pas gratuit et tous les clients ne souhaitent pas allouer des fonds supplémentaires.
Anatomie du chatbot dans Azure Bot ServicesLa structure fonctionnelle d'un chatbot créé sur Azure peut être exprimée comme suit :
peut être vue à droite connectée à la liste des canaux possibles pour le chatbot. Cette liste sera continuellement mise à jour avec de nouvelles plateformes. En bas se trouvent les services cognitifs Microsoft disponibles sur la plateforme Azure. Ces services permettent de communiquer avec les chatbots via des requêtes vocales, des expressions faciales, des gestes, etc.
Bot Builder SDK est utilisé pour développer des chatbots sur Azure. Le produit est dans le domaine public et son principal avantage réside dans le support continu des développeurs. Dans un fork séparé sur GitHub, vous pouvez obtenir les dernières informations sur le service ou poser des questions à ses développeurs.
Création d'un chatbotAvant d'écrire le code, analysez les nuances à prendre en compte avant de créer un chatbot sur Azure Bot Service :
(1) Le chatbot peut-il comprendre correctement les questions des gens
La communication avec le chatbot s'effectue via l'interface utilisateur ? L'interface utilisateur permet aux développeurs de communiquer avec le chatbot dans une langue qu'il comprend. À cette fin, Microsoft Azure utilise un système de dialogue qui suit une hiérarchie spécifique :
Vous pouvez voir ici les trois manières de base d'établir une conversation avec un chatbot :
En fin de compte, vous pouvez voir les méthodes autorisées pour créer des requêtes personnalisées pour le chatbot :
Essentiellement, une requête est un dialogue par étapes : dans la première étape, le chatbot demande des données d'entrée Dans la deuxième étape, il les renvoie à l'utilisateur Une valeur valide ; , ou redémarrez la boucle de requête de données si une valeur non valide est reçue.
(2) Contrôleurs et modèles
Ci-dessous, jetez un œil au code de l'exemple de chatbot « Rappelez-moi plus tard » créé par Daniil Mikhov et ses tâches principales. lui de toute action future qu'il devra entreprendre.
Pour créer le chatbot, Mikhov a utilisé le modèle vide fourni par Visual Studio, qui comprend plusieurs types de contrôleurs : BotController et NotifyController.
BotController reçoit des messages pour le chatbot et les transmet au framework chatbot. Chatbot comprend également plusieurs modèles de déploiement pour faciliter le déploiement d'applications sur la plateforme Azure.
Notify Controller détermine quand envoyer un message à l'utilisateur. Cette question sera abordée plus en détail ultérieurement.
(3) Démarrez la fonction et remplissez l'onglet ToDoDialog
Allez dans l'onglet Startup.cs et affichez son contenu. Ici vous pouvez voir le gestionnaire d'erreurs enregistré AdapterWithErrorHandler. Si une erreur se produit dans un programme, la réaction de l'application à l'erreur est nécessaire. Notez l'enregistrement de ConversationState - utilisez-le pour indiquer au chatbot avec quel utilisateur il communique et à quelle étape de la conversation.
Jetons un coup d'œil au contenu de l'onglet ToDoDialog.cs. Mikhov déclare WaterfallSteps, qui est un ensemble d'étapes pour le dialogue en cascade, déjà mentionné ci-dessus. Dans WaterfallSteps, spécifiez quelles fonctions asynchrones sont utilisées à chaque étape pour construire la conversation entre l'utilisateur et le chatbot.
Ci-dessous, vous pouvez voir quel type d'invites de saisie le chatbot utilisera. Le contenu ici est assez standard : le chatbot posera aux gens quelques questions sur l'événement, puis fournira des rappels de planification.
Maintenant, exécutez le chatbot et testez son fonctionnement à l'aide de l'interface Bot Framework Emulator.
(4) Premier lancement et test dans l'émulateur de framework chatbot
Lors de l'exécution de cette application, un lien vers l'URL où le chatbot attendra les messages de l'utilisateur apparaîtra.
Avant de commencer le test, précisez ce lien dans le simulateur du framework chatbot :
Dans la première étape de communication, le chatbot demande à l'utilisateur de saisir le champ requis. nom de l'événement du rappel. Pour ce faire, appelez le code suivant :
Maintenant, lorsque le chatbot sera appelé, il renverra le texte suivant : Veuillez saisir une description de l'événement. Après avoir déclaré l'événement (comme l'achat de lait) dont vous souhaitez qu'on vous rappelle, appelez le code dans la deuxième étape. Ici, le chatbot proposera l'une des trois options d'heure de rappel :
.
Faites attention à l'utilisation de stepContext. Il enregistre toutes les informations sur la boîte de dialogue, en enregistrant les valeurs intermédiaires. Pour implémenter une liste d'heures de rappel possibles, ChoicePrompt est utilisé. Cette méthode offrira à l'utilisateur trois options et une heure de rappel possible (2 minutes, 5 minutes ou la même heure le lendemain) . Il aurait pu y avoir plus de choix, mais seuls trois ont été retenus.
En utilisant la sélection pour représenter chaque nouveau temps de sélection, vous pouvez obtenir :
Dans le simulateur du framework chatbot, ce code sera rendu comme ceci :
Vous pouvez utiliser Parse pour analyser les résultats. Pour rappel, le parsing est un processus automatisé de collecte de données et de structuration de celles-ci. Le chatbot demandera alors à l'utilisateur s'il est sûr de l'heure de rappel sélectionnée, en utilisant ConfirmPrompt pour confirmer l'accord :
Visuellement, la méthode ressemble à ceci :
La dernière étape consiste à retirer les informations précédemment renseignées de stepContext et à générer un SavedNotificationModel, auquel une conversationReference doit être ajoutée. Sans cela, le chatbot ne peut pas reprendre la conversation avec l'utilisateur ni déterminer quel utilisateur a spécifiquement résolu le problème.
Mikhov utilise la méthode du dictionnaire comme référentiel temporaire pour ces événements, grâce à son adoption, le chatbot attribue son instanceId unique à chaque dialogue spécifique :
Cela mettra fin à la conversation avec le chatbot. Il est possible d'afficher à l'utilisateur un texte indiquant la fin de la boîte de dialogue et de créer une demande de rappel correspondante : "Merci. La notification a été enregistrée avec succès".
(5) Comment le chatbot voyage dans le temps
Afin de localiser le chatbot dans le temps, Mikhov a créé la méthode notifiedcontroller NotifyTimeCheck(). Cette approche permet d'interroger systématiquement l'application et si un certain événement est sur le point de se produire, le chatbot récupérera l'événement dans le dictionnaire et enverra une notification à l'utilisateur.
Pour être averti, la méthode ContinueConversationAsync() du BotAdapter est appelée, en lui transmettant la ConversationReference. Le premier paramètre de ContinueConversationAsync() doit toujours être l’appId (ID d’application) du service chatbot, sinon cela ne fonctionnera pas.
De plus, il faut également rappeler au chatbot que lorsqu'une certaine heure arrive, l'événement doit être rappelé à l'utilisateur spécifique. Les développeurs peuvent utiliser la fonction Azure (BotTimerFunction), qui sera déclenchée par un déclencheur temporel (TimerTrigger).
Chaque minute, la fonction enverra une requête à ce point de terminaison et commencera à rechercher les événements spécifiés. S'il atteint le délai correct, le chatbot informera l'utilisateur que l'événement programmé est sur le point de se produire.
De nos jours, WhatsApp, Facebook Messenger, Telegram et autres outils de communication ne sont pas seulement des plateformes de communication mais aussi des plateformes d'affaires. Les chatbots aident les entreprises à vendre et à promouvoir efficacement des biens et services en ligne. Automatiser les processus quotidiens, fournir les informations nécessaires sur les produits aux clients en temps opportun, recevoir et traiter les demandes – toutes ces fonctionnalités d'un chatbot correctement configuré aideront à convertir les utilisateurs en clients. Par conséquent, en tant que développeur, vous devez vous rappeler à quel point cet outil est populaire actuellement et à quel point il est cool de pouvoir créer une telle application et ainsi devenir un expert populaire. : 题 Titre original :
Comment créer un chatbot à l'aide d'Azure Bot Service : instructions étape par étape , Auteur : Daniil Mikhov
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!