Dé­ve­lop­pez vos pre­miers chat­bots !

Ap­pli­ca­tion la plus évi­dente de l’In­tel­li­gence ar­ti­fi­cielle, le chat­bot est la tech­no­lo­gie à la mode, outre le vo­let IA in­dis­pen­sable dans la com­pré­hen­sion du lan­gage, un bot, c’est avant tout une ap­pli­ca­tion à dé­ve­lop­per.

L'Informaticien - - SOMMAIRE -

Se­lon une en­quête Hu­ma­nis, 38 % des en­tre­prises fran­çaises in­ter­ro­gées en 2017 sont en train de mettre en place au moins un chat­bot. Elles se­raient 52 % à ré­flé­chir sé­rieu­se­ment à la ques­tion. Beau­coup se tournent vers des start- up spé­cia­li­sées, mais cer­taines di­rec­tions gé­né­rales qui consi­dèrent l’IA comme stra­té­gique pour le fu­tur vont sol­li­ci­ter leur DSI. Mettre en ligne un chat­bot n’est pas si com­plexe qu’il n’y pa­raît. L’ac­cès à l’IA est dé­sor­mais ex­trê­me­ment fa­cile via le Cloud et le mar­ché des API. Google, Mi­cro­soft, Fa­ce­book, Re­cast. AI pro­posent des API simples d’em­ploi, si bien qu’un dé­ve­lop­peur Node. js ou ASP. NET dé­bu­tant va ra­pi­de­ment pou­voir mettre en ligne un bot. Rendre ce bot ef­fi­cace, et sur­tout utile aux clients, est une autre his­toire, mais à l’heure de la gé­né­ra­li­sa­tion des as­sis­tants nu­mé­riques, il est grand temps de mon­ter en com­pé­tence sur la ques­tion.

Une ar­chi­tec­ture com­mune à toutes les plates- formes

La pre­mière règle de concep­tion d’une plate- forme de chat­bot, c’est de la rendre in­dé­pen­dante de l’ou­til de com­mu­ni­ca­tion. Au­jourd’hui, Fa­ce­book Mes­sen­ger est l’ap­pli­ca­tion la plus uti­li­sée par les chat­bots, mais outre Fa­ce­book, un même bot doit être ca­pable de com­mu­ni­quer via Slack, Skype, la fe­nêtre de chat d’un site web. L’es­sor des as­sis­tants nu­mé­rique, Mi­cro­soft Cor­ta­na, Ama­zon Alexa ou Google As­sis­tant, ne va faire qu’am­pli­fier ce be­soin d’in­dé­pen­dance vis- à- vis des ca­naux d’échange. « Le mo­teur de chat­bot est cen­tra­li­sé et doit être ca­pable de gé­rer toutes les in­ter­faces » , ré­sume Tho­mas Gue­noux, co­fon­da­teur de KRDS/ OhMyBot, concep­teur de chat­bots pour Se­pho­ra, la SNCF, BNP Pa­ri­bas, Mer­cedes. « C’est dans cette op­tique qu’il faut ar­chi­tec­tu­rer un mo­teur de chat­bot qu’il est en­suite pos­sible de dé­ployer sur dif­fé­rentes plates- formes. » Dans ce but, l’ar­chi­tec­ture du chat­bot se dé­com­pose en un mo­teur qui prend en en­trée des ques­tions et qui gé­nère des ré­ponses en re­tour. Ce mo­teur vient se connec­ter aux pla­tes­formes qui vont lui ser­vir d’in­ter­face uti­li­sa­teur. « Un autre point im­por­tant dans le dé­ve­lop­pe­ment d’une in­fra­struc­ture

de chat­bot, c’est le ser­ver­less, c’est- à- dire de mettre en ligne une API de ma­nière trans­pa­rente vis- à- vis des ser­veurs. Nous uti­li­sons beau­coup Lamb­da d’Ama­zon Web Ser­vices, et avec Dy­na­moDB comme base de don­nées. C’est une stack bien adap­tée au dé­ve­lop­pe­ment de chat­bot sur me­sure, mais ce n’est pas la seule sur le mar­ché. » Ri­vale de OhMyBot sur le mar­ché fran­çais, la start- up The Chat­bot Fac­to­ry a fait le choix de dé­ve­lop­per sa propre plate- forme de ges­tion de bots. « Seule la brique de com­pré­hen­sion du lan­gage na­tu­rel est ex­ter­na­li­sée » , ex­plique Mat­thieu Bie­try, di­rec­teur tech­nique as­so­cié de The Chat­bot Fac­to­ry. « Nous ap­pe­lons gé­né­ra­le­ment la brique de Re­cast. AI, mais nous pour­rions très bien bran­cher une autre brique NLP ( Na­tu­ral Lan­guage Pro­ces­sing) équi­va­lente. » Cette plate- forme sup­porte no­tam­ment Louis, le nou­veau chat­bot ba­ga­giste d’Air France ou en­core Pis­ton, le chat­bot em­ploi des Echos Start. Comme la plu­par t des plates- formes de bots mo­dernes, celle- ci est di­vi­sée entre le module de connexion et d’échanges pour se connec­ter aux mes­sa­ge­ries ins­tan­ta­nées et le module bot lui- même. « Ce­lui- ci doit être à même de gé­rer le contexte de chaque uti­li­sa­teurs » , pré­cise Mat­thieu Bie­try. « Si un uti­li­sa­teur a po­sé une ques­tion sur un pro­duit pré­cis et qu’il de­mande en­suite une pré­ci­sion, on part du prin­cipe qu’il parle du

même pro­duit. Il faut donc être ca­pable de gé­rer ce contexte de con­ver­sa­tion mais aus­si sa­voir si l’uti­li­sa­teur est dé­jà ve­nu plu­sieurs fois, s’il pos­sède un compte iden­ti­fié afin de per­son­na­li­ser la ré­ponse. Ces don­nées sont sto­ckées dans Mon­goDB. »

Des éco­sys­tèmes ap­pli­ca­tifs sont bien en place

Pré­cur­seur dans les pla­tes­formes de bots, Ama­zon Web Ser­vices fait face au­jourd’hui à plu­sieurs concur­rents de poids, à com­men­cer par Google. L’Amé­ri­cain s’est do­té d’API de re­con­nais­sance du lan­gage na­tu­rel avec l’ac­qui­si­tion d’API. AI en 2016. L’offre a été re­bap­ti­sée Dia­logF­low et elle est main­te­nant na­ti­ve­ment in­té­grée à l’éco­sys­tème Google et la so­lu­tion per­met aus­si le dé­ploie­ment de chat­bots sur Google As­sis­tant et Google Home. Même dé­marche chez Fa­ce­book qui a mis la main sur une start- up fran­çaise, wit. ai, qui lui a ap­por­té sa tech­no­lo­gie de re­con­nais­sance du lan­gage. Der­nier ve­nu sur ce mar­ché des plates- formes de chat­bot, Mi­cro­soft a pré­sen­té son Bot Fra­me­work lors de la der­nière édi­tion de Mi­cro­soft ex­per iences. Comme ses concur­rents, Mi­cro­soft a scin­dé la par­tie com­mu­ni­ca­tion avec le Bot Con­nec­tor ca­pable de dia­lo­guer sur Fa­ce­book, Slack, Skype, Te­le­gram ou par SMS et le vo­let pro­gram­ma­tion du bot avec le Bot Buil­der, un SDK dis­po­nible pour ASP. NET et Node. js. Un tem­plate Visual Stu­dio per­met la gé­né­ra­tion d’une Web API qui va écou­ter le ca­nal d’en­trée et être ap­pe­lée par le Bot Con­nec­tor pour chaque phrase sai­sie par l’uti­li­sa­teur. La brique NLP de Mi­cro­soft, bap­ti­sée Luis ( pour Lan­guage Un­ders­tan­ding In­tel­li­gent Ser­vice) joue alors un rôle clé : « Luis ana­lyse l’in­ten­tion de la phrase et lui a as­so­cié une pro­ba­bi­li­té. Ce­la per­met

au dé­ve­lop­peur d’adap­ter les ré­ponses de son bot » , ex­plique Jean- Sé­bas­tien Du­puy, évan­gé­liste tech­nique dé­ve­lop­pe­ment mo­bile chez Mi­cro­soft. « L’in­té­rêt de Luis, c’est qu’il ap­prend au fur et à me­sure et com­prend la ma­jo­ri­té des phrases que les uti­li­sa­teurs vont sai­sir. Une fois l’IA en­trai­née, on dis­pose d’une URL, un point d’en­trée qui re­tourne un fi­chier JSON avec les dif­fé­rentes in­ten­tions et l’en­ti­té. »

Le Ma­chine Lear­ning in­dis­pen­sable, mais in­ter­chan­geable

La brique de NLP qui s’ap­puie sur le Ma­chine Lear­ning pour re­con­naître le lan­gage na­tu­rel consti­tue être le point clé de l’ar­chi­tec­ture d’un chat­bot. C’est cette ap­proche qui per­met théo­ri­que­ment à un chat­bot d’être de plus en plus per­for­mant au fur et à me­sure qu’il ap­prend des conver­sa­tions qu’il tient avec les in­ter­nautes. Pour­tant, ces API de NLP sont de­ve­nues pra­ti­que­ment in­ter­chan­geables pour les dé­ve­lop­peurs. Pour eux, le rôle de cette API consiste à re­lier le texte ta­pé par l’in­ter­naute à des in­ten­tions ( des « in­tents » dans le jar­gon des chat­bots) qui ont été pré­dé­fi­nies, comme par exemple « ré­ser­ver un res­tau­rant » , « louer une voi­ture » , « dé­pan­ner mon ac­cès in­ter­net » . Si l’al­go­rithme ar­rive à faire ce lien entre le texte en­voyé par l’uti­li­sa­teur et une in­ten­tion connue du mo­teur de chat­bot, l’API ren­voie l’intent en ques­tion et la liste des pa­ra­mètres dont il dis­pose dé­jà, comme le type de res­tau­rant, le lieu. Il suf­fit de sai­sir une di­zaine de tour­nures de phrases par intent pour per­mettre au mo­teur, via le Ma­chine Lear­ning à com­prendre l’in­fi­ni­té des tour­nures pos­sibles d’une ques­tion. « On com­mence à avoir de bons ré­sul­tats avec une di­zaine de sy­no­nymes » , es­time Tho­mas Gue­noux. « L’API en­voie en re­tour d’une phrase un score entre 0 et 1 qui cor­res­pond au de­gré de cer­ti­tude de la ma­chine. Si le score est de 0,9, on peut être cer­tain que l’al­go­rithme a cor­rec­te­ment ana­ly­sé l’in­ten­tion de l’in­ter­naute. Si ce­lui- ci n’est que de 0,3, c’est au dé­ve­lop­peur de dé­ci­der ce qu’il compte faire : soit faire ré­pé­ter l’in­ter­naute ou lui de­man­der des pré­ci­sions, soit prendre le risque de faire l’ac­tion quand même. Tous les al­go­rithmes de NLP fonc­tionnent de cette fa­çon. » L’es sor ac­tuel du Ma­chine Lear­ning ex­plique in­con­tes­ta­ble­ment le re­gain d’in­té­rêt des en­tre­prises pour les chat­bots, mais ce n’est pas la seule tech­nique dis­po­nible pour dis­cu­ter avec un in­ter­naute. Guil­hem Va­len­tin, di­rec­teur des opé­ra­tions de l’édi­teur Sy­napse Dé­ve­lop­pe­ment sou­ligne l’ap­proche ra­di­ca­le­ment dif­fé­rente du Tou­lou­sain : « Nous tra­vaillons dans le do­maine de l’ana­lyse lin­guis­tique de­puis près de 25 ans. Notre pre­mier pro­duit était un cor rec­teur or­tho­gra­phique et, à par­tir de

notre mo­teur de com­pré­hen­sion du lan­gage, nous avons dé­ve­lop­pé plu­sieurs fonc­tions sé­man­tiques, dont un ser­vice de créa­tion de chat­bot. » Ce­lui- ci ne s’ap­puie pas uni­que­ment sur le Ma­chine Lear­ning mais sur une ap­proche sé­man­tique de l’ana­lyse de texte. « L’ap­proche sym­bo­lique nous per­met de bien com­prendre la si­gni­fi­ca­tion de chaque mot d’une phrase et c’est ce qui nous dif­fé­ren­cie du Ma­chine Lear­ning. Pour nous, les deux ap­proches sont com­plé­men­taires et nous es­sayons de les com­bi­ner pour par­ve­nir au meilleur ré­sul­tat. » L’in­té­rêt de cette ap­proche sé­man­tique est de pro­po­ser aux in­ter­nautes des chat­bots qui ne sont pas scé­na­ri­sés. Il n’est plus né­ces­saire de co­der tous les « in­tents » pos­sibles, mais de faire lire au chat­bot les do­cu­ments afin de gé­né­rer une base de connais­sance avec toutes les ques­tions qui se­ront sus­cep­tibles d’être po­sées sur le texte ini­tial et les ré­ponses. Cette ap­proche se­ra no­tam­ment mise en oeuvre par EDF pour ses tech­ni­ciens ain­si que par la Dé­pêche du Mi­di. Le chat­bot Ro­bin va au­to­ma­ti­que­ment lire le jour­nal tous les ma­tins et ré­pondre aux ques­tions des lec­teurs.

Les as­sis­tants nu­mé­riques, une autre ap­proche du dia­logue

Mes­sen­ger et les fe­nêtres de chat sur les sites web sont les moyens de com­mu­ni­ca­tion les plus fré­quents des chat­bots ac­tuels, mais l’es­sor des as­sis­tants nu­mé­riques change la donne, no­tam­ment de­puis l’ar­ri­vée de ter­mi­naux comme le Google Home ou la gamme des Ama­zon Echo. Dis­po­nible en France et en fran­çais, Google Home a pris de vi­tesse Ama­zon dans l’Hexa­gone, mais aux États- Unis, c’est bien Ama­zon qui a convain­cu le plus de dé­ve­lop­peurs si l’on en croit le nombre de « Skills » dé­jà dé­ve­lop­pés. La barre des 20 000 a été fran­chie en sep­tembre 2017, même si bon nombre d’entre eux n’ont qu’un in­té­rêt très li­mi­té. Sé­bas­tien Stor­macq, res­pon­sable Ar­chi­tec­ture d’Alexa, chez Ama­zon UK, sou­li­gnait lors de la der­nière confé­rence AWS Sum­mit la sim­pli­ci­té du dé­ve­lop­pe­ment des Skills : « Il peut s’agir d’un web ser­vice chez AWS ou d’un web ser­vice de l’en­tre­prise. L’hé­ber­ge­ment de ce web ser­vice est libre, même si Ama­zon Web Ser­vices pousse les en­tre­prises à ex­ploi­ter AWS Lamb­da pour hé­ber­ger leurs API. La Skill doit re­tour­ner un texte et Alexa va gé­né­rer la voix via le ser­vice TTS ( TextTo- Speech) qui est exé­cu­té

dans le Cloud. Le fi­chier son est en­suite en­voyé sur le de­vice. Dé­ve­lop­per une Skill, c’est avant tout dé­ve­lop­per une in­ter­face uti­li­sa­teur et le code qui sup­porte cette in­ter­face. » À l’ins­tar de Google pour Google Home et Google As­sis­tant, Ama­zon Web Ser­vice four­nit un en­vi­ron­ne­ment de dé­ve­lop­pe­ment et d’exé­cu­tion des Skills com­plet qui s’ap­puie sur des stan­dards du dé­ve­lop­pe­ment, avec des for­mats de don­nées JSON et un SDK Node. js. Néan­moins dé­ve­lop­per un chat­bot vo­cal pré­sente quelques spé­ci­fi­ci­tés. Alors qu’une tran­sac­tion sur le Web peut se dé­rou­ler sur une quin­zaine de mi­nutes, une in­ter­ac­tion vo­cale est beau­coup plus courte, de l’ordre de 1 à 2 mi­nutes, en vo­cal. Il faut aus­si pri­vi­lé­gier un échange di­rect : ce­la peut être im­mé­diat avec l’uti­li­sa­teur qui pose sa ques­tion et le Skill qui re­tourne im­mé­dia­te­ment sa ré­ponse. Dif­fi­cile dans ces condi­tions de per­son­na­li­ser un Skill, même si des so­lu­tions com­mencent à ar­ri­ver, dont le stan­dard SSML im­plé­men­té dans Alexa : « La ré­ponse est un JSON où l’on donne le texte qui se­ra lu par Alexa. Il peut s’agir d’un for­mat SSML ( Speech Syn­the­sis Mark- up Lan­guage), un for­mat qui va per­mettre à Alexa de don­ner des in­to­na­tions au texte, faire des pauses, ac­cé­lé­rer le rythme de lec­ture ou ajou­ter des in­ter­jec­tions type waow, boom, bang, etc. Des ba­lises SSML per­mettent d’ajou­ter ce type d’élé­ments dans le dia­logue. C’est aus­si comme ce­la que l’on va pou­voir don­ner du ca­rac­tère à Alexa. » Avec l’ar­ri­vée at­ten­due d’Alexa for Bu­sines s, ou en­core Mi­cro­soft qui dé­ploie Cor­ta­na sur une ligne de mon­tage chez PSA, les as­sis­tants nu­mé­riques se­ront om­ni­pré­sents tant dans les en­tre­prises que sur le B2C. Il est grand temps de dé­ve­lop­per ses pre­miers bots et de mon­ter en com­pé­tence sur cette nou­velle fa­çon de conce­voir une ap­pli­ca­tion. ❍

Pis­ton, le chat­bot em­ploi créé par The Chat­bot Fac­to­ry pour Le­sE­chos Start.

Fa­ce­book pro­pose des tem­plates riches afin de per­mettre aux chat­bots d’uti­li­ser des conte­nus mul­ti­mé­dias di­vers, mais aus­si des élé­ments tran­sac­tion­nels comme les paie­ments en ligne.

Avec son Bot Fra­me­work, Mi­cro­soft four­nit dé­sor­mais toute une sé­rie d’outils et de ser­vices cloud afin de sup­por­ter les chat­bots sur de mul­tiples ser­vices et apps de com­mu­ni­ca­tion ins­tan­ta­née.

La plate- forme Re­cast. AI est très po­pu­laire au­près des concep­teurs de chat­bots, no­tam­ment en France. Elle consti­tue une al­ter­na­tive per­for­mante aux so­lu­tions pro­po­sées par les Ga­fa.

L’ar­chi­tec­ture d’un bot pour un as­sis­tant nu­mé­rique, tel que Ama­zon Echo, est si­mi­laire à celle d’un chat­bot, en dé­pit de quelques spé­ci­fi­ci­tés comme les ser­vices STT ( Speech- toText) et TTS ( Text- ToS­peech) four­nis par la plate- forme.

Avec Alexa, Ama­zon a su conqué­rir les dé­ve­lop­peurs qui ont créé des mil­liers de « skills » pour ses dif­fé­rents as­sis­tants. Ar­ri­vé bien plus tard sur le mar­ché, Google pour­rait bien re­faire son re­tard ra­pi­de­ment.

Pour son as­sis­tant nu­mé­rique MyxyPod, le Fran­çais Myxy a fait le choix de s’ap­puyer sur la plate- forme IBM Wat­son, un moyen de res­ter in­dé­pen­dant vis- à- vis de Google et Ama­zon, ses concur­rents di­rects.

Newspapers in French

Newspapers from France

© PressReader. All rights reserved.