Dialogflower - Google Dialogflow pour Yandex Alice


Il y a quelques mois, Yandex a lancé une version bêta de son assistant vocal Alice , dans laquelle elle a ouvert son API. Et tout récemment, j'ai tout rendu public. Des millions d'utilisateurs peuvent désormais lancer diverses fonctions et services par la voix directement à partir de la recherche mobile, du navigateur et du navigateur Yandex. Sans surprise, il y a de plus en plus de compétences vocales. Mais l'API de dialogue suppose que vous devez pouvoir programmer, vous devez avoir votre propre serveur avec HTTPS, et en plus vous devez pouvoir traiter les demandes dans un langage naturel ...

Pendant ce temps, Google a depuis longtemps un concepteur de dialogue gratuit et assez pratique appelé Dialogflow. Bien sûr, il ne prend pas en charge le protocole d'Alice prêt à l'emploi, alors l'idée est venue de corriger cette situation afin que les développeurs (et pas seulement) créent rapidement et sans serveurs des compétences pour Alice qui peut comprendre la parole naturelle et le contexte du dialogue.

Qu'est-ce que Dialogflow?


image

Dialogflow est un service en ligne de Google qui vous permet de créer vos propres robots de discussion ou fonctions pour un assistant Google (c'est ce qu'on appelle un agent ). Il y a déjà quelques bons articles sur le Habré, qui discutent des principaux outils de ce produit. En voici un .

En fait, Dialogflow peut faire correspondre la phrase d'un utilisateur dans une langue naturelle (et en russe aussi) avec une signification «non linguistique» (appelée intention ) et répondre à quelque chose. En outre, il tient également le contexte du dialogue afin que la phrase suivante puisse réagir dans le contexte des remarques précédentes.

L'outil est assez simple à gérer et conserve toujours toutes les statistiques des demandes, de sorte que vous pouvez recycler l'agent avec de nouvelles intentions ou reconstituer celles existantes en un seul clic. En fait, c'est ainsi que la formation se déroule - vous montrez simplement des exemples de demandes liées à une intention particulière dans votre agent, et Dialogflow crée automatiquement un modèle et comprend de mieux en mieux l'utilisateur. Il peut également sélectionner certaines entités de la phrase, par exemple, des dates ou des villes, si vous en avez besoin pour exécuter certaines fonctions.

Pourquoi est-ce Alice?


Alice a une API similaire à l'API de télégramme. En d'autres termes, pour créer une compétence pour Alice, vous devez élever un serveur qui recevra une demande de texte d'Alice de l'utilisateur et répondra avec les données dans le format souhaité. Tout semble simple, mais pour créer la compétence la plus simple, vous devrez étudier le protocole d'Alice, élever votre serveur public avec HTTPS, écrire du code qui peut comprendre le langage humain et maintenir le contexte de la conversation.

Pour que vous n'ayez pas à effectuer toutes ces étapes à chaque fois, mais en même temps, si vous n'êtes pas programmeur et que vous avez vraiment besoin de maîtriser les compétences, vous pouvez utiliser Dialogflow.

Dialogflower


image

Seul Dialogflow ne prend pas en charge le protocole d'Alice, vous ne pouvez donc pas simplement transformer un agent en compétence. Pour cela, le service dialogflower.com a été créé, qui est essentiellement un adaptateur - il implémente le protocole d'Alice d'une part et se connecte à votre agent Dialogflow de l'autre. Et transforme ainsi l'agent en une compétence. Sans aucun serveur ni code.

image

Créer un agent


image

Donc, maintenant nous ne pouvons que nous concentrer sur la logique du dialogue lui-même dans notre agent. Vous devez d'abord créer cet agent sur le site dialogflow.com

Une fois entré, il nous sera demandé de fournir le nom de l'agent et de choisir sa langue. Seules les lettres latines peuvent être utilisées dans le nom, et n'oubliez pas de changer la langue en russe.

Après cela, vous pouvez ajouter des intentions - des sujets que notre agent comprendra et y répondra en quelque sorte.

Intention de bienvenue par défaut


Cette intention existe par défaut dans chaque agent. Il est déclenché non pas sur une phrase d'utilisateur, mais sur l'événement de bienvenue . Autrement dit, lorsqu'un utilisateur lance votre compétence dans Alice avec une phrase comme «Lancer la compétence est ma compétence la plus nécessaire». Ensuite, il n'y a toujours aucune commande de l'utilisateur, et l'agent en réponse, en règle générale, devrait simplement dire ce qui peut être fait ensuite.

Si vous cliquez sur Intention de bienvenue par défaut dans la liste des intentions, au bas de la page, vous pouvez ajouter des réponses - réponses à partir desquelles l'agent en sélectionne une au hasard à chaque fois et l'envoie à Alice.

Alice sait toujours comment afficher les boutons et les liens, nous montrerons ensuite comment les ajouter à la réponse

Cliquez sur Ajouter une réponse - Réponse texte et ajoutez des options de réponse texte.

Intention de secours par défaut


image

Et cette intention est déclenchée lorsque l'utilisateur dit une phrase que l'agent ne peut attribuer à aucune des intentions existantes. Autrement dit, lorsque l'agent ne comprend tout simplement pas la demande de l'utilisateur. Ici, vous pouvez également définir les réponses qu'Alice donnera lorsque nous ne savons pas quoi répondre.

Nous répondons aux répliques


Si vous cliquez sur le signe plus à côté du mot Intentions dans le menu de gauche, vous pouvez ajouter une nouvelle intention et spécifier pour cela une liste d'expressions auxquelles vous devez répondre. Dans la liste des phrases d' apprentissage, ajoutez les phrases que l'utilisateur est susceptible de prononcer. Plus ils sont nombreux, mieux c'est.

Bien sûr, Dialogflow comprend mieux l'anglais que le russe. Par conséquent, ne vous attendez pas à ce qu'il comprenne toutes les phrases synonymes qui ont un sens approprié. À cet égard, notre analogique Aimylogic fonctionne mieux, dont je parlerai ci-dessous.

N'oubliez pas d'ajouter des réponses à votre intention et cliquez sur le bouton Enregistrer . Sans cela, rien ne fonctionnera.
Vous pouvez le tester ici - sur le côté droit de l'écran. Écrivez votre phrase de test dans le champ Essayez-le maintenant et voyez ce que votre agent a répondu.

Créer une compétence


Maintenant, tout est prêt pour attacher notre agent créé à Alice et le tester dans la console de dialogue Yandex. Pour ce faire, accédez à dialogflower.com et cliquez sur Créer une compétence . Dans la fenêtre qui apparaît, spécifiez le jeton d'accès client de votre agent. Il se trouve sur la page des paramètres de l'agent dans Dialogflow. Cliquez sur Terminer et dans une seconde, vous aurez une URL Webhook avec laquelle nous irons aux boîtes de dialogue Yandex.

image

Créez ensuite une nouvelle compétence pour Alice et spécifiez cette URL Webhook dans ses paramètres. De plus, pour les tests, il vous suffit de fournir le nom de la compétence, tous les autres champs ne sont pas encore obligatoires. Cliquez sur Enregistrer et accédez à l'onglet Test . Ici, vous pouvez écrire quelque chose et vérifier que votre compétence fonctionne comme prévu.

Nous augmentons la fonctionnalité


Maintenant, notre compétence est prête, et toutes les modifications n'affecteront que l'agent sur Dialogflow. Ajoutez et modifiez simplement des intentions, n'oubliez pas de cliquer sur le bouton Enregistrer et de tester le résultat dans la console Yandex.Dialogs.

Comment comprendre le contexte


Dialogflow peut enchaîner des intentions afin que votre compétence puisse répondre de manière appropriée aux phrases prononcées dans le contexte d'une conversation. Pour ce faire, ajoutez simplement l'intention à une autre intention. Pour ce faire, accédez à la liste des intentions et survolez l'une d'entre elles. Un léger message d' intention d'ajout de suivi apparaît à droite. Cliquez dessus et ajoutez une intention qui fonctionnera dans le contexte de la précédente.

C'est-à-dire, par exemple, si vous avez une intention qui répond à des phrases telles que «Quelle est la météo», alors vous pouvez ajouter une intention avec des phrases telles que «demain». Ensuite, cette phrase ne sera traitée par l'agent que si l'utilisateur a d'abord demandé à parler de la météo.

Comment ajouter des boutons à la réponse d'Alice


Alice peut répondre non seulement par du texte, mais aussi afficher des boutons et des liens. En cliquant sur le bouton, l'utilisateur, pour ainsi dire, forme une nouvelle requête, uniquement sans la prononcer et sans taper.

Pour ajouter des boutons à la réponse, vous devez écrire un morceau de JSON dans un format que Alice comprend. Pour ce faire, accédez à l'intention souhaitée, accédez aux réponses et cliquez sur Ajouter des réponses - Charge utile personnalisée . Ici, vous pouvez spécifier un élément de réponse de l'API Alice. Par exemple, pour ajouter des boutons, écrivez

{"buttons": [ {"title": " ", "hide": true} ]} 


Ici, un bouton est ajouté, qui enverra à Alice une demande de «texte de demande» lorsqu'il sera enfoncé et disparaîtra automatiquement de l'historique de discussion après cela. Et voici un autre exemple

 {"buttons": [ {"title": " ", "hide": true}, {"title": "  ", "url": "https://dialogflower.com"} ]} 


Deux boutons seront ajoutés ici, dont l'un est un lien vers dialogflower.com

En général, vous pouvez écrire n'importe quel JSON dans Payload au format du champ "réponse" du protocole d'Alice .

Où est la logique?


Bien sûr, vous n'avez pas toujours besoin de répondre avec des phrases aléatoires mais statiques. Afin d'ajouter de la logique, vous devrez écrire un peu de code. Eh bien, ou beaucoup, cela dépend de vous. Mais Dialogflow vous permet de le faire sans louer de serveurs.

Accédez à l'onglet Exécution et activez le commutateur Désactivé. Ici, vous pouvez écrire du code Javascript qui répondra au besoin à l'intention déclenchée et exécutera une sorte de logique avant d'envoyer la réponse à l'utilisateur. En fait, la réponse elle-même peut être immédiatement redéfinie dans le code.

Ici, je ne décrirai pas comment et quoi faire avec ce code, je ne donnerai qu'un bon exemple sur github , dans lequel l'agent est capable de créer des événements sur le calendrier Google, enregistrant l'utilisateur pour réparer le vélo pendant les heures libres.

Le principal avantage ici est que vous n'avez pas besoin de créer un serveur distinct pour implémenter une sorte de logique pour votre agent. Google fera tout pour vous et gratuitement.

En fin de compte


Alice est utilisée par de plus en plus de personnes dans le pays. Elle travaille dans la recherche, dans le navigateur et dans le navigateur, et bientôt la rubrique home avec Alice à bord sera mise en vente.

Alice a une API et chaque jour de plus en plus de compétences vocales apparaissent pour elle.

Dialogflow de Google fournit un bon outil pour développer des applications vocales même sans compétences en programmation et avec la possibilité d'exécuter votre code sur des serveurs Google gratuitement.

Dialogflower connecte l'agent sur Dialogflow avec Alice afin que vous puissiez rapidement créer des compétences et expérimenter.

Alors, quel était le problème? De plus, Dialogflower est aussi gratuit que Dialogflow avec Alice.

Voler dans la pommade


C'étaient toutes des fleurs interactives, mais tout n'est pas si beau dans le monde réel. Bien sûr, Dialoglfow est un outil sympa, mais en russe, il ne fonctionne pas aussi bien qu'en anglais. Jusqu'à présent, il ne comprend pas beaucoup de synonymes, et ils devront être tués manuellement lors de la création de l'intention.

Un autre inconvénient est que dans Dialogflow, il est assez difficile de gérer même un dialogue un peu compliqué. Vous ne pouvez tout simplement pas l'examiner, car les intentions ne sont qu'une liste plate.

Il y a quelques jours à peine , un outil avec des fonctionnalités similaires a été introduit sur Habré, qui sait également comprendre la langue russe naturelle, mais le fait beaucoup mieux, comprend les synonymes, même si vous n'avez entraîné le bot qu'avec quelques phrases. Il n'y a pas encore beaucoup de fonctionnalités Dialogflow, telles que l'extraction d'entités ou les statistiques. Mais il y a un éditeur visuel sympa sur lequel tout le déroulement du dialogue avec l'utilisateur est immédiatement visible. Et vous pouvez ajouter de la logique sans écrire de code.

Cependant, les développeurs gagnent toujours dans une vive concurrence entre les fabricants d'outils de développement.

Source: https://habr.com/ru/post/fr412863/


All Articles