Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
7 à voir

7 à voir

A la découverte des technologies

Chatbot: comment ça marche ?

Chatbot: comment ça marche ?

Au Spot Bouygues, j'ai eu à travailler avec des étudiants de l'EPITECH/l'EPITA à la réalisation de différents chatbots. Comme le sujet est à la mode et qu'il véhicule un grand nombre de fantasmes puisqu'il touche à "l'Intelligence Artificielle", je me suis dit qu'il était temps de faire une petite explication de texte.

 

De quoi on parle ?

Un chatbot ou agent conversationnel est un outil permettant d'interagir avec un utilisateur pour répondre à ses questions. L'interaction peut se faire soit de manière écrite soit de manière orale. Elle se fait soit à travers un site web ou une application (Facebook Messenger, Skype, Slack, …), soit à travers un assistant vocal (Google Assistant, Cortana, Amazon Echo, …).

 

Il existe des chatbots pour répondre à de nombreux besoins: réserver des billets de train, connaître la météo, savoir où sortir pour la soirée, piloter des appareils domotiques, … et la liste ne cesse de s'allonger car tout le monde veut proposer cette nouvelle forme d'interaction avec l'utilisateur.

Chatbot: comment ça marche ?

Trouver l'intention

Les technologies de chatbot les plus connues s'appuient sur les outils de Google (Dialog Flow), Amazon (Alexa Skill Kit) ou Microsoft (LUIS).

 

Chatbot: comment ça marche ?

Evidemment un chatbot reste un programme informatique, il ne saurait donc répondre à toutes les questions. Avec ces technologies, la première chose à définir pour un chatbot est la liste des "intentions" qu'il est susceptible de reconnaître.

 

Une intention est une question ou un problème que peut comprendre un chatbot. Par exemple un chatbot recevant la question "Quand aura lieu mon prochain rendez-vous ?" comprendra que l'intention de l'utilisateur est d'avoir des informations sur son agenda. S'il reçoit "Il fait trop chaud dans cette salle", il pourra comprendre que l'intention de l'utilisateur est de régler la température.

 

Les intentions doivent être définies à la création du chatbot. Dans les outils que nous avons cités elles se définissent en listant des phrases types que pourrait utiliser l'utilisateur pour discuter avec le chatbot.

 

Par exemple pour l'agenda:

"Quels sont mes rendez-vous de la journée ?"

"Qu'est-ce que j'ai la semaine prochaine ?"

"Quelle est ma réunion de 10h ?"

 

 Ou pour le problème de température:

"J'ai trop chaud"

"Il y a un problème de température"

"Peux-tu baisser la climatisation ?"

 

L'intelligence apportée par les plateformes est de gérer automatiquement la reconnaissance de ces phrases types sans qu'il soit nécessaire d'être exhaustif sur les tournures de phrases à employer. Cela se fait la plupart du temps via du machine learning (un réseau de neurone pré-entrainé) mais cela peut être aussi de l'analyse sémantique (comme dans l'outil proposé par Golem.ai).

Exemple de phrases types dans DialogFlow

Exemple de phrases types dans DialogFlow

La définition des intentions n'est pas un travail de développeur ou d'expert en intelligence artificielle. C'est plutôt un travail de consultant qui va s'approprier le domaine fonctionnel auquel doit répondre le chatbot. Généralement, la liste des phrases types s'enrichie au fur et à mesure de l'usage en réinjectant les phrases non reconnues par le chatbot. La compréhension du chatbot va donc s'améliorer au fil de l'eau.

 

Répondre c'est appeler une API

L'intention est généralement associée à des paramètres et un contexte pour la caractériser.

Par exemple pour répondre à la question "Quels sont mes rendez-vous de la journée ?", il faut comprendre qu'il s'agit de la date du jour et savoir le nom de l'utilisateur qui pose la question. On parle de paramètres associés aux intentions. Les plates-formes de chatbot facilitent aussi la découverte automatique de ces paramètres en s'appuyant sur des types prédéfinis (date/heure, nombre, …) ou des listes de valeur possibles à renseigner par le développeur.

Exemple de paramètres d'une intention dans DialogFlow

Exemple de paramètres d'une intention dans DialogFlow

Quoi qu'il en soit, à la sortie de l'étape de reconnaissance de la phrase, on dispose d'une intention et de ses caractéristiques. On retombe alors dans le monde plus traditionnel d'un programme informatique: il faut déclencher un traitement.

 

Ce traitement consiste généralement à l'appel d'une API: interroger Office 365 par exemple pour accéder au calendrier ou se connecter à un système domotique pour régler la température.

 

Il est intéressant de noter que, sauf dans des cas très spécifiques, il n'y a plus d'intelligence à ce moment là mais simplement la nécessité de lancer des traitements et des algorithmes en utilisant les paramètres reconnus.

 

 

En synthèse

Même si on simplifie un peu, nous pouvons dire qu'un chatbot est donc constitué:

  • d'un outil intelligent capable d'analyser les demandes de l'utilisateur et les traduire en intentions,
  • d'un traitement informatique pour répondre à ces intentions.

 

Voilà, il n'y donc pas de magie et finalement peu d'intelligence !

 

On me pose souvent la question de savoir dans quel cas utiliser un chatbot. La réponse est simple: un chatbot est une interface supplémentaire au dessus de votre application. Au même titre que vous développez une interface web et une interface mobile, vous pouvez développer pour votre application une interface conversationnelle sous forme de chatbot.

Chatbot: comment ça marche ?

A vous ensuite de déterminer si l'application est adaptée à une utilisation sous forme de chatbot: est-ce que cela sera plus pratique ou plus simple pour un utilisateur de disposer d'un chatbot plutôt que de naviguer et remplir des formulaires ?

 

Pourquoi ne pas venir essayer au Spot ?

Article précédent Article suivant
Retour à l'accueil

Partager cet article

Repost0
Pour être informé des derniers articles, inscrivez vous :

Commenter cet article

Logiciel QSE - G2dev 21/11/2018 10:01

Merci pour le partage. En fait, le chatbot est comme toute autre technologie, il peut être avantageux dans certains cas et dans d'autres non. En effet, il est très utile en cas de requête simple qui nécessite une réponse instantanément.