Créer un chatbot nécessite normalement des compétences en NLP (Natural Language Processing), c’est à dire la compréhension du langage naturel par ordinateur. Mais ça, c’était avant l’arrivée d’outils dédiés. Dans cet article, je vais vous expliquer ce qu’est un chatbot, à quoi ça sert, et quelles sont les technologies existantes aujourd’hui (SDK, API) pour simplifier à la mise en oeuvre d’un chatbot. Enfin, nous étudierons un cas particulier avec Recast.AI, une société française fournissant un SDK gratuit pour les développeurs.
Un chatbot, c’est quoi ?
C’est un programme relié à une ou plusieurs plateformes de type réseau social (Skype, Twitter, Messenger, etc.) ou systèmes de communication (SMS par exemple) et capable de répondre à un certain nombre de questions posées en langage naturel. Au plus simple, un chatbot va repérer certains “mots-clés” et répondre sur ces thèmes. Mais certains chatbots sont capables de “comprendre” un discussion, de stocker des connaissances intermédiaires (faits appris lors de la conversation) et prendre certaines décisions (en utilisant un moteur d’inférence).
En général, un chatbot, ou bot conversationnel va être capable de comprendre la demande de l’utilisateur, gérer un semblant de conversation et automatiser une tâche.
Un chatbot, pourquoi faire ?
Nous sommes de plus en plus connectés au travers des réseaux sociaux, mais aussi de plus en plus, via des objets connectés (montre, assistant personnels, etc.). Que l’on soit une société ou un particulier, il y a de nombreuses tâches que nous pouvons automatiser. Dans le premier cas, il s’agit avant tout de filtrer les requêtes clientes (SAV de 1er niveau), mais aussi de répondre à d’éventuels prospects 24H24. Dans le cas d’un particulier, c’est un peu plus tordu — mais imaginez que vous ayez une version “alternative” de vous-même, joignable 24H24 et capable de répondre à une certain nombre de demandes, mais avec des niveaux de confidentialité différents. Votre épouse veut savoir où vous êtes, mais vous conduisez. Votre chatbot va répondre à votre place en SMS: “Je suis à 27.5 Kg sur l’A1, je devrais arriver dans 20 minutes tout au plus”. C’est tordu dans le sens que c’est nouveau, mais j’imagine bien dans quelques années tout le monde utiliser ce genre de services au travers de leur assistant personnel (Alexa et compagnie).
Mais si on analyse les différents rachats actuels, on se rend compte que de façon relativement souterraine, le chatbot devrait servir massivement en réalité virtuelle d’ici quelques années.
Technologies disponibles
Un bot est composé de plusieurs couches:
1. La couche “channel”
C’est la couche d’interface entre l’utilisateur et le bot, c’est la réseau social, c’est la messagerie. La plupart des logiciels de messagerie et réseaux sociaux disposent aujourd’hui d’une API permettant d’accéder à divers services au travers d’un SDK gratuit. Il y a quelques temps, nous explorions celle de Twitter dans cet article. Cette couche est une couche d’abstraction (“One API to rules Them” aurait dit le seigneur des bots) permettant de se connecter à divers outils. On l’appelle aussi le “Bot Connector”.
- Messagerie instantanée: Kik (wikipédia), Slack (wikipédia), Facebook Messenger (wikipédia), Line (Wikipédia) , Skype (Wikipédia), Telegram (Wikipédia), Twillio, Viber, Wechat (Wikipédia)
- Plus orienté SMS: Callr
- Spécifiques aux gamers: Twitch (Wikipédia), Discord (Wikipédia)
- Plus orienté entreprises: Cisco Spark,Microsoft Teams, Zendesk
Plus que du texte, on peut ajouter des images et des vidéos. Mais au-delà de cela, certaines API proposent des services de “Rich Messaging” comme la possibilité de faire des sondages, de proposer des QCM, etc. Tout cela peut entrer aussi dans la création de notre Bot, mais ne sera pas compatible avec toutes les messageries. D’où l’intérêt d’avoir plusieurs scenarii différents.
2. La couche “NLP”
Cette couche permet la compréhension des données entrées par l’utilisateur.
L’objectif est dans un premier temps de répondre à cette première question: “Quelle est l’intention de l’utilisateur ?”. l’API va essayer de rattacher cela à une catégorie que l’on aura défini au préalable (comme “Météo” ou “SAV”).
Ensuite, il convient d’extraire les informations importantes (entités) liées à cette catégorie. Si c’est la météo, ce sera le lieu, le jour, l’heure, etc. Si c’est pour du SAV, c’est lié au commercial, à la technique, aux expéditions ? Si l’information n’est pas claire, il faudra que le Bot pose lui-même la question.
Souvent, il convient d’enrichir ces entités: un lieu (avec ses coordonnées GPS), une entreprise (son adresse, son tel, etc.), une heure (si le jour n’est pas précisé, il s’agit probablement d’aujourd’hui)… Bref, enrichir au maximum l’information.
3. La couche logique
Pour automatiser une action, le bot va devoir se connecter à divers bases de données et web services — et pour cela, il va passer par d’autres API. C’est ce qu’il fait par exemple lorsqu’il se connecte au service météo pour connaitre la température à New-york ou s’il pleut en Bretagne (réponse “oui”, pas besoin d’API).
4. La couche hébergement
Là où on va stocker son bot, la base de données, etc. comme on le ferait pour un site web d’ailleurs.
5. La couche Analytics
Pour sortir des statistiques et pouvoir analyser les demandes, les réponses apportées, si les utilisateurs sont satisfaits, etc. De toutes façon, on met de l’analytics partout aujourd’hui !
Les meilleures API de NLP
Voici quelques unes des meilleurs API que nous pouvons utiliser, car elles sont soit gratuites, soit Open Source, soit juste limitée dans leur utilisation commerciale:
- Wit.Ai: Entièrement gratuit, même pour une utilisation commerciale. En contre-partie, votre bot doit être “Open Source” également (Open App), mais pas les données bien entendu. Fonctionne en français et dans un tas de langues. Orienté au départ vers la compréhension du langage parlé (reconnaissance vocale). Plusieurs projets accessibles ici. A l’origine, une startup française, mais rachetée depuis par Facebook. En janvier 2015, 6 000 développeurs ont rejoint la plateforme. Pour créer votre premier bot, c’est ici. Notons que Alexandre Lebrun et Alexandre Landowski avaient cofondé la société VirtuOz en 2002 en France avant de s’installer aux Etats-Unis en 2008. Cette société avait été revendue au début de 2013 à Nuance Communications, l’éditeur de Siri, l’assistant vocal d’Apple.
- API.ai: Start-up californienne, a été rachetée par Google en septembre 2016. API.AI est désormais orienté vers Google Assistant, l’assistant personnel intelligent de Google. Plusieurs SDK pour s’intégrer à de nombreuses plateformes web ou mobiles (Android, iOS). Supporte 15 langues dont le français. Complètement gratuit.
- init.ai: La solution doit être tout d’abord renseignée et alimentée en mots-clés, définitions et glossaires spécifiques.Une fois entraînée (machine learning), Init.ai peut répondre à des questions ouvertes et vagues en tenant compte du contexte et même – avance l’éditeur — prédire les messages suivants dans une conversation. Encore en version bêta, Init.ai est pour l’instant gratuit.
- Botkit.ai : A son lancement en décembre 2015, Botkit ne concernait que Slack. Depuis, il s’est étendu à Facebook Messenger, Cisco Spark, Twilio IP Messaging et Microsoft Bot Framework. Botkit Studio permet de gérer de nombreux aspects du comportement d’un bot et notamment les chaînes de dialogue entre lui et l’utilisateur. Les scripts gérés dans l’environnement peuvent être modifiés sans toucher au code d’application sous-jacent.
- Le “Bot Framework” de Microsoft: dévoilé en mars 2016, il est encore en “Preview”. 3 briques principales: le Bot Builder, un SDK open source hébergé sur GitHub et basé sur Node.js ou C#. Le Bot Connector et le Bot Directory est une librairie publique qui recense les bots conçus à partir de l’infrastructure de Microsoft par d’autres développeurs. Gratuit, mais Microsoft propose de rendre le bot créé plus intelligent via des services cognitifs (sur Azure Bot Service). Ils recouvrent la compréhension du langage naturel avec LUIS, la reconnaissance vocale avec Cortana, ou encore la recherche avec Bing. L’équivalent de Watson chez IBM en quelques sortes. Pour commencer, c’est ici.
- Botsify, un bot Messenger sans code: outil en ligne qui permet de créer un bot sur Facebook Messenger sans avoir la moindre notion de programmation. Lancé en avril 2016. Botsify donne la possibilité d’embarquer des fichiers audio, vidéo ou des documents en cours de chat. Le service est gratuit jusqu’à 1000 sessions de chat/mois. Au-delà, il faut compter 30 $ par mois pour avoir 5 000 sessions supplémentaires. Une formule avec un nombre d’utilisateurs et de bots illimité est commercialisée à 50 $ par mois. Voici un tuto pour vous aider à créer votre premier bot.
- Recast.AI : que nous allons détailler un peu ensuite.
Je n’ai listé que les principales, et encore… il y a des centaines d’API aujourd’hui sur le marché. Mais toutes n’offrent pas les mêmes services.
Chez Recast.AI
La présentation suivante a été faite par Jasmine Anteunis de chez Recast.ai, une startup parisienne.
La version proposée chez eux permet aux développeurs de créer un nombre illimité de bots, mais limité à 25000 requêtes / mois. Pour plus d’infos, consultez leurs tarifs.
Une fois le github en accès, on arrive sur la page suivante:
Il est possible ainsi d’accéder au code source d’un bot de type Hello World ou commencer son propre bot. Le mieux est probablement de démarrer par le projet tout fait 😉
Je vous laisse découvrir par vous-même, le mieux étant de commencer par la vidéo qui montre un exemple de développement de bot, puis d’analyser ce “Hello World” avant de vous lancer dans votre propre bot.
Conclusion
Vous pouvez lire cet article en vous disant qu’un Bot n’est qu’un simple agent conversationnel se basant sur un ensemble de mots clés et de scripts. Mais vous auriez tort. Ce n’est plus le cas.
Les API actuelles se basent sur le machine learning, une branche de l’IA qui se consacre l’apprentissage de la machine par la machine ! En gros, ces librairies vous permettent de commencer l’apprentissage de votre Bot, mais celui-ci va comprendre des requêtes bien plus complexes que celles que vous aviez prévu. Il apprend: vous ne faites que l’entraîner et ensuite, il va encore apprendre grâce aux utilisateurs qui vont le solliciter.
Pour un version encore plus aboutie, vous avez Watson d’IBM dont je vous laisse découvrir la page dédiée.
Vous l’avez compris, nous reviendrons prochainement sur le développement de bots conversationnels car j’estime personnellement que c’est un des liants entre l’Intelligence Artificielle, la Réalité Virtuelle & Augmentée, la Robotique, les objets connectés, etc. Impossible de passer à coté de ça ! 😉 D’ailleurs, j’ai bien envie d’accompagner ce blog d’un chatbot, ça vous dit ?
Sources:
- “8 outils de création de bots sélectionnés par le JDN” sur le Journal du Net.
- Vidéo de Recast.AI intégrée ci-avant
- Et plein de recherches personnelles 😉
Laisser un commentaire