[Tech] ChatBots : les assistants virtuels de demain

Un ChatBot, qu’est-ce c’est ?

Les ChatBots deviennent de plus en plus populaires. Gartner estime même qu’en 2020 la majorité des interactions commerciales entre les clients et les businesses se feront au travers d’un agent virtuel (ou ”ChatBot”). Et en effet, force est de constater qu’il devient de plus en plus difficile de naviguer sur le site web d’un fournisseur ou d’une boutique eCommerce sans avoir une popup proposant de dialoguer avec un assistant virtuel.

Mais un ChatBot, qu’est-ce que c’est ?

Essentiellement, il s’agit d’une interface textuelle, permettant d’interagir avec une application ou un système d’information en langue naturelle. Le ChatBot est alors responsable de donner un sens à la demande de l’utilisateur, de la faire compléter avec tous les détails additionnels si nécessaire, et enfin d’y répondre.

Tous les niveaux de complexité peuvent exister. Du ChatBot, permettant de commander une pizza en sélectionnant ses ingrédients et options préférés, à celui qui va brasser des corpus entiers de données médicales ou légales pour répondre à une demande complexe.

Les ChatBots ne sont d’ailleurs pas uniquement “textuels”. L’interaction vocale se démocratise (pensez à “Siri”, “Cortana”, “Google Now”…) et en pratique il suffit de rajouter les briques de reconnaissance et de synthèse vocale à un ChatBot textuel pour parvenir à ce résultat.

Principe de fonctionnement

Quelque soit leur degré de sophistication, tous les ChatBots ont essentiellement le même principe de fonctionnement :

text6259-0-5

  1. L’utilisateur sollicite le ChatBot soit de manière vocale (qui sera ensuite traduite en texte) soit en texte (par exemple par messagerie instantanée et lui communique sa demande (par exemple “je voudrais un café !”, ou “Prépare-moi un café!”, etc)
  2. Le ChatBot analyse la demande et en extrait l’intention (ici : “commande de café”) et demande à l’utilisateur tous les compléments nécessaires au traitement de la demande (ex : “Avec ou sans sucre ?”, “Noir, noisette, crème ?”, …). Au fil de la discussion, le ChatBot alimente une structure de donnée généralement appelée “contexte” qui contient toutes les informations nécessaires à la bonne réalisation de la demande.
  3. Une fois toutes les informations nécessaires obtenues, le ChatBot va déclencher la réalisation de l’action demandée, typiquement en appelant un WebService et en lui fournissant le contexte. Le WebService sera alors responsable de la bonne réalisation de la demande.

La réponse du WebService sera retransmise à l’utilisateur (ex : ”Votre commande est en cours de préparation”) soit sous forme textuelle, soit après une synthèse vocale.

Il y a plusieurs endroits où la “magie” opère :

  • La capacité à identifier l’intention de l’utilisateur, au delà de sa formulation. Il y a en effet des centaines de façon de formuler une demande, et le ChatBot se doit de réussir à déterminer quelle est l’action souhaitée. Pour ce faire, des algorithmes de machine learning sont employés: On fournit quelques exemples au ChatBot qui pourra par la suite automatiquement déterminer si une phrase de l’utilisateur en est une variante. En outre, le ChatBot sera en mesure d’améliorer sa “compréhension” au fil des échanges avec les utilisateurs, par un mécanisme de feedback
  • La réalisation de l’action : Une fois que le ChatBot a réussi à extraire de l’utilisateur les informations nécessaires à la réalisation de l’action, il transmet la demande au WebService qui est en charge de l’exécution de la demande. Le ChatBot n’a rien à voir avec l’implémentation de la logique métier qui revient, comme toujours, au développeur.

Les questions à se poser

Avant de se lancer dans le développement d’un ChatBot, il convient de se poser quelques questions essentielles qui permettront :

  1. De ne pas s’égarer dans le développement de la logique du ChatBot : Dans des cas complexes, obtenir toute l’information nécessaire pour la réalisation d’une demande peut nécessiter de multiples allers-retours avec l’utilisateur
  2. De choisir correctement quelle API / fournisseur choisir : En effet ils sont nombreux (Google, IBM, AWS, … et bien d’autres encore!) et sont loin d’être tous égaux entre eux

La première question à se poser concerne le service que l’on souhaite fournir aux utilisateurs :

  • Quelles sont les commandes (”intentions”) qu’on souhaite supporter / “comprendre” ?
  • Quelles seront leurs options (ou combinaisons valides d’options, car souvent certaines options n’ont de sens que conjointement avec certaines options) ?

On prendra soin de concevoir le “flow” de l’interaction avec l’utilisateur de façon à ce qu’elle soit la plus naturelle possible.

Ce “flow” pourrait ressembler à ceci :

Flow d'un ChatBot

Source

Ensuite viennent des questions qui vont conditionner des choix plus techniques concernant la meilleure API ou le meilleur fournisseur qu’on utilisera pour implémenter ce ChatBot. En particulier :

  1. Dans quelle(s) langue(s) l’interaction avec l’utilisateur se fera-t-elle ? Si tous les fournisseurs supportent bien l’anglais, pour les autres langues il faut prendre le temps de vérifier.
  2. Quelles intégrations seront nécessaires ? Quelques messageries sont assez souvent bien supportées (Facebook Messenger et Slack, par exemple), pour les autres rien n’est moins certain.
  3. Et bien sûr quel est le prix du service qu’on utilisera, ainsi que ses modalités de facturation (souvent ce sera un coût à la ligne de texte (ou message vocal) analysée).

Fournisseurs & API

Pour cette petite étude, je me suis intéressé à 3 fournisseurs :

  • Google API.ai
  • IBM Bluemix Watson Conversation
  • Et AWS LEX

Voici un tableau comparatif des éléments discutés dans la partie précédente :

Comparatif de quelques solutions pour ChatBots

Comme on peut le voir, ces différents fournisseurs sont loin d’être égaux.

Ayant eu l’occasion de tester Google API.ai et IBM Watson Conversation (AWS LEX est en “limited preview”, étant encore très jeune), j’ajouterai que Watson propose une interface permettant de faire graphiquement la conception du flow de la conversation. Ceci semble être une bonne idée, mais en pratique j’ai trouvé cela laborieux, et cela rendait difficile le troubleshooting.

Google API.ai propose en revanche une interface très simple. De plus ses intégrations “one-click” avec de nombreuses messageries instantanées sont un réel avantage pour avoir un prototype testable immédiatement.

Conclusion

Il est aujourd’hui relativement aisé de développer un ChatBot, dans certains cas assez simple sans aucune ligne de code, ceci grâce à des services et des APIs de plus en plus simples et performants.

Au delà de l’interaction textuelle (qui est déjà populaire dans les messageries instantanées, sur les sites d’eCommerce, etc), l’interaction vocale semble avoir un futur prometteur.

Celle-ci existe déjà dans les assistants virtuels des smartphones (Google Now ou Siri en sont des exemples), mais n’a pas encore vraiment séduit. La faute, sans doute, à un jeu de commandes encore trop limité, et à des résultats parfois un peu aléatoires.

Toutefois, un phénomène plus récent semble donner un second souffle aux ChatBots : Les enceintes connectées intelligentes du type “Amazon Echo” ou “Google Home”. Celles-ci font partie de la grande famille des IoT, et disposent de hauts-parleurs, de microphones, et de l’intelligence d’un ChatBot fonctionnant “dans le Cloud”.

On dispose alors chez soi d’un véritable assistant virtuel qui pourra bien sûr procéder à une recherche sur internet et lire à voix haute les résultats les plus pertinents, mais aussi être connecté à son agenda pour connaître le programme de sa journée, à un service de météo pour savoir s’il va pleuvoir, à un système de réservation de billets pour commander une place de cinéma, à une boutique en ligne pour effectuer des achats, etc

On peut dès à présent aussi imaginer un scénario où une discussion avec son assistant virtuel commencerait à la maison de façon vocale par le biais d’une enceinte connectée, puis se poursuivrait dans le train par messagerie instantanée, et se terminerait de façon vocale au bureau sur son ordinateur.

Alors, les assistants virtuels, bientôt indispensables et omniprésents ?

Amazon Echo

Laisser un commentaire