{"id":7046,"date":"2020-09-10T10:46:16","date_gmt":"2020-09-10T14:46:16","guid":{"rendered":"https:\/\/zux.zsm.mybluehost.me\/majoctobre2019\/chloe-levolution-ou-developper-un-chatbot-pour-la-covid-19-avec-rasa-episode-2\/"},"modified":"2022-01-20T16:54:27","modified_gmt":"2022-01-20T20:54:27","slug":"chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2","status":"publish","type":"post","link":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/","title":{"rendered":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa &#8211; \u00c9pisode 2"},"content":{"rendered":"<p>[et_pb_section admin_label=\u00a0\u00bbsection\u00a0\u00bb]<br \/>\n[et_pb_row admin_label=\u00a0\u00bbrow\u00a0\u00bb]<br \/>\n[et_pb_column type=\u00a0\u00bb4_4&Prime;][et_pb_text admin_label=\u00a0\u00bbText\u00a0\u00bb]<\/p>\n<h2>Retour sur l\u2019\u00e9pisode 1: TALN et gestion d\u2019erreurs<\/h2>\n<p><img decoding=\"async\" class=\"wp-image-6934 size-full aligncenter lazyload\" data-src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/avertissement.jpeg\" alt=\"\" width=\"1925\" height=\"258\" data-srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/avertissement.jpeg 1925w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/avertissement-1280x172.jpeg 1280w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/avertissement-980x131.jpeg 980w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/avertissement-480x64.jpeg 480w\" data-sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1925px, 100vw\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1925px; --smush-placeholder-aspect-ratio: 1925\/258;\" \/><\/p>\n<h3>Flashback &#8211; Sc\u00e8ne 4: R\u00e9pondre \u00e0 des questions et suivre TED<\/h3>\n<p>Comme je l\u2019ai mentionn\u00e9 dans la premi\u00e8re partie, l\u2019objectif du module de question-r\u00e9ponse (Q&amp;R) \u00e9tait de permettre \u00e0 l\u2019utilisatrice\u00b2 de poser une question au sujet de la Covid-19, pour laquelle nous afficherions la r\u00e9ponse retourn\u00e9e par l\u2019API du mod\u00e8le du Mila. Il y a eu plusieurs versions de cette portion de l\u2019application, allant de tr\u00e8s basique \u00e0 plut\u00f4t complexe, et celle-ci a \u00e9t\u00e9 incorpor\u00e9e \u00e0 un nombre de plus en plus grand d\u2019endroits dans le dialogue.<\/p>\n<p>Dans la version initiale du flux de Q&amp;R, l\u2019utilisatrice devait choisir l\u2019option \u201cJ\u2019ai des questions\u201d du menu principal ou apr\u00e8s une \u00e9valuation, apr\u00e8s quoi l\u2019application recueillait sa question. Nous avons pr\u00e9vu quatre r\u00e9sultats possibles provenant de l\u2019appel \u00e0 l\u2019API (le quatri\u00e8me n\u2019\u00e9tait toujours pas disponible au moment o\u00f9 notre participation au projet a pris fin):<\/p>\n<ul>\n<li>\u00c9chec: l\u2019appel \u00e0 l\u2019API a \u00e9chou\u00e9<\/li>\n<li>Succ\u00e8s: l\u2019appel \u00e0 l\u2019API a r\u00e9ussi et le mod\u00e8le a fourni une r\u00e9ponse<\/li>\n<li>Hors distribution: l\u2019appel \u00e0 l\u2019API a r\u00e9ussi mais n\u2019a fourni aucune r\u00e9ponse<\/li>\n<li>Requiert une \u00e9valuation: l\u2019appel \u00e0 l\u2019API a r\u00e9ussi mais l\u2019utilisatrice devrait \u00e9valuer ses sympt\u00f4mes pour obtenir une r\u00e9ponse \u00e0 sa question<\/li>\n<\/ul>\n<p>Si le r\u00e9sultat \u00e9tait un succ\u00e8s, Chlo\u00e9 posait une question suppl\u00e9mentaire afin de savoir si la r\u00e9ponse avait \u00e9t\u00e9 utile (<a href=\"https:\/\/github.com\/botfront\/rasa-webchat\" target=\"_blank\" rel=\"noopener\">l\u2019interface de clavardage<\/a> que nous devions utiliser ne fournissait pas de boutons de type \u201cj\u2019aime\/je n\u2019aime pas\u201d (thumbs-up\/thumbs-down) qui nous auraient permis de facilement sauter cette interaction). Si le r\u00e9sultat \u00e9tait hors distribution, alors on demandait \u00e0 l\u2019utilisatrice de reformuler sa question.<\/p>\n<p>Recueillir la question, la reformulation de celle-ci et la r\u00e9troaction sur l\u2019utilit\u00e9 de la r\u00e9ponse pouvaient tous \u00eatre inclus dans un <em>formulaire<\/em>; cependant, l\u2019impl\u00e9mentation des transitions vers les autres portions du dialogue \u00e9tait moins claire. Il y avait 6 transitions diff\u00e9rentes \u00e0 partir du flux de Q&amp;R selon le r\u00e9sultat et la pr\u00e9sence de la case \u201cself_assess_done\u201d d\u00e9crite pr\u00e9c\u00e9demment. Nous avons vaguement consid\u00e9r\u00e9 la possibilit\u00e9 de demander \u00e0 l\u2019usager ce qu\u2019il voulait faire ensuite \u00e0 l\u2019int\u00e9rieur du <em>formulaire<\/em>, afin de centraliser la logique du flux de Q&amp;R, mais cette id\u00e9e a \u00e9t\u00e9 mise de c\u00f4t\u00e9 puisque nous n\u2019avons pas trouv\u00e9 de fa\u00e7on \u00e9l\u00e9gante d\u2019impl\u00e9menter cela. Pour cette raison, nous avons finalement eu recours aux <em>histoires<\/em> et \u00e0 la politique TED pour pr\u00e9dire les transitions d\u00e9terministes.<\/p>\n<p>Nous \u00e9tions aussi confront\u00e9s au probl\u00e8me d\u00e9coulant du fait que certaines de ces transitions \u00e9taient des questions de type \u201caffirm\/deny\u201d (autrement dit une intention bool\u00e9enne), \u201caffirm\u201d menant soit vers une \u00e9valuation ou vers une autre question. \u00c0 ce point, nos <em>histoires<\/em> d\u2019\u00e9valuation de base d\u00e9marraient directement avec une intention \u201cget_assessment\u201d comme raccourci pour la m\u00e9mo\u00efsation, et d\u00e9marrer une <em>histoire<\/em> avec \u201cget_assessment OR affirm\u201d aurait \u00e9videmment g\u00e9n\u00e9r\u00e9 des correspondances ind\u00e9sirables. Nous avons remis cet enjeu \u00e0 plus tard avec une solution qui fonctionnait seulement parce que nous contr\u00f4lions les r\u00e9ponses des utilisateurs par le biais de boutons. Comme ceci:<\/p>\n<p><em>Un raccourci d\u2019intentions avec des boutons <\/em><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-7029 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/1-1.bmp\" alt=\"\" width=\"467\" height=\"173\" srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/1-1.bmp 467w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/1-1-300x111.bmp 300w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/1-1-20x7.bmp 20w\" sizes=\"(max-width: 467px) 100vw, 467px\" \/><\/p>\n<p>Ainsi, nous n\u2019avions pas besoin d\u2019ajouter des histoires du module de question-r\u00e9ponse suivi d\u2019une \u00e9valuation, mais avec le recul, nous aurions d\u00fb le faire d\u2019entr\u00e9e de jeu, puisque l\u2019ajout d\u2019histoires d\u2019\u00e9valuations suivies de Q&amp;R fonctionnait (somme toute) bien, et nous avons d\u00fb le faire de toute fa\u00e7on lors de l\u2019ajout du TALN.<\/p>\n<h3>Sc\u00e8ne 5.25: D\u00e9tours de l\u2019inscription au suivi quotidien<\/h3>\n<p>Le design du flux d\u2019inscription au suivi quotidien a \u00e9t\u00e9 approfondi pour y inclure certains cas d\u2019exceptions. Cela \u00e9tait n\u00e9cessaire puisque le num\u00e9ro de t\u00e9l\u00e9phone et le code de validation \u00e9taient recueillis aupr\u00e8s de l\u2019utilisatrice directement sous forme de texte. Voici les cas plus probl\u00e9matiques que nous avons trait\u00e9s:<\/p>\n<ul>\n<li>Le num\u00e9ro de t\u00e9l\u00e9phone n\u2019est pas valide<\/li>\n<li>L\u2019utilisatrice dit qu\u2019elle n\u2019a pas de num\u00e9ro de t\u00e9l\u00e9phone<\/li>\n<li>Elle veut annuler l\u2019inscription parce qu\u2019elle ne veut pas fournir son num\u00e9ro<\/li>\n<li>Le code de validation est invalide<\/li>\n<li>L\u2019utilisatrice n\u2019a pas re\u00e7u de code de validation et veut en recevoir un nouveau<\/li>\n<li>Elle n\u2019a pas re\u00e7u de code de validation et d\u00e9sire changer de num\u00e9ro de t\u00e9l\u00e9phone<\/li>\n<\/ul>\n<p>Certains de ces cas se trouvent \u00e0 mi-chemin entre une digression et de la gestion d\u2019erreur, et nous avons pens\u00e9 les impl\u00e9menter comme des digressions \u201ccontr\u00f4l\u00e9es\u201d, de la m\u00eame fa\u00e7on que nous l\u2019avions fait pour l\u2019explication des ant\u00e9c\u00e9dents m\u00e9dicaux, qui va comme suit:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-7060 size-full lazyload\" data-src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/digression-fr.gif\" alt=\"\" width=\"600\" height=\"666\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 600px; --smush-placeholder-aspect-ratio: 600\/666;\" \/><\/p>\n<p>Mais puisque la plupart impliquaient le recours \u00e0 des compteurs et messages d\u2019erreurs de m\u00eame qu\u2019\u00e0 d\u2019autres \u00e9l\u00e9ments plus complexes, nous avons d\u00e9cid\u00e9 de g\u00e9rer tous ces cas \u00e0 l\u2019int\u00e9rieur de <em>formulaires<\/em> plut\u00f4t que de distribuer la logique entre <em>formulaires<\/em>, <em>histoires<\/em> et correspondances (<em>mappings<\/em>) d\u2019intentions. Cela a pr\u00e9sent\u00e9 des inconv\u00e9nients (au-del\u00e0 des centaines de lignes de code suppl\u00e9mentaires): une partie de la logique s\u2019\u00e9chelonnait sur plusieurs interactions et nous avons d\u00fb ajouter plusieurs cases pour disposer de compteurs et de drapeaux\u00b3 pour en suivre la progression (notre version finale du <em>formulaire<\/em> utilise une dizaine de telles cases).<\/p>\n<h3>Flashback &#8211; 5.75: Pause &#8211; TED a besoin d\u2019un cours d\u2019appoint<\/h3>\n<p>Apr\u00e8s quelques essais, il a \u00e9t\u00e9 port\u00e9 \u00e0 notre attention qu\u2019il \u00e9tait possible pour une utilisatrice de se retrouver coinc\u00e9e dans une boucle infinie dans le Q&amp;R puisque la seule option offerte \u00e9tait de reformuler la question. Le design a \u00e9t\u00e9 modifi\u00e9 afin de permettre \u00e0 l\u2019utilisatrice de soit r\u00e9essayer, soit sortir du Q&amp;R, et nous avons ajout\u00e9 2 transitions pour ce cas.<\/p>\n<p>En ajoutant ces transitions, nous avons frapp\u00e9 un petit noeud: la <a href=\"https:\/\/rasa.com\/docs\/rasa\/core\/policies\/#ted-policy\" target=\"_blank\" rel=\"noopener\">politique TED<\/a> n\u2019apprenait pas le bon comportement apr\u00e8s le Q&amp;R; elle confondait les impacts des cases \u201cquestion_answering_status\u201d et \u201csymptoms\u201d. La redistribution \u00e9quilibr\u00e9e dans nos <em>histoires<\/em> des exemples de Q&amp;R entre les \u00e9valuations sans sympt\u00f4mes, avec sympt\u00f4mes l\u00e9gers ou mod\u00e9r\u00e9s, a repr\u00e9sent\u00e9 un travail de moine, mais cela a fonctionn\u00e9. Au final, la <em>politique<\/em> pr\u00e9disait le bon comportement pour les conversations qui n\u2019\u00e9taient pas repr\u00e9sent\u00e9es dans nos histoires.<\/p>\n<h3>Sc\u00e8ne 6: L\u2019impl\u00e9mentation de la recherche de cliniques de d\u00e9pistage sur le pilote automatique<\/h3>\n<p>La recherche de cliniques de d\u00e9pistage, apr\u00e8s avoir eu maille \u00e0 partir avec les transitions du Q&amp;R et la gestion d\u2019erreurs de l\u2019inscription au suivi quotidien, n\u2019a pr\u00e9sent\u00e9 aucun nouveau d\u00e9fi. Le dialogue comprenait trois \u00e9tapes principales:<\/p>\n<ol>\n<li>Expliquer le fonctionnement et demander \u00e0 l\u2019utilisatrice si elle veut poursuivre<\/li>\n<li>Si oui, collecter son code postal et en valider le format et l\u2019existence, en annulant la t\u00e2che apr\u00e8s trop d\u2019erreurs<\/li>\n<li>Afficher les r\u00e9sultats ou offrir un autre essai s\u2019il n\u2019y en avait aucun.<\/li>\n<\/ol>\n<p>Suivant la logique de nos impl\u00e9mentations pr\u00e9c\u00e9dentes, nous avons utilis\u00e9 un <em>formulaire<\/em> pour le code postal et la gestion d\u2019erreurs, les appels \u00e0 l\u2019API et pour offrir le deuxi\u00e8me essai; et des histoires pour afficher les explications et g\u00e9rer les transitions vers les autres flux de dialogue. Les transitions, encore une fois, variaient en fonction du r\u00e9sultat de l\u2019appel \u00e0 l\u2019API et de la valeur de la case \u201cself_assess_done\u201d.<\/p>\n<h3>Sc\u00e8ne 7: Explorer les chemins sinueux du TALN<\/h3>\n<p>Apr\u00e8s \u00eatre pass\u00e9s \u00e0 travers l\u2019impl\u00e9mentation de toutes les fonctionnalit\u00e9s en mode boutons-seulement-sans-gestion-d\u2019erreur, nous avons pu commencer \u00e0 explorer l\u2019int\u00e9gration du TALN et \u00e0 nous attaquer aux entr\u00e9es impr\u00e9vues. Nous avons commenc\u00e9 nos essais par la toute premi\u00e8re question au menu principal. Toute r\u00e9ponse n\u2019\u00e9tant pas reconnue comme l\u2019une des options serait envoy\u00e9e \u00e0 l\u2019API du Q&amp;R; cependant, puisque le TALN n\u2019est pas contextuel dans Rasa, et \u00e9tant donn\u00e9 que nous nous attendions \u00e0 une grande vari\u00e9t\u00e9 de questions pour le Q&amp;R, \u201ctoute r\u00e9ponse\u201d pouvait \u00eatre n\u2019importe quelle intention, avec n\u2019importe quel score. \u201cComment g\u00e9rer toutes ces intentions?\u201d n\u2019\u00e9tait pas une question aussi anodine qu\u2019elle puisse para\u00eetre.<\/p>\n<h4>Option 1: Ajouter des exemples aux histoires<\/h4>\n<p>La mani\u00e8re \u00e9vidente de proc\u00e9der \u00e9tait d\u2019ajouter des <em>histoires<\/em> avec des intentions non support\u00e9es et le comportement d\u2019erreur voulu (c\u2019est-\u00e0-dire envoyer le texte au formulaire de Q&amp;R), mais de combien d\u2019exemples aurions-nous besoin? La <em>politique<\/em> TED n\u2019allait vraisemblablement pas pouvoir apprendre que le comportement des exemples \u00e9tait le comportement par d\u00e9faut \u00e0 utiliser aussi pour toute intention exclue des exemples. De plus, utiliser des OR pour inclure toutes les intentions non support\u00e9es aurait multipli\u00e9 la dur\u00e9e de l\u2019entra\u00eenement des mod\u00e8les de fa\u00e7on exponentielle d\u00e8s que nous aurions appliqu\u00e9 cette approche aux autres cas d\u2019utilisation. Cette avenue \u00e9tait un cul-de-sac.<\/p>\n<h4>Option 2: Action de repli<\/h4>\n<p>En excluant compl\u00e8tement les intentions non support\u00e9es de nos <em>histoires<\/em>, la <em>politique<\/em> TED pr\u00e9disait quand m\u00eame quelque chose, mais nous pouvions esp\u00e9rer que le score de confiance soit bas et utiliser un seuil pour d\u00e9clencher une action de repli (<a href=\"https:\/\/rasa.com\/docs\/rasa\/core\/fallback-actions\/#id1\" target=\"_blank\" rel=\"noopener\">fallback action<\/a>). Cette action remplacerait l\u2019intention retourn\u00e9e par une intention \u201cfallback\u201d et nous pourrions g\u00e9rer celle-ci dans nos <em>histoires<\/em>. Or, les comportements attendus n\u2019avaient pas de tr\u00e8s bons scores, certains n\u2019\u00e9tant pas beaucoup mieux que ce qu\u2019une intention \u201caffirm\u201d mal plac\u00e9e pouvait obtenir, puisqu\u2019elle \u00e9tait dans plusieurs <em>histoires<\/em>. En cons\u00e9quence, nous n\u2019avons pas voulu d\u00e9pendre d\u2019un seuil de confiance pour d\u00e9clencher l\u2019action de repli.<\/p>\n<h4>La solution: La politique d\u2019intention non support\u00e9e<\/h4>\n<p>Nous avons finalement r\u00e9cup\u00e9r\u00e9 l\u2019id\u00e9e de l\u2019intention \u201cfallback\u201d, mais \u00e0 l\u2019aide d\u2019une <em>politique<\/em> d\u00e9terministe. La <em>politique<\/em> pr\u00e9disait l\u2019action qui rempla\u00e7ait l\u2019intention reconnue par une intention \u201cfallback\u201d si la conversation respectait deux conditions: la derni\u00e8re action pertinente avant l\u2019entr\u00e9e de l\u2019utilisatrice \u00e9tait la question du menu principal, et l\u2019intention reconnue n\u2019\u00e9tait pas dans la liste des intentions support\u00e9es. Des <em>histoires<\/em> et la <em>politique<\/em> de m\u00e9mo\u00efsation ont \u00e9t\u00e9 utilis\u00e9es pour d\u00e9clencher le formulaire de Q&amp;R et g\u00e9rer les transitions particuli\u00e8res par la suite (l\u2019\u00e9chec de l\u2019appel \u00e0 l\u2019API ainsi que le r\u00e9sultat hors distribution au menu principal \u00e9taient suivis d\u2019un message d\u2019erreur au lieu des messages habituels):<\/p>\n<p><em>Utilisation du message d\u00e9clencheur dans le formulaire de Q&amp;R<br \/>\n<\/em><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-7033 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/3-1.bmp\" alt=\"\" width=\"571\" height=\"446\" srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/3-1.bmp 571w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/3-1-300x234.bmp 300w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/3-1-480x375.bmp 480w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/3-1-20x16.bmp 20w\" sizes=\"(max-width: 571px) 100vw, 571px\" \/><\/p>\n<h3>Sc\u00e8ne 8: Explorations suppl\u00e9mentaires<\/h3>\n<p>Dans un deuxi\u00e8me temps, nous avons ajout\u00e9 le TALN dans les questions oui-non qui, selon le design, d\u00e9clenchaient simplement, en cas d\u2019erreur, une question reformul\u00e9e avec des boutons et sans champ texte. La majorit\u00e9 d\u2019entre elles \u00e9taient dans des <em>formulaires<\/em>, certaines avec des exceptions \u00e0 la convention de message \u201cutter_ask_{nom_de_la_case}\u201d. Les exceptions s\u2019appliquaient \u00e9galement aux messages d\u2019erreurs, ce qui fait qu\u2019une approche g\u00e9n\u00e9rique ne couvrant m\u00eame pas tous les cas semblait trop complexe pour les b\u00e9n\u00e9fices envisag\u00e9s. Nous avons laiss\u00e9 cette id\u00e9e de c\u00f4t\u00e9. Il semblait plus simple et plus rapide de simplement tout g\u00e9rer dans des <em>formulaires<\/em>, comme ceci:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-7035 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/4.bmp\" alt=\"\" width=\"576\" height=\"633\" srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/4.bmp 576w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/4-273x300.bmp 273w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/4-480x528.bmp 480w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/4-18x20.bmp 18w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/p>\n<p>Intermission: Laisser le fant\u00f4me de la r\u00e9troaction loin derri\u00e8re<\/p>\n<p>En ajoutant du TALN, et par le fait m\u00eame de la flexibilit\u00e9, nous nous sommes rappel\u00e9 de l\u2019interaction de r\u00e9troaction obligatoire et laborieuse qui nous hantait toujours, et avons d\u00e9cid\u00e9 de la rendre plus flexible aussi. Nous n\u2019avions toujours pas de \u201cwidget\u201d pour la r\u00e9troaction ni le temps d\u2019en impl\u00e9menter un, donc nous avons conserv\u00e9 la question, mais adapt\u00e9 la r\u00e9action: si l\u2019utilisatrice r\u00e9pondait quoi que ce soit d\u2019autre que oui ou non, la r\u00e9ponse serait trait\u00e9e comme s\u2019il s\u2019agissait de la r\u00e9ponse \u00e0 la prochaine question, qui elle se trouvait \u00e0 offrir de poser une autre question et pouvait mener aux autres fonctionnalit\u00e9s. Il a fallu quelques contorsions afin de sortir du <em>formulaire <\/em>de mani\u00e8re pr\u00e9ventive et de \u201creproduire\u201d l\u2019entr\u00e9e de l\u2019utilisatrice:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-7037 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/5.bmp\" alt=\"\" width=\"576\" height=\"682\" srcset=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/5.bmp 576w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/5-253x300.bmp 253w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/5-480x568.bmp 480w, https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/5-17x20.bmp 17w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/p>\n<h3>Sc\u00e8ne 9: Sprint final pour l\u2019ajout du TALN<\/h3>\n<p>Puisque nous avions d\u00e9j\u00e0 la <em>politique<\/em> pour remplacer des intentions par \u201cfallback\u201d, la gestion d\u2019erreurs en dehors des formulaires consistait essentiellement en l\u2019ajout d\u2019entr\u00e9es au dictionnaire des derni\u00e8res intentions support\u00e9es par des actions, ainsi que l\u2019ajout d\u2019histoires pour r\u00e9agir \u00e0 l\u2019intention \u201cfallback\u201d, soit en entrant dans le formulaire Q&amp;R ou en affichant un message d\u2019erreur en fonction du design. \u00c0 l\u2019int\u00e9rieur des formulaires, nous avons appliqu\u00e9 la m\u00eame approche que pour les questions oui-non. Nous avons d\u00fb faire quelques changements collat\u00e9raux, comme l\u2019ajout d\u2019une entit\u00e9 pour la province ou l\u2019ajout d\u2019histoires (principalement sous forme de OR) pour g\u00e9rer les transitions l\u00e0 o\u00f9 \u201caffirm\u201d ou \u201cdeny\u201d \u00e9taient valides (maintenant que le raccourci via les boutons n\u2019\u00e9tait plus disponible). Nous avons aussi d\u00fb revenir en arri\u00e8re et modifier notre fa\u00e7on \u00e9l\u00e9gante de g\u00e9rer la digression des ant\u00e9c\u00e9dents m\u00e9dicaux puisque la solution simple utilisant la politique de correspondance (<a href=\"https:\/\/rasa.com\/docs\/rasa\/core\/policies\/#mapping-policy\" target=\"_blank\" rel=\"noopener\">mapping policy<\/a>) ne pouvait pas s\u2019appliquer \u00e0 la gestion d\u2019erreurs. Nous avons donc d\u00e9cid\u00e9 de g\u00e9rer cette digression dans un <em>formulaire<\/em> comme les autres.<\/p>\n<p style=\"text-align: center;\"><strong>Fin<\/strong><\/p>\n<p>Avec le recul, bien que nous ayons ajout\u00e9 le TALN, nous avons l\u2019impression d\u2019avoir pris plusieurs raccourcis et approches plus-ou-moins-rasa-esques. Notre cas d\u2019utilisation, qui \u00e9tait enti\u00e8rement pr\u00e9visible, sans navigation al\u00e9atoire mais rempli d\u2019exceptions et de petites variations, ne correspondait pas \u00e0 un cas d\u2019utilisation typique pour Rasa. Nous avons frapp\u00e9 plusieurs obstacles qui surgissent naturellement lorsqu\u2019on essaie d\u2019impl\u00e9menter un design de type diagramme de processus avec Rasa. N\u00e9anmoins, Rasa offre beaucoup de flexibilit\u00e9 par l\u2019interm\u00e9diaire de code et d\u2019ajouts possibles, et au final, nous avons souvent choisi d\u2019utiliser du code pour repr\u00e9senter des patrons de dialogue car lorsque le temps est compt\u00e9, le chemin qui nous est familier est le fa\u00e7on la plus s\u00fbre de se rendre \u00e0 bon port.<\/p>\n<p>Dans un futur \u00e9pisode, nous irons plus loin dans l\u2019exploration des diff\u00e9rentes fa\u00e7ons d\u2019impl\u00e9menter deux des principales fonctionnalit\u00e9s des designs de type diagramme de processus, soit les arbres de d\u00e9cision et les dialogues modulaires. Ces derniers sont difficiles \u00e0 impl\u00e9menter avec Rasa et nous allons explorer les diff\u00e9rentes m\u00e9thodes pour ce faire. Nous allons \u00e9galement \u00e9valuer si et comment Rasa 2.0, toujours au stade alpha au moment d\u2019\u00e9crire ces lignes, pourra nous faciliter la t\u00e2che.<\/p>\n<p><span style=\"font-weight: 400;\"> \u00b9Je rappelle que nous avons librement choisi de traduire les concepts les plus importants comme suit: <\/span><i><span style=\"font-weight: 400;\">story <\/span><\/i><span style=\"font-weight: 400;\">=&gt; histoire, <\/span><i><span style=\"font-weight: 400;\">form<\/span><\/i><span style=\"font-weight: 400;\">=&gt; formulaire, <\/span><i><span style=\"font-weight: 400;\">policy<\/span><\/i><span style=\"font-weight: 400;\">=&gt; politique, <\/span><i><span style=\"font-weight: 400;\">slot <\/span><\/i><span style=\"font-weight: 400;\">=&gt; case, <\/span><i><span style=\"font-weight: 400;\">featurized <\/span><\/i><span style=\"font-weight: 400;\">=&gt; caract\u00e9ris\u00e9e. Ces choix n\u2019engagent que nous.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"> \u00b2Le f\u00e9minin est employ\u00e9 simplement pour all\u00e9ger le texte<\/span><\/p>\n<p><span style=\"font-weight: 400;\"> \u00b3Oui, <\/span><i><span style=\"font-weight: 400;\">flag <\/span><\/i><span style=\"font-weight: 400;\">dans ce contexte c&rsquo;est bien un <\/span><i><span style=\"font-weight: 400;\">drapeau<\/span><\/i><span style=\"font-weight: 400;\">, voir <\/span><a href=\"http:\/\/gdt.oqlf.gouv.qc.ca\/index.aspx\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Le grand dictionnaire terminologique<\/span><\/a><span style=\"font-weight: 400;\"> de l\u2019OQLF<\/span>[\/et_pb_text][\/et_pb_column]<br \/>\n[\/et_pb_row]<br \/>\n[\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[et_pb_section admin_label=\u00a0\u00bbsection\u00a0\u00bb] [et_pb_row admin_label=\u00a0\u00bbrow\u00a0\u00bb] [et_pb_column type=\u00a0\u00bb4_4&Prime;][et_pb_text admin_label=\u00a0\u00bbText\u00a0\u00bb] Retour sur l\u2019\u00e9pisode 1: TALN et gestion d\u2019erreurs Flashback &#8211; Sc\u00e8ne 4: R\u00e9pondre \u00e0 des questions et suivre TED Comme je l\u2019ai mentionn\u00e9 dans la premi\u00e8re partie, l\u2019objectif du module de question-r\u00e9ponse (Q&amp;R) \u00e9tait de permettre \u00e0 l\u2019utilisatrice\u00b2 de poser une question au sujet de la Covid-19, pour [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":6974,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"<h2>Retour sur l\u2019\u00e9pisode 1: TALN et gestion d\u2019erreurs<\/h2>\r\n<img class=\"wp-image-6934 size-full aligncenter\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/avertissement.jpeg\" alt=\"\" width=\"1925\" height=\"258\" \/>\r\n<h3>Flashback - Sc\u00e8ne 4: R\u00e9pondre \u00e0 des questions et suivre TED<\/h3>\r\nComme je l\u2019ai mentionn\u00e9 dans la premi\u00e8re partie, l\u2019objectif du module de question-r\u00e9ponse (Q&R) \u00e9tait de permettre \u00e0 l\u2019utilisatrice\u00b2 de poser une question au sujet de la Covid-19, pour laquelle nous afficherions la r\u00e9ponse retourn\u00e9e par l\u2019API du mod\u00e8le du Mila. Il y a eu plusieurs versions de cette portion de l\u2019application, allant de tr\u00e8s basique \u00e0 plut\u00f4t complexe, et celle-ci a \u00e9t\u00e9 incorpor\u00e9e \u00e0 un nombre de plus en plus grand d\u2019endroits dans le dialogue.\r\n\r\nDans la version initiale du flux de Q&R, l\u2019utilisatrice devait choisir l\u2019option \u201cJ\u2019ai des questions\u201d du menu principal ou apr\u00e8s une \u00e9valuation, apr\u00e8s quoi l\u2019application recueillait sa question. Nous avons pr\u00e9vu quatre r\u00e9sultats possibles provenant de l\u2019appel \u00e0 l\u2019API (le quatri\u00e8me n\u2019\u00e9tait toujours pas disponible au moment o\u00f9 notre participation au projet a pris fin):\r\n<ul>\r\n \t<li>\u00c9chec: l\u2019appel \u00e0 l\u2019API a \u00e9chou\u00e9<\/li>\r\n \t<li>Succ\u00e8s: l\u2019appel \u00e0 l\u2019API a r\u00e9ussi et le mod\u00e8le a fourni une r\u00e9ponse<\/li>\r\n \t<li>Hors distribution: l\u2019appel \u00e0 l\u2019API a r\u00e9ussi mais n\u2019a fourni aucune r\u00e9ponse<\/li>\r\n \t<li>Requiert une \u00e9valuation: l\u2019appel \u00e0 l\u2019API a r\u00e9ussi mais l\u2019utilisatrice devrait \u00e9valuer ses sympt\u00f4mes pour obtenir une r\u00e9ponse \u00e0 sa question<\/li>\r\n<\/ul>\r\nSi le r\u00e9sultat \u00e9tait un succ\u00e8s, Chlo\u00e9 posait une question suppl\u00e9mentaire afin de savoir si la r\u00e9ponse avait \u00e9t\u00e9 utile (<a target=\"_blank\" href=\"https:\/\/github.com\/botfront\/rasa-webchat\" rel=\"noopener\">l\u2019interface de clavardage<\/a> que nous devions utiliser ne fournissait pas de boutons de type \u201cj\u2019aime\/je n\u2019aime pas\u201d (thumbs-up\/thumbs-down) qui nous auraient permis de facilement sauter cette interaction). Si le r\u00e9sultat \u00e9tait hors distribution, alors on demandait \u00e0 l\u2019utilisatrice de reformuler sa question.\r\n\r\nRecueillir la question, la reformulation de celle-ci et la r\u00e9troaction sur l\u2019utilit\u00e9 de la r\u00e9ponse pouvaient tous \u00eatre inclus dans un <em>formulaire<\/em>; cependant, l\u2019impl\u00e9mentation des transitions vers les autres portions du dialogue \u00e9tait moins claire. Il y avait 6 transitions diff\u00e9rentes \u00e0 partir du flux de Q&R selon le r\u00e9sultat et la pr\u00e9sence de la case \u201cself_assess_done\u201d d\u00e9crite pr\u00e9c\u00e9demment. Nous avons vaguement consid\u00e9r\u00e9 la possibilit\u00e9 de demander \u00e0 l\u2019usager ce qu\u2019il voulait faire ensuite \u00e0 l\u2019int\u00e9rieur du <em>formulaire<\/em>, afin de centraliser la logique du flux de Q&R, mais cette id\u00e9e a \u00e9t\u00e9 mise de c\u00f4t\u00e9 puisque nous n\u2019avons pas trouv\u00e9 de fa\u00e7on \u00e9l\u00e9gante d\u2019impl\u00e9menter cela. Pour cette raison, nous avons finalement eu recours aux <em>histoires<\/em> et \u00e0 la politique TED pour pr\u00e9dire les transitions d\u00e9terministes.\r\n\r\nNous \u00e9tions aussi confront\u00e9s au probl\u00e8me d\u00e9coulant du fait que certaines de ces transitions \u00e9taient des questions de type \u201caffirm\/deny\u201d (autrement dit une intention bool\u00e9enne), \u201caffirm\u201d menant soit vers une \u00e9valuation ou vers une autre question. \u00c0 ce point, nos <em>histoires<\/em> d\u2019\u00e9valuation de base d\u00e9marraient directement avec une intention \u201cget_assessment\u201d comme raccourci pour la m\u00e9mo\u00efsation, et d\u00e9marrer une <em>histoire<\/em> avec \u201cget_assessment OR affirm\u201d aurait \u00e9videmment g\u00e9n\u00e9r\u00e9 des correspondances ind\u00e9sirables. Nous avons remis cet enjeu \u00e0 plus tard avec une solution qui fonctionnait seulement parce que nous contr\u00f4lions les r\u00e9ponses des utilisateurs par le biais de boutons. Comme ceci:\r\n\r\n<em>Un raccourci d\u2019intentions avec des boutons <\/em>\r\n\r\n<img class=\"aligncenter wp-image-7029 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/1-1.bmp\" alt=\"\" width=\"467\" height=\"173\" \/>\r\n\r\nAinsi, nous n\u2019avions pas besoin d\u2019ajouter des histoires du module de question-r\u00e9ponse suivi d\u2019une \u00e9valuation, mais avec le recul, nous aurions d\u00fb le faire d\u2019entr\u00e9e de jeu, puisque l\u2019ajout d\u2019histoires d\u2019\u00e9valuations suivies de Q&R fonctionnait (somme toute) bien, et nous avons d\u00fb le faire de toute fa\u00e7on lors de l\u2019ajout du TALN.\r\n<h3>Sc\u00e8ne 5.25: D\u00e9tours de l\u2019inscription au suivi quotidien<\/h3>\r\nLe design du flux d\u2019inscription au suivi quotidien a \u00e9t\u00e9 approfondi pour y inclure certains cas d\u2019exceptions. Cela \u00e9tait n\u00e9cessaire puisque le num\u00e9ro de t\u00e9l\u00e9phone et le code de validation \u00e9taient recueillis aupr\u00e8s de l\u2019utilisatrice directement sous forme de texte. Voici les cas plus probl\u00e9matiques que nous avons trait\u00e9s:\r\n<ul>\r\n \t<li>Le num\u00e9ro de t\u00e9l\u00e9phone n\u2019est pas valide<\/li>\r\n \t<li>L\u2019utilisatrice dit qu\u2019elle n\u2019a pas de num\u00e9ro de t\u00e9l\u00e9phone<\/li>\r\n \t<li>Elle veut annuler l\u2019inscription parce qu\u2019elle ne veut pas fournir son num\u00e9ro<\/li>\r\n \t<li>Le code de validation est invalide<\/li>\r\n \t<li>L\u2019utilisatrice n\u2019a pas re\u00e7u de code de validation et veut en recevoir un nouveau<\/li>\r\n \t<li>Elle n\u2019a pas re\u00e7u de code de validation et d\u00e9sire changer de num\u00e9ro de t\u00e9l\u00e9phone<\/li>\r\n<\/ul>\r\nCertains de ces cas se trouvent \u00e0 mi-chemin entre une digression et de la gestion d\u2019erreur, et nous avons pens\u00e9 les impl\u00e9menter comme des digressions \u201ccontr\u00f4l\u00e9es\u201d, de la m\u00eame fa\u00e7on que nous l\u2019avions fait pour l\u2019explication des ant\u00e9c\u00e9dents m\u00e9dicaux, qui va comme suit:\r\n\r\n<img class=\"aligncenter wp-image-7060 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/digression-fr.gif\" alt=\"\" width=\"600\" height=\"666\" \/>\r\n\r\nMais puisque la plupart impliquaient le recours \u00e0 des compteurs et messages d\u2019erreurs de m\u00eame qu\u2019\u00e0 d\u2019autres \u00e9l\u00e9ments plus complexes, nous avons d\u00e9cid\u00e9 de g\u00e9rer tous ces cas \u00e0 l\u2019int\u00e9rieur de <em>formulaires<\/em> plut\u00f4t que de distribuer la logique entre <em>formulaires<\/em>, <em>histoires<\/em> et correspondances (<em>mappings<\/em>) d\u2019intentions. Cela a pr\u00e9sent\u00e9 des inconv\u00e9nients (au-del\u00e0 des centaines de lignes de code suppl\u00e9mentaires): une partie de la logique s\u2019\u00e9chelonnait sur plusieurs interactions et nous avons d\u00fb ajouter plusieurs cases pour disposer de compteurs et de drapeaux\u00b3 pour en suivre la progression (notre version finale du <em>formulaire<\/em> utilise une dizaine de telles cases).\r\n<h3>Flashback - 5.75: Pause - TED a besoin d\u2019un cours d\u2019appoint<\/h3>\r\nApr\u00e8s quelques essais, il a \u00e9t\u00e9 port\u00e9 \u00e0 notre attention qu\u2019il \u00e9tait possible pour une utilisatrice de se retrouver coinc\u00e9e dans une boucle infinie dans le Q&R puisque la seule option offerte \u00e9tait de reformuler la question. Le design a \u00e9t\u00e9 modifi\u00e9 afin de permettre \u00e0 l\u2019utilisatrice de soit r\u00e9essayer, soit sortir du Q&R, et nous avons ajout\u00e9 2 transitions pour ce cas.\r\n\r\nEn ajoutant ces transitions, nous avons frapp\u00e9 un petit noeud: la <a target=\"_blank\" href=\"https:\/\/rasa.com\/docs\/rasa\/core\/policies\/#ted-policy\" rel=\"noopener\">politique TED<\/a> n\u2019apprenait pas le bon comportement apr\u00e8s le Q&R; elle confondait les impacts des cases \u201cquestion_answering_status\u201d et \u201csymptoms\u201d. La redistribution \u00e9quilibr\u00e9e dans nos <em>histoires<\/em> des exemples de Q&R entre les \u00e9valuations sans sympt\u00f4mes, avec sympt\u00f4mes l\u00e9gers ou mod\u00e9r\u00e9s, a repr\u00e9sent\u00e9 un travail de moine, mais cela a fonctionn\u00e9. Au final, la <em>politique<\/em> pr\u00e9disait le bon comportement pour les conversations qui n\u2019\u00e9taient pas repr\u00e9sent\u00e9es dans nos histoires.\r\n<h3>Sc\u00e8ne 6: L\u2019impl\u00e9mentation de la recherche de cliniques de d\u00e9pistage sur le pilote automatique<\/h3>\r\nLa recherche de cliniques de d\u00e9pistage, apr\u00e8s avoir eu maille \u00e0 partir avec les transitions du Q&R et la gestion d\u2019erreurs de l\u2019inscription au suivi quotidien, n\u2019a pr\u00e9sent\u00e9 aucun nouveau d\u00e9fi. Le dialogue comprenait trois \u00e9tapes principales:\r\n<ol>\r\n \t<li>Expliquer le fonctionnement et demander \u00e0 l\u2019utilisatrice si elle veut poursuivre<\/li>\r\n \t<li>Si oui, collecter son code postal et en valider le format et l\u2019existence, en annulant la t\u00e2che apr\u00e8s trop d\u2019erreurs<\/li>\r\n \t<li>Afficher les r\u00e9sultats ou offrir un autre essai s\u2019il n\u2019y en avait aucun.<\/li>\r\n<\/ol>\r\nSuivant la logique de nos impl\u00e9mentations pr\u00e9c\u00e9dentes, nous avons utilis\u00e9 un <em>formulaire<\/em> pour le code postal et la gestion d\u2019erreurs, les appels \u00e0 l\u2019API et pour offrir le deuxi\u00e8me essai; et des histoires pour afficher les explications et g\u00e9rer les transitions vers les autres flux de dialogue. Les transitions, encore une fois, variaient en fonction du r\u00e9sultat de l\u2019appel \u00e0 l\u2019API et de la valeur de la case \u201cself_assess_done\u201d.\r\n<h3>Sc\u00e8ne 7: Explorer les chemins sinueux du TALN<\/h3>\r\nApr\u00e8s \u00eatre pass\u00e9s \u00e0 travers l\u2019impl\u00e9mentation de toutes les fonctionnalit\u00e9s en mode boutons-seulement-sans-gestion-d\u2019erreur, nous avons pu commencer \u00e0 explorer l\u2019int\u00e9gration du TALN et \u00e0 nous attaquer aux entr\u00e9es impr\u00e9vues. Nous avons commenc\u00e9 nos essais par la toute premi\u00e8re question au menu principal. Toute r\u00e9ponse n\u2019\u00e9tant pas reconnue comme l\u2019une des options serait envoy\u00e9e \u00e0 l\u2019API du Q&R; cependant, puisque le TALN n\u2019est pas contextuel dans Rasa, et \u00e9tant donn\u00e9 que nous nous attendions \u00e0 une grande vari\u00e9t\u00e9 de questions pour le Q&R, \u201ctoute r\u00e9ponse\u201d pouvait \u00eatre n\u2019importe quelle intention, avec n\u2019importe quel score. \u201cComment g\u00e9rer toutes ces intentions?\u201d n\u2019\u00e9tait pas une question aussi anodine qu\u2019elle puisse para\u00eetre.\r\n<h4>Option 1: Ajouter des exemples aux histoires<\/h4>\r\nLa mani\u00e8re \u00e9vidente de proc\u00e9der \u00e9tait d\u2019ajouter des <em>histoires<\/em> avec des intentions non support\u00e9es et le comportement d\u2019erreur voulu (c\u2019est-\u00e0-dire envoyer le texte au formulaire de Q&R), mais de combien d\u2019exemples aurions-nous besoin? La <em>politique<\/em> TED n\u2019allait vraisemblablement pas pouvoir apprendre que le comportement des exemples \u00e9tait le comportement par d\u00e9faut \u00e0 utiliser aussi pour toute intention exclue des exemples. De plus, utiliser des OR pour inclure toutes les intentions non support\u00e9es aurait multipli\u00e9 la dur\u00e9e de l\u2019entra\u00eenement des mod\u00e8les de fa\u00e7on exponentielle d\u00e8s que nous aurions appliqu\u00e9 cette approche aux autres cas d\u2019utilisation. Cette avenue \u00e9tait un cul-de-sac.\r\n<h4>Option 2: Action de repli<\/h4>\r\nEn excluant compl\u00e8tement les intentions non support\u00e9es de nos <em>histoires<\/em>, la <em>politique<\/em> TED pr\u00e9disait quand m\u00eame quelque chose, mais nous pouvions esp\u00e9rer que le score de confiance soit bas et utiliser un seuil pour d\u00e9clencher une action de repli (<a target=\"_blank\" href=\"https:\/\/rasa.com\/docs\/rasa\/core\/fallback-actions\/#id1\" rel=\"noopener\">fallback action<\/a>). Cette action remplacerait l\u2019intention retourn\u00e9e par une intention \u201cfallback\u201d et nous pourrions g\u00e9rer celle-ci dans nos <em>histoires<\/em>. Or, les comportements attendus n\u2019avaient pas de tr\u00e8s bons scores, certains n\u2019\u00e9tant pas beaucoup mieux que ce qu\u2019une intention \u201caffirm\u201d mal plac\u00e9e pouvait obtenir, puisqu\u2019elle \u00e9tait dans plusieurs <em>histoires<\/em>. En cons\u00e9quence, nous n\u2019avons pas voulu d\u00e9pendre d\u2019un seuil de confiance pour d\u00e9clencher l\u2019action de repli.\r\n<h4>La solution: La politique d\u2019intention non support\u00e9e<\/h4>\r\nNous avons finalement r\u00e9cup\u00e9r\u00e9 l\u2019id\u00e9e de l\u2019intention \u201cfallback\u201d, mais \u00e0 l\u2019aide d\u2019une <em>politique<\/em> d\u00e9terministe. La <em>politique<\/em> pr\u00e9disait l\u2019action qui rempla\u00e7ait l\u2019intention reconnue par une intention \u201cfallback\u201d si la conversation respectait deux conditions: la derni\u00e8re action pertinente avant l\u2019entr\u00e9e de l\u2019utilisatrice \u00e9tait la question du menu principal, et l\u2019intention reconnue n\u2019\u00e9tait pas dans la liste des intentions support\u00e9es. Des <em>histoires<\/em> et la <em>politique<\/em> de m\u00e9mo\u00efsation ont \u00e9t\u00e9 utilis\u00e9es pour d\u00e9clencher le formulaire de Q&R et g\u00e9rer les transitions particuli\u00e8res par la suite (l\u2019\u00e9chec de l\u2019appel \u00e0 l\u2019API ainsi que le r\u00e9sultat hors distribution au menu principal \u00e9taient suivis d\u2019un message d\u2019erreur au lieu des messages habituels):\r\n\r\n<em>Utilisation du message d\u00e9clencheur dans le formulaire de Q&R\r\n<\/em>\r\n\r\n<img class=\"aligncenter wp-image-7033 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/3-1.bmp\" alt=\"\" width=\"571\" height=\"446\" \/>\r\n<h3>Sc\u00e8ne 8: Explorations suppl\u00e9mentaires<\/h3>\r\nDans un deuxi\u00e8me temps, nous avons ajout\u00e9 le TALN dans les questions oui-non qui, selon le design, d\u00e9clenchaient simplement, en cas d\u2019erreur, une question reformul\u00e9e avec des boutons et sans champ texte. La majorit\u00e9 d\u2019entre elles \u00e9taient dans des <em>formulaires<\/em>, certaines avec des exceptions \u00e0 la convention de message \u201cutter_ask_{nom_de_la_case}\u201d. Les exceptions s\u2019appliquaient \u00e9galement aux messages d\u2019erreurs, ce qui fait qu\u2019une approche g\u00e9n\u00e9rique ne couvrant m\u00eame pas tous les cas semblait trop complexe pour les b\u00e9n\u00e9fices envisag\u00e9s. Nous avons laiss\u00e9 cette id\u00e9e de c\u00f4t\u00e9. Il semblait plus simple et plus rapide de simplement tout g\u00e9rer dans des <em>formulaires<\/em>, comme ceci:\r\n\r\n<img class=\"aligncenter wp-image-7035 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/4.bmp\" alt=\"\" width=\"576\" height=\"633\" \/>\r\n\r\nIntermission: Laisser le fant\u00f4me de la r\u00e9troaction loin derri\u00e8re\r\n\r\nEn ajoutant du TALN, et par le fait m\u00eame de la flexibilit\u00e9, nous nous sommes rappel\u00e9 de l\u2019interaction de r\u00e9troaction obligatoire et laborieuse qui nous hantait toujours, et avons d\u00e9cid\u00e9 de la rendre plus flexible aussi. Nous n\u2019avions toujours pas de \u201cwidget\u201d pour la r\u00e9troaction ni le temps d\u2019en impl\u00e9menter un, donc nous avons conserv\u00e9 la question, mais adapt\u00e9 la r\u00e9action: si l\u2019utilisatrice r\u00e9pondait quoi que ce soit d\u2019autre que oui ou non, la r\u00e9ponse serait trait\u00e9e comme s\u2019il s\u2019agissait de la r\u00e9ponse \u00e0 la prochaine question, qui elle se trouvait \u00e0 offrir de poser une autre question et pouvait mener aux autres fonctionnalit\u00e9s. Il a fallu quelques contorsions afin de sortir du <em>formulaire <\/em>de mani\u00e8re pr\u00e9ventive et de \u201creproduire\u201d l\u2019entr\u00e9e de l\u2019utilisatrice:\r\n\r\n<img class=\"aligncenter wp-image-7037 size-full\" src=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/5.bmp\" alt=\"\" width=\"576\" height=\"682\" \/>\r\n<h3>Sc\u00e8ne 9: Sprint final pour l\u2019ajout du TALN<\/h3>\r\nPuisque nous avions d\u00e9j\u00e0 la <em>politique<\/em> pour remplacer des intentions par \u201cfallback\u201d, la gestion d\u2019erreurs en dehors des formulaires consistait essentiellement en l\u2019ajout d\u2019entr\u00e9es au dictionnaire des derni\u00e8res intentions support\u00e9es par des actions, ainsi que l\u2019ajout d\u2019histoires pour r\u00e9agir \u00e0 l\u2019intention \u201cfallback\u201d, soit en entrant dans le formulaire Q&R ou en affichant un message d\u2019erreur en fonction du design. \u00c0 l\u2019int\u00e9rieur des formulaires, nous avons appliqu\u00e9 la m\u00eame approche que pour les questions oui-non. Nous avons d\u00fb faire quelques changements collat\u00e9raux, comme l\u2019ajout d\u2019une entit\u00e9 pour la province ou l\u2019ajout d\u2019histoires (principalement sous forme de OR) pour g\u00e9rer les transitions l\u00e0 o\u00f9 \u201caffirm\u201d ou \u201cdeny\u201d \u00e9taient valides (maintenant que le raccourci via les boutons n\u2019\u00e9tait plus disponible). Nous avons aussi d\u00fb revenir en arri\u00e8re et modifier notre fa\u00e7on \u00e9l\u00e9gante de g\u00e9rer la digression des ant\u00e9c\u00e9dents m\u00e9dicaux puisque la solution simple utilisant la politique de correspondance (<a target=\"_blank\" href=\"https:\/\/rasa.com\/docs\/rasa\/core\/policies\/#mapping-policy\" rel=\"noopener\">mapping policy<\/a>) ne pouvait pas s\u2019appliquer \u00e0 la gestion d\u2019erreurs. Nous avons donc d\u00e9cid\u00e9 de g\u00e9rer cette digression dans un <em>formulaire<\/em> comme les autres.\r\n<p style=\"text-align: center;\"><strong>Fin<\/strong><\/p>\r\nAvec le recul, bien que nous ayons ajout\u00e9 le TALN, nous avons l\u2019impression d\u2019avoir pris plusieurs raccourcis et approches plus-ou-moins-rasa-esques. Notre cas d\u2019utilisation, qui \u00e9tait enti\u00e8rement pr\u00e9visible, sans navigation al\u00e9atoire mais rempli d\u2019exceptions et de petites variations, ne correspondait pas \u00e0 un cas d\u2019utilisation typique pour Rasa. Nous avons frapp\u00e9 plusieurs obstacles qui surgissent naturellement lorsqu\u2019on essaie d\u2019impl\u00e9menter un design de type diagramme de processus avec Rasa. N\u00e9anmoins, Rasa offre beaucoup de flexibilit\u00e9 par l\u2019interm\u00e9diaire de code et d\u2019ajouts possibles, et au final, nous avons souvent choisi d\u2019utiliser du code pour repr\u00e9senter des patrons de dialogue car lorsque le temps est compt\u00e9, le chemin qui nous est familier est le fa\u00e7on la plus s\u00fbre de se rendre \u00e0 bon port.\r\n\r\nDans un futur \u00e9pisode, nous irons plus loin dans l\u2019exploration des diff\u00e9rentes fa\u00e7ons d\u2019impl\u00e9menter deux des principales fonctionnalit\u00e9s des designs de type diagramme de processus, soit les arbres de d\u00e9cision et les dialogues modulaires. Ces derniers sont difficiles \u00e0 impl\u00e9menter avec Rasa et nous allons explorer les diff\u00e9rentes m\u00e9thodes pour ce faire. Nous allons \u00e9galement \u00e9valuer si et comment Rasa 2.0, toujours au stade alpha au moment d\u2019\u00e9crire ces lignes, pourra nous faciliter la t\u00e2che.\r\n\r\n<span style=\"font-weight: 400;\"> \u00b9Je rappelle que nous avons librement choisi de traduire les concepts les plus importants comme suit: <\/span><i><span style=\"font-weight: 400;\">story <\/span><\/i><span style=\"font-weight: 400;\">=> histoire, <\/span><i><span style=\"font-weight: 400;\">form<\/span><\/i><span style=\"font-weight: 400;\">=> formulaire, <\/span><i><span style=\"font-weight: 400;\">policy<\/span><\/i><span style=\"font-weight: 400;\">=> politique, <\/span><i><span style=\"font-weight: 400;\">slot <\/span><\/i><span style=\"font-weight: 400;\">=> case, <\/span><i><span style=\"font-weight: 400;\">featurized <\/span><\/i><span style=\"font-weight: 400;\">=> caract\u00e9ris\u00e9e. Ces choix n\u2019engagent que nous.<\/span>\r\n\r\n<span style=\"font-weight: 400;\"> \u00b2Le f\u00e9minin est employ\u00e9 simplement pour all\u00e9ger le texte<\/span>\r\n\r\n<span style=\"font-weight: 400;\"> \u00b3Oui, <\/span><i><span style=\"font-weight: 400;\">flag <\/span><\/i><span style=\"font-weight: 400;\">dans ce contexte c'est bien un <\/span><i><span style=\"font-weight: 400;\">drapeau<\/span><\/i><span style=\"font-weight: 400;\">, voir <\/span><a target=\"_blank\" href=\"http:\/\/gdt.oqlf.gouv.qc.ca\/index.aspx\" rel=\"noopener\"><span style=\"font-weight: 400;\">Le grand dictionnaire terminologique<\/span><\/a><span style=\"font-weight: 400;\"> de l\u2019OQLF<\/span>","_et_gb_content_width":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-7046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blogue"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2 &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo<\/title>\n<meta name=\"description\" content=\"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2 &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo\" \/>\n<meta property=\"og:description\" content=\"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/\" \/>\n<meta property=\"og:site_name\" content=\"AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nuechoinc\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-10T14:46:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-20T20:54:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/11\/Speech-Analytics.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"1500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Karine Dery\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nuecho\" \/>\n<meta name=\"twitter:site\" content=\"@nuecho\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Karine Dery\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/\"},\"author\":{\"name\":\"Karine Dery\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/63d5b2c316ed3d11678b2c2a74f949bc\"},\"headline\":\"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa &#8211; \u00c9pisode 2\",\"datePublished\":\"2020-09-10T14:46:16+00:00\",\"dateModified\":\"2022-01-20T20:54:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/\"},\"wordCount\":2718,\"publisher\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/Chlo\u00e9-je-pense-que-jai-la-covid-19.bmp\",\"articleSection\":[\"Blogue\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/\",\"url\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/\",\"name\":\"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2 &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo\",\"isPartOf\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/Chlo\u00e9-je-pense-que-jai-la-covid-19.bmp\",\"datePublished\":\"2020-09-10T14:46:16+00:00\",\"dateModified\":\"2022-01-20T20:54:27+00:00\",\"description\":\"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2\",\"breadcrumb\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#primaryimage\",\"url\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/Chlo\u00e9-je-pense-que-jai-la-covid-19.bmp\",\"contentUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/Chlo\u00e9-je-pense-que-jai-la-covid-19.bmp\",\"width\":576,\"height\":258},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.nuecho.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa &#8211; \u00c9pisode 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#website\",\"url\":\"https:\/\/www.nuecho.com\/fr\/\",\"name\":\"AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo\",\"description\":\"Nu Echo\",\"publisher\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.nuecho.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#organization\",\"name\":\"Nu Echo - Conversation AI | IA Conversationnelle\",\"url\":\"https:\/\/www.nuecho.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/03\/bottom-logo.png\",\"contentUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/03\/bottom-logo.png\",\"width\":138,\"height\":27,\"caption\":\"Nu Echo - Conversation AI | IA Conversationnelle\"},\"image\":{\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/nuechoinc\/\",\"https:\/\/x.com\/nuecho\",\"https:\/\/ca.linkedin.com\/company\/nu-echo\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/63d5b2c316ed3d11678b2c2a74f949bc\",\"name\":\"Karine Dery\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/01\/2016-10-08-346-Karine-150x150.jpg\",\"contentUrl\":\"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/01\/2016-10-08-346-Karine-150x150.jpg\",\"caption\":\"Karine Dery\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/karine-dry-8a6b8516a\/\"],\"url\":\"https:\/\/www.nuecho.com\/fr\/author\/kdery\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2 &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","description":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/","og_locale":"fr_FR","og_type":"article","og_title":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2 &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","og_description":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2","og_url":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/","og_site_name":"AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","article_publisher":"https:\/\/www.facebook.com\/nuechoinc\/","article_published_time":"2020-09-10T14:46:16+00:00","article_modified_time":"2022-01-20T20:54:27+00:00","og_image":[{"width":1500,"height":1500,"url":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/11\/Speech-Analytics.png","type":"image\/png"}],"author":"Karine Dery","twitter_card":"summary_large_image","twitter_creator":"@nuecho","twitter_site":"@nuecho","twitter_misc":{"\u00c9crit par":"Karine Dery","Dur\u00e9e de lecture estim\u00e9e":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#article","isPartOf":{"@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/"},"author":{"name":"Karine Dery","@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/63d5b2c316ed3d11678b2c2a74f949bc"},"headline":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa &#8211; \u00c9pisode 2","datePublished":"2020-09-10T14:46:16+00:00","dateModified":"2022-01-20T20:54:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/"},"wordCount":2718,"publisher":{"@id":"https:\/\/www.nuecho.com\/fr\/#organization"},"image":{"@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/Chlo\u00e9-je-pense-que-jai-la-covid-19.bmp","articleSection":["Blogue"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/","url":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/","name":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2 &#183; AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","isPartOf":{"@id":"https:\/\/www.nuecho.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#primaryimage"},"image":{"@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/Chlo\u00e9-je-pense-que-jai-la-covid-19.bmp","datePublished":"2020-09-10T14:46:16+00:00","dateModified":"2022-01-20T20:54:27+00:00","description":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa - \u00c9pisode 2","breadcrumb":{"@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#primaryimage","url":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/Chlo\u00e9-je-pense-que-jai-la-covid-19.bmp","contentUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/09\/Chlo\u00e9-je-pense-que-jai-la-covid-19.bmp","width":576,"height":258},{"@type":"BreadcrumbList","@id":"https:\/\/www.nuecho.com\/fr\/chloe-levolution-ou-developper-un-agent-conversationnel-pour-la-covid-19-avec-rasa-episode-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.nuecho.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Chlo\u00e9: L\u2019\u00e9volution, ou D\u00e9velopper un agent conversationnel pour la Covid-19 avec Rasa &#8211; \u00c9pisode 2"}]},{"@type":"WebSite","@id":"https:\/\/www.nuecho.com\/fr\/#website","url":"https:\/\/www.nuecho.com\/fr\/","name":"AI Virtual Voice Experts with Google Dialogflow CX - CCAI - Nu Echo","description":"Nu Echo","publisher":{"@id":"https:\/\/www.nuecho.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nuecho.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.nuecho.com\/fr\/#organization","name":"Nu Echo - Conversation AI | IA Conversationnelle","url":"https:\/\/www.nuecho.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/03\/bottom-logo.png","contentUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2019\/03\/bottom-logo.png","width":138,"height":27,"caption":"Nu Echo - Conversation AI | IA Conversationnelle"},"image":{"@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/nuechoinc\/","https:\/\/x.com\/nuecho","https:\/\/ca.linkedin.com\/company\/nu-echo"]},{"@type":"Person","@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/63d5b2c316ed3d11678b2c2a74f949bc","name":"Karine Dery","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.nuecho.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/01\/2016-10-08-346-Karine-150x150.jpg","contentUrl":"https:\/\/www.nuecho.com\/wp-content\/uploads\/2020\/01\/2016-10-08-346-Karine-150x150.jpg","caption":"Karine Dery"},"sameAs":["https:\/\/www.linkedin.com\/in\/karine-dry-8a6b8516a\/"],"url":"https:\/\/www.nuecho.com\/fr\/author\/kdery\/"}]}},"_links":{"self":[{"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/posts\/7046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/comments?post=7046"}],"version-history":[{"count":10,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/posts\/7046\/revisions"}],"predecessor-version":[{"id":9380,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/posts\/7046\/revisions\/9380"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/media\/6974"}],"wp:attachment":[{"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/media?parent=7046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/categories?post=7046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nuecho.com\/fr\/wp-json\/wp\/v2\/tags?post=7046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}