Outils pour créer son Chatbot perso

Créer un chat­bot néces­site nor­male­ment des com­pé­tences en NLP (Nat­ur­al Lan­guage Pro­cess­ing), c’est à dire la com­préhen­sion du lan­gage naturel par ordi­na­teur. Mais ça, c’é­tait avant l’ar­rivée d’out­ils dédiés. Dans cet arti­cle, je vais vous expli­quer ce qu’est un chat­bot, à quoi ça sert, et quelles sont les tech­nolo­gies exis­tantes aujour­d’hui (SDK, API) pour sim­pli­fi­er à la mise en oeu­vre d’un chat­bot. Enfin, nous étudierons un cas par­ti­c­uli­er avec Recast.AI, une société française four­nissant un SDK gra­tu­it pour les développeurs.

Un chatbot, c’est quoi ?

C’est un pro­gramme relié à une ou plusieurs plate­formes de type réseau social (Skype, Twit­ter, Mes­sen­ger, etc.) ou sys­tèmes de com­mu­ni­ca­tion (SMS par exem­ple) et capa­ble de répon­dre à un cer­tain nom­bre de ques­tions posées en lan­gage naturel. Au plus sim­ple, un chat­bot va repér­er cer­tains “mots-clés” et répon­dre sur ces thèmes. Mais cer­tains chat­bots sont capa­bles de “com­pren­dre” un dis­cus­sion, de stock­er des con­nais­sances inter­mé­di­aires (faits appris lors de la con­ver­sa­tion) et pren­dre cer­taines déci­sions (en util­isant un moteur d’inférence).

En général, un chat­bot, ou bot con­ver­sa­tion­nel va être capa­ble de com­pren­dre la demande de l’u­til­isa­teur, gér­er un sem­blant de con­ver­sa­tion et automa­tis­er une tâche.

Un chatbot, pourquoi faire ?

Nous sommes de plus en plus con­nec­tés au tra­vers des réseaux soci­aux, mais aus­si de plus en plus, via des objets con­nec­tés (mon­tre, assis­tant per­son­nels, etc.). Que l’on soit une société ou un par­ti­c­uli­er, il y a de nom­breuses tâch­es que nous pou­vons automa­tis­er. Dans le pre­mier cas, il s’ag­it avant tout de fil­tr­er les requêtes clientes (SAV de 1er niveau), mais aus­si de répon­dre à d’éventuels prospects 24H24. Dans le cas d’un par­ti­c­uli­er, c’est un peu plus tor­du — mais imag­inez que vous ayez une ver­sion “alter­na­tive” de vous-même, joignable 24H24 et capa­ble de répon­dre à une cer­tain nom­bre de deman­des, mais avec des niveaux de con­fi­den­tial­ité dif­férents. Votre épouse veut savoir où vous êtes, mais vous con­duisez. Votre chat­bot va répon­dre à votre place en SMS: “Je suis à 27.5 Kg sur l’A1, je devrais arriv­er dans 20 min­utes tout au plus”.  C’est tor­du dans le sens que c’est nou­veau, mais j’imag­ine bien dans quelques années tout le monde utilis­er ce genre de ser­vices au tra­vers de leur assis­tant per­son­nel (Alexa et com­pag­nie).

Mais si on analyse les dif­férents rachats actuels, on se rend compte que de façon rel­a­tive­ment souter­raine, le chat­bot devrait servir mas­sive­ment en réal­ité virtuelle d’i­ci quelques années.

Technologies disponibles

Un bot est com­posé de plusieurs couch­es:

1. La couche “channel

C’est la couche d’in­ter­face entre l’u­til­isa­teur et le bot, c’est la réseau social, c’est la mes­sagerie. La plu­part des logi­ciels de mes­sagerie et réseaux soci­aux dis­posent aujour­d’hui d’une API per­me­t­tant d’ac­céder à divers ser­vices au tra­vers d’un SDK gra­tu­it. Il y a quelques temps, nous explo­ri­ons celle de Twit­ter dans cet arti­cle.  Cette couche est une couche d’ab­strac­tion (“One API to rules Them” aurait dit le seigneur des bots) per­me­t­tant de se con­necter à divers out­ils. On l’ap­pelle aus­si le “Bot Con­nec­tor”.

Par­mi eux:

Plus que du texte, on peut ajouter des images et des vidéos. Mais au-delà de cela, cer­taines API pro­posent des ser­vices de “Rich Mes­sag­ing” comme la pos­si­bil­ité de faire des sondages, de pro­pos­er des QCM, etc. Tout cela peut entr­er aus­si dans la créa­tion de notre Bot, mais ne sera pas com­pat­i­ble avec toutes les mes­sageries. D’où l’in­térêt d’avoir plusieurs sce­narii différents.

2. La couche “NLP

Cette couche per­met la com­préhen­sion des don­nées entrées par l’utilisateur.

L’ob­jec­tif est dans un pre­mier temps de répon­dre à cette pre­mière ques­tion: “Quelle est l’in­ten­tion de l’u­til­isa­teur ?”. l’API va essay­er de rat­tach­er cela à une caté­gorie que l’on aura défi­ni au préal­able (comme “Météo” ou “SAV”).

Ensuite, il con­vient d’extraire les infor­ma­tions impor­tantes (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 com­mer­cial, à la tech­nique, aux expédi­tions ? Si l’in­for­ma­tion n’est pas claire, il fau­dra que le Bot pose lui-même la question.
Sou­vent, il con­vient d’en­richir ces entités: un lieu (avec ses coor­don­nées GPS), une entre­prise (son adresse, son tel, etc.), une heure (si le jour n’est pas pré­cisé, il s’ag­it prob­a­ble­ment d’au­jour­d’hui)… Bref, enrichir au max­i­mum l’information.

3. La couche logique

Pour automa­tis­er une action, le bot va devoir se con­necter à divers bases de don­nées et web ser­vices — et pour cela, il va pass­er par d’autres API. C’est ce qu’il fait par exem­ple lorsqu’il se con­necte au ser­vice météo pour con­naitre la tem­péra­ture à New-york ou s’il pleut en Bre­tagne (réponse “oui”, pas besoin d’API).

4. La couche hébergement

Là où on va stock­er son bot, la base de don­nées, etc. comme on le ferait pour un site web d’ailleurs.

5. La couche Analytics

Pour sor­tir des sta­tis­tiques et pou­voir analyser les deman­des, les répons­es apportées, si les util­isa­teurs sont sat­is­faits, etc. De toutes façon, on met de l’an­a­lyt­ics partout aujourd’hui !

Les meilleures API de NLP

Voici quelques unes des meilleurs API que nous pou­vons utilis­er, car elles sont soit gra­tu­ites, soit Open Source, soit juste lim­itée dans leur util­i­sa­tion commerciale:

  • Wit.Ai: Entière­ment gra­tu­it, même pour une util­i­sa­tion com­mer­ciale. En con­tre-par­tie, votre bot doit être “Open Source” égale­ment (Open App), mais pas les don­nées bien enten­du. Fonc­tionne en français et dans un tas de langues. Ori­en­té au départ vers la com­préhen­sion du lan­gage par­lé (recon­nais­sance vocale). Plusieurs pro­jets acces­si­bles ici. A l’o­rig­ine, une start­up française, mais rachetée depuis par Face­book. En jan­vi­er 2015, 6 000 développeurs ont rejoint la plate­forme. Pour créer votre pre­mier bot, c’est ici. Notons que Alexan­dre Lebrun et Alexan­dre Landows­ki avaient cofondé la société Vir­tuOz en 2002 en France avant de s’in­staller aux Etats-Unis en 2008. Cette société avait été reven­due au début de 2013 à Nuance Com­mu­ni­ca­tions, l’édi­teur de Siri, l’as­sis­tant vocal d’Apple.
  • API.ai: Start-up cal­i­forni­enne, a été rachetée par Google en sep­tem­bre 2016. API.AI est désor­mais ori­en­té vers Google Assis­tant, l’as­sis­tant per­son­nel intel­li­gent de Google. Plusieurs SDK pour s’in­té­gr­er à de nom­breuses plate­formes web ou mobiles (Android, iOS). Sup­porte 15 langues dont le français. Com­plète­ment gra­tu­it.
  • init.ai:  La solu­tion doit être tout d’abord ren­seignée et ali­men­tée en mots-clés, déf­i­ni­tions et glos­saires spécifiques.Une fois entraînée (machine learn­ing), Init.ai peut répon­dre à des ques­tions ouvertes et vagues en ten­ant compte du con­texte et même – avance l’édi­teur — prédire les mes­sages suiv­ants dans une con­ver­sa­tion. ‎Encore en ver­sion bêta, Init.ai est pour l’in­stant gra­tu­it.
  • Botkit.ai : A son lance­ment en décem­bre 2015, Botk­it ne con­cer­nait que Slack. Depuis, il s’est éten­du à Face­book Mes­sen­ger, Cis­co Spark, Twilio IP Mes­sag­ing et Microsoft Bot Frame­work. Botk­it Stu­dio per­met de gér­er de nom­breux aspects du com­porte­ment d’un bot et notam­ment les chaînes de dia­logue entre lui et l’u­til­isa­teur. Les scripts gérés dans l’en­vi­ron­nement peu­vent être mod­i­fiés sans touch­er au code d’ap­pli­ca­tion sous-jacent.
  • Le “Bot Frame­work” de Microsoft: dévoilé en mars 2016, il est encore en “Pre­view”.  3 briques prin­ci­pales: le Bot Builder, un SDK open source hébergé sur GitHub et basé sur Node.js ou C#. Le Bot Con­nec­tor et le Bot Direc­to­ry est une librairie publique qui recense les bots conçus à par­tir de l’in­fra­struc­ture de Microsoft par d’autres développeurs. Gra­tu­it, mais Microsoft pro­pose de ren­dre le bot créé plus intel­li­gent via des ser­vices cog­ni­tifs (sur Azure Bot Ser­vice). Ils recou­vrent la com­préhen­sion du lan­gage naturel avec LUIS, la recon­nais­sance vocale avec Cor­tana, ou encore la recherche avec Bing. L’équiv­a­lent de Wat­son chez IBM en quelques sortes. Pour com­mencer, c’est ici.
  • Bot­si­fy, un bot Mes­sen­ger sans code:  out­il en ligne qui per­met de créer un bot sur Face­book Mes­sen­ger sans avoir la moin­dre notion de pro­gram­ma­tion. Lancé en avril 2016. Bot­si­fy donne la pos­si­bil­ité d’embarquer des fichiers audio, vidéo ou des doc­u­ments en cours de chat. Le ser­vice est gra­tu­it jusqu’à 1000 ses­sions de chat/mois. Au-delà, il faut compter 30 $ par mois pour avoir 5 000 ses­sions sup­plé­men­taires. Une for­mule avec un nom­bre d’u­til­isa­teurs et de bots illim­ité est com­mer­cial­isée à 50 $ par mois. Voici un tuto pour vous aider à créer votre pre­mier bot.
  • Recast.AI : que nous allons détailler un peu ensuite.

Je n’ai listé que les prin­ci­pales, et encore… il y a des cen­taines d’API aujour­d’hui sur le marché. Mais toutes n’of­frent pas les mêmes services.

Chez Recast.AI

La présen­ta­tion suiv­ante a été faite par Jas­mine Ante­u­nis de chez Recast.ai, une start­up parisienne.

La ver­sion pro­posée chez eux per­met aux développeurs de créer un nom­bre illim­ité de bots, mais lim­ité à 25000 requêtes / mois. Pour plus d’in­fos, con­sul­tez leurs tar­ifs.

Une fois le github en accès, on arrive sur la page suivante:

Il est pos­si­ble ain­si d’ac­céder au code source d’un bot de type Hel­lo World ou com­mencer son pro­pre bot. Le mieux est prob­a­ble­ment de démar­rer par le pro­jet tout fait 😉

 Je vous laisse décou­vrir par vous-même, le mieux étant de com­mencer par la vidéo qui mon­tre un exem­ple de développe­ment de bot, puis d’analyser ce “Hel­lo World” avant de vous lancer dans votre pro­pre bot.

Conclusion

Vous pou­vez lire cet arti­cle en vous dis­ant qu’un Bot n’est qu’un sim­ple agent con­ver­sa­tion­nel se bas­ant sur un ensem­ble 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 learn­ing, une branche de l’IA qui se con­sacre l’ap­pren­tis­sage de la machine par la machine ! En gros, ces librairies vous per­me­t­tent de com­mencer l’ap­pren­tis­sage de votre Bot, mais celui-ci va com­pren­dre des requêtes bien plus com­plex­es que celles que vous aviez prévu. Il apprend: vous ne faites que l’entraîner et ensuite, il va encore appren­dre grâce aux util­isa­teurs qui vont le solliciter.

Pour un ver­sion encore plus aboutie, vous avez Wat­son d’IBM dont je vous laisse décou­vrir la page dédiée.

Vous l’avez com­pris, nous revien­drons prochaine­ment sur le développe­ment de bots con­ver­sa­tion­nels car j’es­time per­son­nelle­ment que c’est un des liants entre l’In­tel­li­gence Arti­fi­cielle, la Réal­ité Virtuelle & Aug­men­tée, la Robo­t­ique, les objets con­nec­tés, etc. Impos­si­ble de pass­er à coté de ça ! 😉 D’ailleurs, j’ai bien envie d’ac­com­pa­g­n­er ce blog d’un chat­bot, ça vous dit ?

Sources:

Laisser un commentaire

Fièrement propulsé par WordPress | Thème : Baskerville 2 par Anders Noren.

Retour en haut ↑

%d blogueurs aiment cette page :