Les chatbots
Parmi les sujets techno tendances, les bots font beaucoup parler d'eux depuis cette année. Mais pourquoi ce sujet revient-il à la mode alors qu'ils existent depuis les années 60 ? La façon dont nous interagissons avec les machines évolue d'année en année de manière à ce que cela soit le plus naturel et facile pour nous humains. Le dialogue est certainement un des moyens les plus naturels pour nous de communiquer avec la machine.
Qu'est-ce qu'un bot ?
Un bot est un logiciel qui permet d'interagir avec un système, généralement sous forme d'une conversation. D'autres formes de bots existent, bien que ce ne sont pas eux que nous traiterons ici :
- spider bots : ils scannent le web (comme ceux de Google)
- trading bots : ils recherchent les meilleures offrent commerciales sur internet
- media bots : ils fournissent des updates sur des événements comme la météo, les news, la bourse...
Les bots permettent d'automatiser des problématiques répétitives. Il existe 3 catégories principales de bots :
- Les bots textuels ou conversationnels : ils n'ont pas d'interface et sont intégrés dans des applications de messagerie
- Les bots visuels : ils sont présents dans les chats ayant une interface plus évoluée. Ils nécessitent une Web View pour afficher plus de contenu et peuvent être comparés à des applications
- Les bots audio : ils sont basés sur la voix. Quelques exemples sont Siri d'Apple, Cortana de Microsoft, Google Now, Viv et Alexa d'Amazon
On les retrouve donc dans les applications de messagerie comme Slack, Facebook Messenger, Kik ou Skype...
Si l'on devait décomposer un bot, on y trouverait quatre grandes parties :
- l'interface de communication permettant d'envoyer les demandes et restituer le résultat
- l'analyseur de langage (NLP : voir la définition ci-dessous) capable de comprendre la demande de l'utilisateur
- le workflow conversationnel permettant de créer et suivre la conversation
- la partie métier appelant les APIs correspondant aux besoins de l'utilisateur
NLP : Natural Language Processing
On ne peut pas parler de bots sans introduire la notion de Natural Language Processing (NLP). C'est une discipline à la frontière de la linguistique, de l'informatique et de l'intelligence artificielle, qui concerne l'application de programmes et techniques informatiques à tous les aspects du langage humain (voir définition dans wikipedia). Le langage naturel est le moyen de rentrer des inputs (textuels ou vocaux) vers la machine. Mais afin que celle-ci comprenne ce que l'on souhaite, il est nécessaire que cet input brut soit processé pour en déduire l'intention et des mots clés. Prenons l'exemple courant d'un bot météo. Lorsqu'on demande "quel temps fait-il à Paris ?", il faut que la machine comprenne que l'intention de l'utilisateur et d'obtenir la météo. Le contexte de Paris doit être aussi pris en compte afin qu'elle puisse répondre de manière pertinente et ne donne pas une réponse ne concernant pas la capitale française.
Pourquoi parle-t-on autant de bots en ce moment ?
Plusieurs raisons expliquent l'engouement autour des bots cette année. Tout d'abord l'intelligence artificielle a énormément progressé ces dernières années (big data, machine learning...). Les systèmes peuvent désormais processer le langage naturel beaucoup plus efficacement via des réseaux de neurones permettant de concevoir des algorithmes plus complexes. Les intentions de l'utilisateur sont maintenant beaucoup mieux comprises et offrent une bien meilleure interaction.
Ensuite, les applications de messagerie sont désormais rentrées dans notre vie privée et professionnelle. Facebook revendique plus d'un milliard d'utilisateurs sur chacune de ses applications FB Messenger et WhatsApp ! De son côté, Slack annonce plus de 3 millions d'utilisateurs uniques journaliers. Les bots s'intégrant dans ces applications, ils arrivent alors simplement dans nos conversations.
Qui sont les grands acteurs ?
Plusieurs acteurs prennent place autours des bots. Il y a ceux qui permettent de créer des bots, ceux qui proposent des moteurs de NLP et ceux qui hébergent des plateformes dans lesquelles seront intégrés les bots.
Les frameworks de bots
Plusieurs frameworks pour développer des bots existent :
- Microsoft propose son botframework permettant de développer des bots qui seront ensuite publiables dans un "bot directory". Ils seront intégrables dans des emails, FB Messenger, Kik, Skype, Slack, SMS....
- Lita est un framework open source en Ruby qui, accompagné de plugins, s'intègre à FB Messenger, Twitter, Slack, HipChat...
- Errbot est un framework en Python qui possède aussi ses plugins pour s'installer sur Slack, HipChat, Skype...
- Hubot est un framework open source en CoffeeScript compatible avec de très nombreuses plateformes de chat.
Facebook a lancé sa propre plateforme de bots lors de la dernière conférence F8.
Les moteurs NLP
Microsoft développe aussi en beta son moteur NLP LUIS (Language Understanging Intelligence Service). Cette API hébergée dans le cloud permet donc de répondre au besoin de compréhension des requêtes dans un langage naturel.
IBM Watson propose un framework offrant une plateforme cognitive. Elle permet d’interpréter le langage naturel, la vision, les discours, les data.
Les plateformes intégrant des bots
Presque toutes les applications de chat proposent d'intégrer des bots : Slack, Facebook Messenger, WhatsApp, Kik Messenger, Twitter, WeChat, Line, Skype, Telegram...
Bots VS App
On entend souvent la question suivante : "est-ce que les bots ne vont-ils pas remplacer les applications mobiles ?". La réponse est clairement non. Les bots vont rajouter des fonctionnalités ou rendre plus accessibles des données (dans une application), mais ils ne feront pas faire disparaître les apps. En revanche, les bots transcendent la question de plateforme car n'ayant pas d'interface à proprement parler, ils vont pouvoir s'intégrer aux applications déjà existantes. Alors qu'il existe déjà plus de 3 millions d'applications tous stores confondus, seulement 11.000 bots ont été publiés pour le moment. La compétition pour faire connaitre son bot est plus facile que celle pour rentrer dans le top des applications de l'AppStore ou de GooglePlay. En effet, rechercher un bot en filtrant seulement par une plateforme de chat et un domaine, ne retourne que peu de résultats.
Si on compare le prix du développement d'une application mobile (en natif et sur iOS et Android), cela coûtera entre plusieurs dizaines et plusieurs centaines de milliers d'euros. Un bot pouvant s'intégrer à plusieurs plateformes de chats (quel que soit le device) coûtera beaucoup moins cher.
Les cas d'usages
Dans le milieu professionnel, les bots peuvent répondre à plusieurs besoins comme devenir assistants, répondre à des emails, programmer votre agenda... Les bots peuvent aussi remplir un premier niveau d'assistance en ligne disponible 24h/7.
Côté grand public, les bots peuvent remplacer un concierge et faire toutes vos réservations, commander sur internet... Plusieurs bots donnant la météo ou permettant de trouver un restaurant apparaissent sur les stores de bots.
- Taco bell a créée un bot permettant de passer une commande
- Domino's permet de commander une pizza sur twitter
- Booking a prototypé un bot pour faire des réservations
- Côté retail, Sephora et H&M ont développé leur bots sur Kik
Disney a investi dans Imperson afin de personnifier ses personnages et leur permettant de dialoguer avec leur fans, renforçant son image de marque.
Que ce soit pour un usage professionnel ou personnel, les bots permettent d'accéder à de l'information de façon plus directe que parcourir des menus.
Faut-il avoir peur des bots ?
On se rappelle Tay développé par Microsoft qui est devenu raciste en moins de 24 heures sur Twitter. Ce bot d'intelligence artificielle était un projet de machine learning sensé communiquer avec les humains et favoriser la compréhension du langage naturel. Malheureusement, aucune règle limitant l'apprentissage de message nazi ou mettant de barrière éthique n'avait été implémentée.
Cette expérience montre à quel point l'intelligence artificielle est capable d'assimiler rapidement ce qu'on lui apprend. Les bots sont généralement entraînés avant d'être mis en production et disponible pour les utilisateurs ce qui évite ce genre de dérapage. De plus, d'un point de vue UX / marketing, les bots tendent à avoir une "personnalité" ayant un ton correspondant à la cible des utilisateurs.
Pour aller plus loin
Les bots sont désormais arrivés à un niveau de maturité qui permet de dialoguer naturellement avec la machine. Ils ont l'avantage d'être platform-agnostics et moins coûteux en termes de développement qu'une application mobile.
On imagine alors facilement la démultiplication des bots sur nos canaux de communications de type chat. Plusieurs plateformes / stores de bots commencent à voir le jour. Y aura-t'il une uniformisation de ces plateformes comme l'AppStore ou le GooglePlay ?
Bien souvent, la conversation que l'on souhaite avoir avec un bot concerne plusieurs sujets. Par exemple, pour planifier des vacances, il faudra réserver l'avion, l'hôtel, la voiture, les restaurants et vérifier la météo. Comment passer de manière fluide à chacun de ces informations lors de la conversation ? Faudrait-il un master bot coordonnant d'autres bots spécialisés ? Une standardisation des APIs de bots sera-t-elle nécessaire pour qu'ils puissent communiquer entre eux ?
Des problématiques de sécurités se posent car les bots peuvent avoir accès à des données sensibles et l'authentification de la personne dialoguant sera critique. S'interfaçant dans des conversations, il faudra s'assurer que les bots n'affichent pas des informations personnelles dans le flux d'une conversation à plusieurs personnes.
De plus, les bots peuvent ressembler à des attaques de type "man in the middle". Il faudra alors s'assurer qu'ils ont bien le droit d'interroger les APIs back-end fournissant les données et services.
Pour le moment, les bots ne remplaceront pas les humains car même si les progrès en IA sont fulgurants ces dernières années, ce domaine a encore beaucoup de progrès à faire pour des requêtes complexes. De nombreux tests de Turing font encore échouer la majorité des NLP. Mais l'utilisation massive des applications de chat et l'usage naturel du chat permet dès aujourd'hui d'implémenter des fonctionnalités rapidement et facilement accessibles à tous.