Comme nous l'avons écrit dans notre
premier article , chez Just AI, nous nous spécialisons dans les technologies d'intelligence artificielle pour comprendre le langage naturel (NLU). Nous avons notre propre plateforme pour développer des assistants conversationnels, texte et voix. La plateforme a développé des fonctionnalités pour résoudre les problèmes de PNL (clustering de journaux, recherche de phrases sémantiquement proches, etc.) et son propre langage de développement (Just AI DSL). À l'aide de DSL, une équipe de développeurs linguistiques rédige du code de script de chatbot, des modules d'intégration pour communiquer avec des systèmes externes, ainsi que des tests automatiques.
Dans cet article, nous parlerons de l'outil que nous avons créé pour développer des bots pour différentes plates-formes, y compris pour Yandex Dialogs, sans connaissance des compétences DSL et de programmation.
Les grands projets, tels qu'un autoinformateur pour prendre en charge les clients des opérateurs de télécommunications ou un assistant vocal complet, peuvent inclure plus de 1000 intentions d'utilisateur classifiées, des dizaines de répertoires pour l'extraction d'entités et inclure des intégrations avec plusieurs services externes. Par conséquent, le développement est effectué simultanément par plusieurs linguistes et développeurs, à l'aide de systèmes de contrôle de version et d'outils de test de stress, avec la participation de rédacteurs et de concepteurs UX.
Au départ, nous étions convaincus que la complexité de l'approche de développement est ce dont les développeurs et les entreprises de chatbot ont besoin, car la création d'un chatbot intelligent n'est pas une tâche facile et gourmande en ressources. Nous avons construit une architecture assez complexe pour fermer tous les cas possibles, et même créé un éditeur visuel dans la plateforme pour faciliter la gestion de la logique du chatbot par les clients. Mais assez souvent, dans la pratique, nous continuons à rencontrer le fait que même une entreprise préparée avec un budget déjà planifié pour l'automatisation ralentit la mise en œuvre et ne comprend pas comment composer correctement un mandat et planifier correctement la mise en œuvre de l'IA dans ses processus.
Nous voulions permettre aux entreprises de commencer à travailler avec l'intelligence artificielle et leur donner en même temps un outil qui nous permettrait immédiatement de commencer à tester la technologie. En même temps, il fallait que le produit soit capable de comprendre le langage naturel (demandes de l'utilisateur ordinaire) et de ne pas répondre du monosyllabique à des questions typiques («Je n'ai pas compris, répétez votre question»). En général, il fallait cacher «sous le capot» nos technologies cool de la plateforme d'entreprise afin de faciliter l'entrée des entreprises russes dans le monde de l'intelligence artificielle. En général, il était nécessaire de créer un produit pour l'utilisateur afin que vous puissiez configurer, toucher, voir comment cela fonctionne. Par conséquent, l'intérieur de la plate-forme était caché sous la coque du concepteur.
Que nous ayons réussi ou non est bon pour vous de juger (les liens pour l'inscription dans le concepteur et pour la correspondance dans la communauté sont à la fin de l'article). En conséquence, le produit Aimylogic est apparu - un concepteur visuel où vous pouvez assembler un chatbot intelligent qui comprend le langage naturel à partir de blocs simples: répliques d'utilisateurs, réponses de bots, appels à des systèmes externes. Travailler avec Aimylogic ne nécessite pas de connaissances de la plate-forme principale DSL, ni de compétences en écriture pour reconnaître les intentions et les autotests.
Cas: création d'un chatbot pour le service RH
Aujourd'hui, nous allons examiner un cas assez simple: créer un chatbot pour les ressources humaines, qui consulte les employés sur les processus internes de l'entreprise via Telegram, le site Web de l'entreprise ou Yandex.Alisa, peut accepter des candidatures (pour les vacances, VHI, etc.) et les envoyer au conseil d'administration de Trello.
L'ensemble du processus peut être divisé en plusieurs étapes:
- créer un script pour un dialogue de bot RH avec un employé de l'entreprise;
- configuration de la collecte des demandes des utilisateurs (nous utiliserons Trello);
- tests de robots;
- publication de bot dans Telegram, sur le site Internet ou dans Yandex.Alice.
Donc, tout d'abord ...
1. Création d'un script pour la communication avec les employés
Maintenant, dans Aimylogic, il existe déjà un modèle de bot pour les ressources humaines avec des dialogues sur le projet de salaire, les vacances, l'assurance et d'autres problèmes que le bot comprendra immédiatement. Ainsi, vous pouvez utiliser le script prêt à l'emploi et, si vous le souhaitez, le modifier par vous-même. Nous décrivons comment ce modèle a été créé.
Le processus de création d'un script dans Aimylogic revient à ajouter des blocs et à établir des transitions entre eux.
La capture d'écran ci-dessus montre que le script du bot commence par un message d'accueil. Pour saluer l'utilisateur et expliquer quelles questions il peut poser au bot, nous utilisons un bloc de texte. Vous pouvez ajouter une photo.

Après avoir créé le bloc avec le texte de bienvenue, nous ajouterons le bloc «Phrases» dans notre bot, ce qui nous permet de former le bot à l'aide d'exemples de demandes des utilisateurs. Dans le bloc "Phrases", ajoutez des groupes de phrases distincts qui correspondent aux intentions (intentions) des utilisateurs et remplissez chacun d'eux d'exemples de requêtes.
Dans cet exemple, nous allons créer plusieurs groupes de phrases:
- connexion d'un projet salarial;
- Programme d'entreprise VHI;
- demande de vacances;
- obtenir des certificats de la comptabilité et des ressources humaines;
- compensation de puissance.
Dans des groupes de phrases, nous définissons des ensembles d'exemples basés sur les demandes réelles des employés au service des ressources humaines. Par exemple, pour le groupe «VHI Corporate Program», ce seront des demandes:
- Comment postuler au DMS?
- Je m'intéresse à l'assurance maladie
- Comment obtenir une police VHI?
Des groupes de phrases peuvent être complétés d'exemples à tout moment, ce qui vous permet de recycler rapidement le bot pendant le fonctionnement.
Pour chaque groupe de phrases, créez votre propre séquence d'actions dans le script. Par exemple, pour le groupe de phrases «Application vacances», nous mettons en œuvre une demande de données supplémentaires de l'utilisateur et enregistrons sa demande dans Trello pour un traitement ultérieur par un employé du service RH.
Pour demander des données à l'utilisateur, nous ajouterons séquentiellement des blocs au script demandant le nom de l'employé et les dates de vacances souhaitées.
Les informations entrées par l'utilisateur sont stockées dans les variables $ Name et $ vacation_date et deviennent disponibles pour une utilisation ultérieure dans le script. Par exemple, pour envoyer ces données à un système externe.
Dans les futures versions d'Aimylogic pour recevoir des données de différents types (texte, numéros, numéro de téléphone), les blocs correspondants apparaîtront dans le système, ce qui validera automatiquement la saisie de l'utilisateur.Nous allons maintenant configurer l'intégration du bot avec Trello, où les applications collectées des utilisateurs seront enregistrées.
2. Enregistrement des demandes des utilisateurs dans Trello
Trello fournit une API pour l'intégration avec ses outils, mais il existe des services, y compris gratuits, qui vous permettent de les utiliser sans perdre de temps à écrire un code d'intégration. Un tel service est IFTTT. Le chatbot que nous avons créé dans Aimylogic envoie les données à IFTTT et elles apparaissent dans Trello.
Pour ce faire, créez une applet Webhook dans IFTTT, qui, lors de la réception d'une demande HTTP du bot, mettra les données du corps de la demande sur la carte dans Trello. Dans le script de bot dans Aimylogic, ajoutez le bloc «requête HTTP», qui transmettra les données à l'applet.
Création d'applet
Dans l'interface IFTTT, créez une nouvelle applet (Mes applets -> Nouvelle applet) définissez le déclencheur pour que l'applet se déclenche (en cliquant sur
+ ceci ). Dans la recherche qui apparaît, tapez «webhook» et sélectionnez le déclencheur trouvé sous le nom «Webhooks».
Cliquez sur «Recevoir une demande Web» et définissez le nom de l'événement déclencheur (écrivez-le en latin sans espaces dans le champ «Nom de l'événement»). Cliquez sur «Créer un déclencheur».
Maintenant, nous configurons l'action qui se produira lorsque le bot enverra une demande pour l'applet à partir du script que nous venons de configurer - cliquez sur «
ça » dans l'applet.

Configuration de l'intégration IFTTT avec Trello
Après avoir cliqué sur «
ça » dans IFTTT, la recherche apparaît à nouveau. Nous recherchons Trello et nous nous connectons à ce service.
Après avoir émis les autorisations d'accès à votre compte dans Trello, sélectionnez l'action «Créer une carte» dans IFTTT.
Ensuite, indiquez le tableau sur lequel les cartes apparaîtront, dans le champ "Titre" (nom de la carte), indiquez "Valeur1" - il s'agit d'une variable du corps de la demande du bot dans laquelle l'essence de la demande de l'employé sera transmise ("<<nom de l'employé> veut partir en vacances < période de vacances> »).
Cliquez sur «Créer une action» lorsque tout est configuré selon nos besoins. Vient ensuite "Terminer".
Maintenant, chaque fois que le bot envoie une requête HTTP au webhook que nous avons configuré, IFTTT prendra la variable "Value1" de cette requête et ajoutera automatiquement une carte avec ce nom à Trello.
Obtenir une adresse de webhook dans IFTTT
C'est peut-être la partie la plus simple de l'intégration.
Cliquez sur le menu «Rechercher» en haut de la page IFTTT. Ensuite, recherchez «webhook». Cliquez sur les Webhooks trouvés. Ensuite, cliquez sur "Paramètres".
Une page s'ouvre avec une URL.
Ce n'est pas encore une adresse de webhook! Vous devez copier cette URL et l'ouvrir dans un nouvel onglet de navigateur.
La page de test du webhook s'ouvre. Ici vous pouvez renseigner le nom de l'événement déclencheur (celui que nous avons pensé lors de la création de l'applet dans la section «Création de l'applet») et la valeur de la variable «Value1». Maintenant, si vous cliquez sur "Test it", une carte avec la valeur de la variable "Value1" dans l'en-tête sera ajoutée à Trello.
Copiez maintenant l'URL résultante du webhook (dans la dernière ligne, au-dessus du bouton "Test it") -
c'est l'adresse du webhook que nous devons utiliser dans la requête HTTP du bot.
Configurer une requête HTTP dans Aimylogic
Nous ajoutons un bloc avec une requête HTTP au script lorsque nous avons déjà collecté les données de l'utilisateur (dans les variables $ Name et $ vacation_date).
Dans les paramètres de demande HTTP, en tant qu'URL, nous spécifions l'adresse de webhook que nous avons reçue d'IFTTT.
Nous plaçons la valeur de la variable «Value1» dans le corps de la demande - nous y formons du texte avec la variable $ Name, dans laquelle le nom d'utilisateur est stocké, ainsi que la variable $ vacation_date, dans laquelle les dates de vacances sont stockées. Autrement dit, cela devrait se produire comme ceci:
{ "value1" : "$Name $vacation_date" }
Désormais, lors de l'exécution de cette demande, le bot remplacera les valeurs $ Name et $ vacation_date dans le corps de la demande et enverra la demande à l'applet IFTTT. Cela, à son tour, créera une carte sur le tableau Trello.

3. Tester le bot
Après avoir préparé un script de dialogue, vous pouvez le vérifier immédiatement dans Aimylogic en cliquant sur le bouton «Test». Un widget apparaîtra sur l'écran dans lequel vous pourrez discuter avec le bot. Le widget prend en charge la saisie de texte et l'utilisation de boutons, s'ils sont fournis par le script. Par exemple, dans Alice, il est de coutume de proposer des boutons utilisateur comme astuces pour le familiariser avec les capacités de la compétence.
À ce stade, vous pouvez déboguer la boîte de dialogue et vérifier à quel point elle est correcte et compréhensible sans utiliser d'outils de prototypage supplémentaires.
Veuillez noter que, grâce aux technologies NLU (y compris les synonymes correspondants, les formes de mots normales, leurs représentations vectorielles et leurs structures de requête syntaxiques), le bot comprendra non seulement les phrases qui correspondent aux exemples, mais aussi proches de leur signification. Si cela ne se produit pas, vous pouvez entraîner le bot en élargissant la liste des exemples pertinents.
Le chatbot est désormais en mesure de communiquer avec l'employé et d'enregistrer des données dans Trello. Il reste à placer le bot dans le canal souhaité.
4. Publier un chatbot
En utilisant Aimylogic, le bot créé peut être placé dans un ou plusieurs canaux. Actuellement disponible dans Aimylogic: widget de chat pour le site, Telegram ou assistant vocal Yandex.Alice.
Bientôt, nous ajouterons de nouvelles chaînes: VK, Facebook, Slack et autres. Partout, le scénario de comportement du bot HR sera presque le même, et les applications de tous les canaux iront à la carte Trello.
Selon le canal sélectionné, Aimylogic générera automatiquement un script à insérer dans le site Web ou l'adresse du webhook à spécifier dans Yandex.Dialogs. Pour utiliser Telegram, il suffit d'indiquer le jeton de votre bot Telegram reçu de BotFather.
Aimylogic affiche tous les canaux connectés au bot et leurs statuts.
Où puis-je le tester?
Nous ouvrons Aimylogic en mode bêta. Honnêtement, il est toujours "humide", mais vous pouvez le tester et essayer différents cas: créer des scripts de dialogues dans différents canaux, expérimenter la connexion de systèmes externes, créer des bots FAQ avec une compréhension du langage naturel.
La sortie de la prochaine version comprendra des répertoires d'entités nommées, ce qui augmentera considérablement les capacités du produit.
Nous avons commencé à créer Aimylogic, en essayant de faciliter la création de robots simples sur notre plate-forme, tout en maintenant l'accès à ses principales fonctionnalités - NLU, la facilité d'intégration avec les systèmes et canaux externes. Nous continuerons à développer le produit, à améliorer son UX, en lançant de nouvelles fonctionnalités utiles à partir de la plate-forme principale. Nous attendons avec impatience vos commentaires et suggestions.
Vous pouvez
tester la plateforme ici:
app.aimylogic.comVous pouvez discuter avec nous ou d'autres développeurs sur le
canal télégramme . Ou tapez simplement «Aimylogic» dans la recherche par télégramme.