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.

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 :Â
- Services de développement rapide d'interfaces de dialogue (bots).
- 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).
- 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 :Â

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 :Â

Pour concevoir et développer des bots dans Azure, on utilise . Sur GitHub, il y a , 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 . 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.

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 . Les dialogues peuvent utiliser à la fois des services cognitifs et des cartes d'événements (Adaptive Cards) :

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.

Les services suivants sont le plus souvent utilisés dans les chatbots :
- Reconnaissance de texte.
- 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).
- 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).
- Reconnaissance vocale.
- Analyse d'images.
- Traduction (nous nous souvenons tous du bruit causé par la traduction simultanée dans Skype).
- Vérification de l'orthographe et suggestions de correction d'erreurs.
LUIS
La création de bots peut également nécessiter (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 .Â

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, . 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 :

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. 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.

Ă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. .

Merci Ă tous pour votre attention ! Dans cet article, nous avons utilisĂ© 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 :
- Â
Nous discutons de l'évolution et des nouvelles fonctionnalités du service Azure DevOps. Nous détaillons chacun de ses cinq composants principaux et comment le service aide à organiser le développement industriel de logiciels. Présenté par Vladimir Gusarov, Microsoft MVP.
Nous examinons comment mettre en Ćuvre l'approche « build as code » pour tous les langages de programmation en utilisant des pipelines YAML multi-niveaux. PrĂ©sentĂ© par Vladimir Gusarov, Microsoft MVP.
Nous discutons des stratégies de gestion du code source logiciel et de l'utilisation des systÚmes de contrÎle des versions via Azure Repos. Présenté par Vladimir Gusarov, Microsoft MVP.
Nous introduisons des méthodes de gestion de l'open source dans le développement et l'utilisation pratique de l'outil WhiteSource. Nous parlons de la détection de vulnérabilités dans les composants open source et du respect de la conformité des licences avec WhiteSource. Présentateurs : Diana Lisbaron, Directrice des ventes WhiteSource, et Daria Oreshkina, Web Control, distributeur officiel de WhiteSource en Russie.
Source : habr.com
