Site icon Intelligence Artifcielle, Robotique et Big Data

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:

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:

Quitter la version mobile