Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

Bonjour, Habr ! Aujourd'hui, nous allons vous montrer comment rĂ©soudre des tĂąches habituellement nĂ©cessitant l'intervention humaine grĂące Ă  Azure. Les opĂ©rateurs passent beaucoup de temps Ă  rĂ©pondre aux mĂȘmes questions, Ă  traiter des appels tĂ©lĂ©phoniques et des messages texte. Les chatbots automatisent la communication et la reconnaissance, permettant ainsi de rĂ©duire la charge sur les humains. De plus, les bots sont utilisĂ©s dans Azure DevOps, oĂč ils permettent, par exemple, d'approuver des versions, de gĂ©rer des builds — visualiser, lancer et arrĂȘter — directement depuis Slack ou Microsoft Teams. En essence, un chatbot ressemble Ă  un CLI, mais de maniĂšre interactive, permettant aux dĂ©veloppeurs de rester dans le contexte de la discussion dans le chat.

Dans cet article, nous aborderons les outils de crĂ©ation de chatbots, montrerons comment les amĂ©liorer avec des services cognitifs et dĂ©crirons comment accĂ©lĂ©rer le dĂ©veloppement grĂące Ă  des services prĂȘts Ă  l'emploi d'Azure.

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

Chatbots et services cognitifs : ressemblances et différences

Pour créer des bots dans Microsoft Azure, on utilise le service Azure Bot et la plateforme Bot Framework. Ensemble, ils constituent un ensemble de logiciels pour construire, tester, déployer et administrer des bots, permettant de créer à partir de modules existants des systÚmes de communication simples ou avancés, intégrant la voix, la reconnaissance du langage naturel et d'autres fonctionnalités.

Supposons que vous deviez mettre en Ɠuvre un bot simple basĂ© sur un service de questions-rĂ©ponses d'entreprise ou, Ă  l'inverse, crĂ©er un bot fonctionnel avec un systĂšme de communication complexe et ramifiĂ©. Pour cela, vous pouvez utiliser plusieurs outils, classĂ©s de maniĂšre conditionnelle en trois groupes : 

  1. Services de développement rapide d'interfaces de dialogue (bots).
  2. Services cognitifs d'IA prĂȘts Ă  l'emploi pour divers scĂ©narios d'utilisation (reconnaissance d'images, de la parole, bases de connaissances et recherche).
  3. Services de création et d'entraßnement de modÚles d'IA.

Les gens mĂ©langent souvent par intuition "bots" et "services cognitifs", car les deux concepts reposent sur le principe de communication, et dans les scĂ©narios d'utilisation, il y a des dialogues. Mais les chatbots fonctionnent avec des mots-clĂ©s et des dĂ©clencheurs, tandis que les services cognitifs traitent des requĂȘtes alĂ©atoires, gĂ©nĂ©ralement prises en charge par des humains : 

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

Les services cognitifs sont un moyen supplémentaire de communiquer avec l'utilisateur, aidant à convertir une demande aléatoire en une commande claire et à la transmettre au bot. 

Ainsi, les chatbots sont des applications pour traiter les demandes, tandis que les services cognitifs sont des outils d'analyse intelligente des requĂȘtes, qui fonctionnent sĂ©parĂ©ment, mais auxquels le chatbot peut faire appel, devenant ainsi « intelligent ». 

Création de chatbots

Le schéma recommandé pour concevoir un bot dans Azure est le suivant : 

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

Pour concevoir et développer des bots dans Azure, on utilise Bot Framework. Sur GitHub, il y a des exemples de bots, les capacités du framework évoluent, il est donc nécessaire de prendre en compte la version du SDK utilisée dans les bots.

Le framework permet plusieurs options de création de bots : par le biais de code classique, d'outils en ligne de commande ou de diagrammes de flux. La derniÚre option visualise les dialogues, pour cela on peut utiliser le gestionnaire Bot Framework Composer. Il a été créé sur la base du Bot Framework SDK comme un outil de développement visuel que des équipes interdisciplinaires pourraient utiliser pour créer des bots.

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

Bot Framework Composer permet de construire la structure d'un dialogue à l'aide de blocs, dont le bot va se servir. De plus, on peut créer des déclencheurs, c'est-à-dire des mots-clés sur lesquels le bot va réagir pendant un dialogue. Par exemple, les mots « opérateur », « vol » ou « stop » et « assez ».

Dans Bot Framework Composer, on peut créer un systÚme de dialogues complexe en utilisant Adaptive Dialogs. Les dialogues peuvent utiliser à la fois des services cognitifs et des cartes d'événements (Adaptive Cards) :

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

AprÚs la création, on peut déployer le chatbot dans l'abonnement, et un script préparé automatiquement créera toutes les ressources nécessaires : services cognitifs, plan d'application, Application Insights, base de données, etc.

QnA Maker

Pour crĂ©er des bots simples basĂ©s sur des bases de donnĂ©es d'entreprise de questions et rĂ©ponses, on peut utiliser le service cognitif QnA Maker. RĂ©alisĂ© sous la forme d'un simple assistant Web, il permet de soumettre un lien vers une base de connaissances d'entreprise (URLs FAQ) ou de prendre comme base des documents au format *.doc ou *.pdf. AprĂšs la crĂ©ation de l'index, le bot sĂ©lectionnera lui-mĂȘme les rĂ©ponses les plus appropriĂ©es aux questions de l'utilisateur.

Avec QnAMaker, il est également possible de créer des chaßnes de questions de clarification avec création automatique de boutons, de compléter la base de connaissances avec des métadonnées et d'affiner le service au fur et à mesure de son utilisation.

Le service peut ĂȘtre utilisĂ© comme un chatbot rĂ©alisant uniquement cette fonction, ou comme partie d'un chatbot complexe, utilisant, selon la demande, d'autres services IA ou des Ă©lĂ©ments du Bot Framework.

Travailler avec d'autres services cognitifs

La plateforme Azure propose diffĂ©rents services cognitifs. Techniquement, il s'agit de services web autonomes qui peuvent ĂȘtre appelĂ©s par le code. En rĂ©ponse, le service renvoie un JSON dans un format spĂ©cifique, qui peut ĂȘtre utilisĂ© dans le chatbot.

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme
Les services suivants sont le plus souvent utilisés dans les chatbots :

  1. Reconnaissance de texte.
  2. Reconnaissance de catégories d'images définies par le développeur avec le Custom Vision Service (cas d'utilisation : reconnaissance de si un employé porte un casque, des lunettes de protection ou un masque).
  3. Reconnaissance faciale (un excellent cas d'utilisation est de vérifier si la personne interrogée a placé sa propre photo, ou par exemple, une photo d'un chien ou d'une personne d'un autre sexe).
  4. Reconnaissance vocale.
  5. Analyse d'images.
  6. Traduction (nous nous souvenons tous du bruit causé par la traduction simultanée dans Skype).
  7. Vérification de l'orthographe et suggestions de correction d'erreurs.

LUIS

La création de bots peut également nécessiter LUIS (Language Understanding Intelligent Service). Les tùches du service :

  • DĂ©terminer si l'Ă©noncĂ© de l'utilisateur a du sens et si une rĂ©action du bot est nĂ©cessaire.
  • RĂ©duire les efforts de transcription de la parole (du texte) de l'utilisateur en commandes comprĂ©hensibles pour le bot.
  • PrĂ©voir les vĂ©ritables objectifs/intentions des utilisateurs et extraire des informations clĂ©s des phrases dans le dialogue.
  • Permettre au dĂ©veloppeur de lancer le bot en utilisant seulement quelques exemples de reconnaissance de sens et d'affiner ensuite le bot en cours d'utilisation.
  • Permettre au dĂ©veloppeur d'utiliser une visualisation pour Ă©valuer la qualitĂ© de la transcription des commandes.
  • Aider Ă  des amĂ©liorations progressives de la reconnaissance des vĂ©ritables objectifs.

En essence, l'objectif principal de LUIS est de comprendre, avec une certaine probabilitĂ©, ce que l'utilisateur veut dire et de convertir une requĂȘte naturelle en une commande structurĂ©e. Pour reconnaĂźtre la signification des requĂȘtes, LUIS utilise un ensemble d'intentions et d'entitĂ©s (soit prĂ©configurĂ©es par les dĂ©veloppeurs, soit tirĂ©es de « domaines » prĂ©alablement dĂ©finis – certaines bibliothĂšques de phrases types prĂ©parĂ©es par Microsoft). 

Un exemple simple : vous avez un bot qui fournit des prĂ©visions mĂ©tĂ©orologiques. Pour lui, l'intention consiste Ă  transformer une requĂȘte naturelle en « action » – une demande de prĂ©visions mĂ©tĂ©orologiques, et les entitĂ©s sont le temps et le lieu. Voici un schĂ©ma de fonctionnement de l'intention CheckWeather pour ce type de bot.

Intention
Entité
Exemple de requĂȘte naturelle

CheckWeather
{«type»: «location», «entity»: «moscou»}
{«type»: «builtin.datetimeV2.date», «entity»: «futur», "resolution": "2020-05-30"}
Quel temps fera-t-il demain Ă  Moscou ?

CheckWeather
{«type»: «date_range», «entity»: «ce week-end»}
Montre-moi les prévisions pour ce week-end.

Pour combiner QnA Maker et LUIS, vous pouvez utiliser Dispatcher. 

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

Lorsque vous travaillez avec QnA Maker et que vous recevez une requĂȘte de l'utilisateur, le systĂšme dĂ©termine avec quel pourcentage de probabilitĂ© la rĂ©ponse de QnA convient Ă  la requĂȘte. Si la probabilitĂ© est Ă©levĂ©e, la rĂ©ponse est donnĂ©e Ă  l'utilisateur Ă  partir de la base de connaissances de l'entreprise, sinon la requĂȘte peut ĂȘtre envoyĂ©e Ă  LUIS pour clarification. L'utilisation de Dispatcher permet de ne pas programmer cette logique, mais de dĂ©terminer automatiquement cette limite de sĂ©paration des requĂȘtes et de les rĂ©partir rapidement.

Test et publication du bot

Pour les tests, une autre application locale est utilisĂ©e, Bot framework emulator. Avec l'Ă©mulateur, vous pouvez interagir avec le bot et vĂ©rifier les messages qu'il envoie et reçoit. L'Ă©mulateur affiche les messages tels qu'ils apparaĂźtront dans l'interface de chat web et enregistre les requĂȘtes et rĂ©ponses JSON lors des Ă©changes de messages avec le bot.

Un exemple d'utilisation de l'Ă©mulateur est prĂ©sentĂ© dans cette dĂ©monstration, qui montre la crĂ©ation d'un assistant virtuel pour BMW. La vidĂ©o aborde Ă©galement les nouveaux accĂ©lĂ©rateurs pour la crĂ©ation de chatbots – des templates :

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme
https://youtu.be/u7Gql-ClcVA?t=564

Vous pouvez également utiliser des templates lors de la création de vos propres chatbots. 
Les templates permettent de ne pas réécrire les fonctions types du bot, mais d'ajouter un code dĂ©jĂ  prĂȘt en tant qu'« habiletĂ© ». Un exemple pourrait ĂȘtre le travail avec un calendrier, la planification de rendez-vous, etc. Le code des habiletĂ©s prĂȘtes. publiĂ©e github.

Les tests ont Ă©tĂ© concluants, le bot est prĂȘt et il doit maintenant ĂȘtre publiĂ© et connectĂ© aux canaux. La publication se fait via les outils Azure, et des messageries ou des rĂ©seaux sociaux peuvent ĂȘtre utilisĂ©s comme canaux. Si le canal d'entrĂ©e des donnĂ©es dĂ©sirĂ© n'est pas disponible, vous pouvez le chercher dans la communautĂ© correspondante sur GitHub. 

Pour créer un chatbot complet en tant qu'interface de communication avec l'utilisateur et les services cognitifs, vous aurez bien sûr besoin de services Azure supplémentaires, tels que des bases de données, des services serverless (Azure Functions), ainsi que LogicApp et, éventuellement, Event Grid.

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

Évaluation et analytique

Pour évaluer l'interaction avec les utilisateurs, vous pouvez utiliser à la fois l'analytique intégrée d'Azure Bot Service et le service spécial Application Insights.

En conséquence, il est possible de collecter des informations selon les critÚres suivants :

  • Combien d'utilisateurs ont accĂ©dĂ© au bot depuis diffĂ©rents canaux sur une pĂ©riode donnĂ©e.
  • Combien d'utilisateurs, ayant envoyĂ© un seul message, sont revenus plus tard et ont envoyĂ© un autre message.
  • Combien d'actions ont Ă©tĂ© envoyĂ©es et reçues par chaque canal pendant la pĂ©riode spĂ©cifiĂ©e.

Avec Application Insights, vous pouvez surveiller n'importe quelle application dans Azure et, en particulier, des chatbots, obtenant des données supplémentaires sur le comportement des utilisateurs, les charges et les réactions du chatbot. Il convient de noter que le service Application Insights a sa propre interface sur le portail Azure.

De plus, les donnĂ©es collectĂ©es via ce service peuvent ĂȘtre utilisĂ©es pour crĂ©er des visualisations supplĂ©mentaires et des rapports analytiques dans PowerBI. Un exemple de tel rapport et un template pour PowerBI peuvent ĂȘtre trouvĂ©s. ici.

Accélérons le développement avec les services Azure : créons des chatbots et des services cognitifs avec la plateforme

Merci Ă  tous pour votre attention ! Dans cet article, nous avons utilisĂ© article du webinaire sur Microsoft Azure par Anna Fenushina « Quand les gens n'ont pas le temps. Comment utiliser Ă  100% les chatbots et les services cognitifs pour automatiser les processus routiniers », oĂč nous avons montrĂ© de maniĂšre concrĂšte ce que sont les chatbots dans Azure et quels sont leurs scĂ©narios d'application, ainsi qu'une dĂ©monstration de la crĂ©ation d'un bot dans QnA Maker en 15 minutes et de la structure des requĂȘtes dans LUIS. 

Nous avons organisé ce webinaire dans le cadre d'un marathon en ligne pour les développeurs Dev Bootcamp. Il a porté sur des produits qui accélÚrent le développement et allÚgent une partie de la charge de travail des employés de l'entreprise grùce à des outils d'automatisation et à des modules Azure préconfigurés. Les enregistrements d'autres webinaires inclus dans le marathon sont disponibles via les liens :

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster