Dialogflow et Actions on Google, un chatbot pour votre Google Home

Dans cet article nous avons découvert les bases d’Actions on Google et comment initialiser un projet. Nous avions vu qu’il y a trois possibilités d’intégration. Aujourd’hui, pour la suite de notre dossier, je vous propose de découvrir l’une d’entre elles : Dialogflow.

Nous ne verrons que les étapes permettant d’obtenir une application de test. Nous n’irons pas jusqu’au déploiement global de l’application.

Qu’est-ce que Dialogflow

C’est ce que l’on appelle couramment un moteur de chatbot. Il vous permettra très facilement de développer des applications orientées discussion et donc, idéal pour une application disponible sur Google Home.

L’avantage de cette solution est qu’elle ne nécessite pas forcément d’avoir de connaissances forte en développement. En effet, l’outil est assez simple à prendre en main et ne nécessite dans un premier temps que de la configuration, du temps et de la réflexion.

Aujourd’hui, nous verrons les concepts de bases et son intégration à Actions on Google.

 

Intégration de Dialogflow à Actions on Google

Dans un premier temps, il vous faut vous créer un projet Actions on Google comme nous l’avions vu dans l’article précédent. Au moment de choisir vos actions, sélectionnez Dialogflow.

Intégrations Actions on Google

Intégrations Actions on Google

Suivez les instructions qui vous sont communiquées à ce moment, cliquez sur Create actions on Dialogflow. Vous arriverez sur le site de Dialogflow. Acceptez les conditions, vérifier les informations de la page sur laquelle vous êtes arrivés (faite notamment attention à la langue) et cliquez sur Create (en haut à droite).

Dialogflow intégration

Dialogflow intégration

Ensuite, grâce au menu à gauche cliquez sur intégration, puis sur la carte Google Assistant qui devrait se trouver en haut de page. Vous devriez voir s’ouvrir un popup demandant des informations. Celles-ci ne sont nécessaires que si vous souhaitez rendre une application publique. Dans le cadre de cet article, cliquez donc sur le bouton test puis continue. Après une courte phase de paramétrage vous devriez arriver sur le simulateur d’Actions On Google.

L’intégration est terminée, mais si vous tentez de jouer avec le simulateur vous allez vite tourner en rond 🙁

Simulateur Actions on Google

Simulateur Actions on Google

Pour initier le dialogue avec votre application dans le simulateur vous devez taper une phrase de déclenchement. Par défaut c’est « Parler avec MonApplication » mais vous pouvez la changer facilement en modifiant les paramètres du projet Actions on Google.

Si vous retournez à votre projet Actions on Google vous verrez que beaucoup de champs ont été pré-remplis. Il ne reste plus qu’à construire notre chatbot.

La théorie

Avant d’entrer dans le vif du sujet il est nécessaire d’avoir un minimum de vocabulaire. En effet, même si Dialogflow ne demande pas forcément de compétences en termes de développement il mobilise des concepts et des mécanismes qui doivent être un minimum maîtrisés. Commençons par les deux principaux.

Les intents

Ce sont les points d’entrées de votre application. Ils vont permettre un genre de catégorisation des phrases de l’utilisateur afin de répondre correctement et éventuellement lancer des actions. Concrètement qu’est-ce que ça veut dire ?

L’exemple

Je souhaite que lorsque je salue mon chatbot il me demande comment je vais. Pour ce faire, il est nécessaire de créer un intent qui va réagir à des formules de salutation et répondre en conséquence. D’un point de vue Dialogflow, voici comment cela se présente.

Premier Intent dans DialogFlow

Premier Intent dans Dialogflow

Ici nous n’avons utilisé que deux éléments. Le premier User Says permet de définir une liste de phrases type actionnant cet intent. Le second response définit une liste de réponses possibles. Lorsqu’il y en a plusieurs, comme ici, le système en choisira une aléatoirement.

Une fois sauvegardé (bouton save en haut à droite) et après quelques calculs de Dialogflow (symbolisé par une animation sur une roue dentée en haut à gauche) votre chatbot est à jour! Si vous revenez au simulateur d’Actions on Google vous devriez voir ceci !

Test du chatbot

Test du chatbot

Les entities

Passons maintenant aux entities. Elles sont très fortement liées aux intents. Elles vont nous aider à identifier et à isoler des données au sein d’un intent. Certaines sont déjà définies par le système (les couleurs, les dates, etc.) mais si cela ne vous suffit pas, vous pouvez en créer de nouvelles.

L’exemple

Par exemple, si je crée un intent ‘couleur du ciel’. J’ai choisi de mettre la phrase de déclenchement « Le ciel est bleu ». En passant en surbrillance le mot bleu (comme ci-dessous) il est possible de l’associer à une entity.

Ajout d'une entitie

Ajout d’une entitie

Automatiquement, vous devriez voir un nouveau paramètre color s’ajouter.

Dialogflow paramètre

Ce dernier contiendra la couleur du ciel en fonction de la phrase. Vous pouvez par exemple vous en servir pour construire une réponse un petit peu plus dynamique.

DialogFlow utilisation du paramètre dans la réponse

Dialogflow utilisation du paramètre dans la réponse

Une fois sauvegardé, testons rapidement.

Test du chatbot

Test du chatbot

Pas mal non ? Le système a réussi à comprendre seul que je parlais de la couleur du ciel alors que ma phrase n’est pas exactement la même que ce que j’avais entré initialement. De plus, si je lui dis « le ciel est lapin » il ne tombe pas dans le piège et j’obtiens une belle erreur ! Le soucis c’est que l’application crash, pas top :/

Erreur DialogFlow

Erreur Dialogflow

 

L’entraînement

Cette erreur n’est pas super sympathique. Elle fait crasher notre application Actions on Google… Comment y remédier ? Il suffit d’éduquer notre système et de l’entraîner. Pour ce faire vous avez un petit onglet nommé training dans votre menu. Vous allez pouvoir passer en revus les différentes requêtes effectuées afin d’apporter des corrections à votre chatbot. C’est un peu un genre d’entraînement par l’erreur. Au fur et à mesure du temps et de vos corrections il sera de plus en plus efficace et il pourra de mieux en mieux extrapoler les réponses.

L’exemple

Revenons à notre exemple. J’ai reproduis quelques fois le cas de ma phrase bloquant mon application. J’ai ensuite créé un intent erreur qui répond « ce n’est pas une couleur ». Mon but est d’utiliser celui-ci au lieu de planter mon application.

En ouvrant l’onglet training, je me suis rendu compte que la plupart des phrases étaient définies comme étant du type « couleur du ciel ». Il suffit de passer en revue les requêtes, de corriger cela et de valider les bonnes réponses.

Entraînement DialogFlow

Entraînement Dialogflow

Une fois que vous estimez avoir suffisamment aidé Dialogflow, cliquez sur Approve. En se basant sur ces informations il va recalculer certains éléments et il sera capable de mieux comprendre.

Test de la correction

Test de la correction

 

Les contexts

Nous sommes dorénavant capables de simuler des conversations très basiques. Cependant, il nous manque un élément très important : la prise en compte du contexte.

En effet, vous n’allez probablement pas répondre la même chose pour si le chatbot vous demande si vous désirez de l’aide ou s’il vous demande 100€. Pourtant, les réponses possibles sont les mêmes ou presque. C’est ici qu’interviennent les contexts ils vont vous permettre d’accéder à certains intents seulement si le contexte dans lequel vous êtes s’y prête.

L’exemple :

Si on reprend notre exemple de tout à l’heure, nous allons tenter d’interpréter la réponse « oui » ou « non » en fonction du contexte. Retournez dans l’intent « couleur du ciel ». Dépliez l’encart contexts en haut de page.

Nous allons ici définir un contexte de sortie. C’est-à-dire que si un utilisateur passe par cet intent un genre de jeton lui sera donné. Dans ce cas je l’ai nommé couleurCiel.

Context DialogFlow

Context Dialogflow

Vous pouvez remarquer le chiffre 5 devant couleurCiel. Cela correspond à la durée de vie du jeton. C’est-à-dire qu’il faudra 5 requêtes après celle-ci pour que le contexte disparaisse. Vous pouvez bien sûr modifier cette valeur à votre guise en fonction du type de question.

Très bien, nous avons initialisé un contexte. Maintenant nous allons l’utiliser. Créez deux intents le premier s’appelant oui couleur ciel et le second non couleur ciel. Les deux devront être construits en vous inspirant du modèle ci-dessous (en modifiant bien entendu les listes user says et responses)

Utilisation des contextes DialogFlow

Utilisation des contextes Dialogflow

Ici nous utilisons un context input. L’intent ne sera déclenché que si ce dernier existe. Après sauvegarde, testons que tout fonctionne.

Pas mal non ? Avec les intents, les entities et les contexts vous avez déjà de quoi construire des conversations assez avancées.

Les Fulfillments

Avant de nous quitter un rapide mot sur les fulfillments. Jusqu’ici nous sommes restés en vase clos avec Dialogflow. Les fulfillments permettent d’y remédier et d’interagir avec l’extérieur.

Nous n’allons pas les aborder en détail car ils sont beaucoup plus techniques et nécessitent à eux seuls quelques articles dédiés. Cependant, il est intéressant d’avoir en tête qu’il est possible d’interagir avec des systèmes extérieurs.

Pour ce faire, il y a actuellement deux solutions. Vous pouvez soit passer par des webhooks (des apis) que vous pouvez héberger n’importe où, soit passer par du code nodeJS en utilisant le sdk Actions on Google et un éditeur en ligne. Cette dernière solution utilise Cloud Functions for Firebase ce qui peut impliquer certaines limitations si vous n’avez pas de compte payant sur Firebase.

Grâce à ces éléments de nombreuses possibilités s’ouvrent à nous. Il est ainsi possible de consulter des informations extérieures comme des résultats sportifs mais aussi d’enregistrer des informations comme nous le ferions avec un formulaire traditionnel.

Conclusion

Arrêtons là pour aujourd’hui, nous avons déjà vu beaucoup de concepts. Si vous avez bien suivi vous devriez normalement être capables de créer vos premiers chatbot avec Dialogflow. Il y a cependant encore beaucoup à voir si vous souhaitez construire un système complexe. En effet, nous n’avons fait qu’effleurer le sujet tant sur les possibilités de l’outil que sur les techniques et méthodes de construction d’un bon chatbot. Ceci sera peut-être le sujet de futures billets.

Si cet article vous a plu ou que vous vous posez des questions, n’hésitez pas à poster des commentaires. À bientôt !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.