Partager :

Les Instants Infeeny : Développement de BOT sous Microsoft Azure

Les Instants Infeeny : Développement de BOT sous Microsoft Azure

Echange Infeeny autour de la mise en place d’agents conversationnels (BOT) capables de mener une discussion en langage naturel. Découvrez en quoi les BOT permettent de repenser l’expérience utilisateur en offrant un vecteur de communication innovant et simplifié le tout intégré dans le Cloud Microsoft Azure.

Transcription de l’interview vidéo
Les Instants Infeeny : Développement de BOT sous Microsoft Azure

Hubert de Charnacé, Président Infeeny & Gilles Zielinski, Directeur Technique Transverse en charge de l’innovation

Hubert : Bonjour Gilles

Gilles : Bonjour Hubert

Hubert : Je souhaiterais que l’on parle des BOTs. Donc c’est un sujet dont on entend beaucoup parler. Est-ce que tu peux nous dire ce que c’est qu’un BOT ?

Gilles : Ben un BOT c’est finalement juste mettre en place un service informatique qui va permettre d’initier… enfin de, comment dire, prendre en charge un dialogue avec un utilisateur. Et donc voilà, c’est cette brique technique qui va, qui est censée pouvoir mener une conversation à la place d’un humain, pourquoi pas.

Hubert : D’accord. Donc en fait c’est une logique où plutôt que d’avoir une interface utilisateur assez classique on peut profiter du langage. Donc avoir quelque chose de plus naturel ?

Gilles : C’est ça. Tout à fait. C’est vraiment ça l’idée. C’est de pouvoir finalement offrir un nouveau vecteur de communication, en fait, avec nos utilisateurs qu’ils soient… on parle de clients ou même de collaborateurs dans le cas de BOT plus à usage interne je dirais, interne à une entreprise. Effectivement… c’est effectivement ça, c’est repenser un petit peu l’interaction et les outils communs que l’on peut utiliser traditionnellement… un intranet… là on revoit un petit peu cette expérience utilisateur.

Hubert : Et on s’appuie sur le langage humain ?

Gilles : Tout à fait.

Hubert : Est-ce que tu peux me donner des exemples ?

Gilles : Oui, enfin, en termes de BOT on peut éventuellement, ben on parlait de la relation client par exemple, donc pouvoir initier un dialogue avec un client. Pouvoir… comment dire… répondre à ses sollicitations en termes de, je ne sais pas, de consultation de catalogues produits, consultations de demandes particulières. Demandes un petit peu en… en comment dire… en substitutif à l’appel téléphonique qui va solliciter peut-être des personnes qui n’ont pas forcément le temps de tout prendre tout le temps. Là finalement on propose un service informatique qui va être capable de prendre en charge ces interactions.

Hubert : D’accord. Donc dans la relation client ? Dans le Helpdesk ? Et aussi dans la gestion des incidents ? Maintenance ?

Gilles : Tout à fait. Effectivement dans le cadre du Helpdesk on peut également, rencontrer dans certains cas des services informatiques qui vont être un petit peu surchargés par les bornes d’appels et donc du coup avoir un BOT qui permet de filtrer les premières demandes de manière à voir si effectivement d’une part on a besoin d’aller s’adresser à un humain pour répondre à notre question. Peut-être simplement mettre en place des logiques de formulaire type « question/réponse » ou alors pourquoi pas initier des processus un peu plus complexes. On peut parler par exemple de procédures de changement de mot de passe ou de recherche dans un annuaire, ce genre de chose.

Hubert : D’accord. Donc il faut de la technologie. Il faut de l’informatique. Est-ce que tu peux nous présenter déjà le socle initial pour créer un BOT dans le monde Microsoft ?

Gilles : Alors dans le monde Microsoft donc ben… Microsoft justement met à disposition ce qui est nommé le BOT Framework donc qui est un Framework de développement qui va permettre d’augmenter plus… d’augmenter la productivité de création de ces nouveaux BOTs, qui va donc susciter du développement mais qui va nous permettre d’ouvrir nativement un ensemble de canaux de communication donc parmi lesquels on retrouvera… donc parmi les classiques, je vais pas forcément tous les citer, mais on va retrouver par exemple Skype, on va retrouver Teams, Skype for Business, on retrouvera Messenger par exemple et d’autres types de canaux dont un particulier qui s’appelle le canal Direct Line qui lui va avoir la particularité de pouvoir nous offrir de la capacité, de reprendre… de repenser complètement l’expérience utilisateur en redéfinissant par exemple, en intégrant typiquement notre dialogue de conversation dans une charte graphique particulière, qui nous est propre, à notre entreprise et donc là c’est nous…

Hubert : …sur un site web ?

Gilles : Tout à fait, sur un site web par exemple…

Hubert : … ou d’avoir une zone dans un site web, sur lequel on peut commencer à dialoguer avec l’utilisateur et qui sera connecté directement avec toute une logique de BOT ?

Gilles : C’est ça avec les traditionnels pop-ups qui sortent du bas de l’écran et qui nous sollicitent en fait, qui nous disent bonjour et qui nous demandent une interaction si on le souhaite.

Hubert : Donc le socle c’est le BOT Framework et une partie d’Azure ?

Gilles : Tout à fait

Hubert : Et donc après on fait du développement donc avec des langages informatiques ?

Gilles : Oui des langages tout à fait courants. On parle de C# et de Node.js donc on est vraiment sur des langages qui sont fortement représentés dans la communauté des développeurs donc… au moins dans le monde Microsoft. Et à partir de là, oui c’est grâce à ces composants, à ce Framework, on va pouvoir finalement mettre en place les différentes briques de conversations que l’on va vouloir mettre en œuvre autour de ce BOT Framework.

Hubert : Donc une application qui intègrera la logique de la conversation ?

Gilles : C’est ça, et initialement, que la logique de conversation c’est-à-dire être capable finalement de… comment dire… de capter la sollicitation d’un utilisateur et de répondre.

Hubert : D’accord. Donc ça c’est le BOT classique mais je pense qu’on veut toujours aller plus loin. On parle toujours d’intelligence artificielle. Est-ce que tu pourrais nous dire dans ce contexte donc Azure… donc BOT fait partie de ce qu’offre le cloud de Microsoft… Qu’est ce qu’on peut avoir comme solution complémentaire pour aller plus loin et pour faire des choses peut-être plus sophistiquées ?

Gilles : Alors complémentaire et/ou indispensable en fait

Hubert : D’accord

Gilles : Il va falloir savoir où on pose le curseur. Mais dès lors qu’on a envie d’interagir avec notre BOT dans un langage plutôt humain, donc un langage naturel, et bien on a simplement envie de formuler quelques mots sur la… ou de prononcer quelques mots en tout cas sur… sur notre vecteur de communication avec le BOT et derrière on se retrouve dans une complexité particulière qui va permettre de… enfin qui va nous… nécessité en tout cas le besoin de comprendre la sémantique qui peut se cacher derrière une sollicitation de l’utilisateur faite en langage naturel. Et là on se retrouve donc dans une des briques, l’une des nombreuses briques de l’offre Microsoft Cognitive Services, donc une brique qui s’appelle LUIS qui va être chargée justement de comprendre ce langage naturel par entrainement d’un modèle donc, on en parlera peut-être un petit peu plus tard, de Machine Learning donc d’intelligence artificielle. Donc Microsoft met à disposition un moteur qui nous permet de designer quelque part la compréhension que l’on veut avoir de phrases qui sont formulées par un utilisateur, d’en déterminer des intentions et de ce fait de pouvoir brancher, se brancher sur différents… différentes branches de conversations justement et donc pouvoir aiguiller l’utilisateur vers un formulaire, par exemple à la fin, qui va répondre à ses attentes.

Hubert : L’objectif c’est de mieux comprendre la réponse faite par l’utilisateur ? Ou la question posée ?

Gilles : Tout à fait

Hubert : Et donc bien interpréter ce qui est… le sens du langage ? Ce qui est derrière … ?

Gilles : Question ou remarque. C’est-à-dire qu’à partir d’une phrase qui va être… sans forcément qu’il y ait une question derrière, pouvoir… c’est ça… vraiment déterminer une intention et pouvoir déclencher les traitements qui vont s’y associer.

Hubert : D’accord. Tu me parlais aussi de peut-être ressentir l’émotion ?

Gilles : Oui tout à fait. Un des autres services de Cognitive Services c’est effectivement la détection d’émotions. Donc là l’idée c’est de pouvoir laisser peut-être un utilisateur s’exprimer et à partir de là, suivant l’émotion qui va être détectée sur cette phrase, sur cette remarque, pouvoir aiguiller justement là encore vers une branche de conversation particulière qui va répondre peut-être à un sentiment identifié de colère ou de joie inconsidérée de l’utilisation de ce service.

Hubert : D’accord. Tu m’as dit aussi qu’on pouvait rajouter des choses dans ce dialogue. Par exemple une image ?

Gilles : Par exemple. En fait… alors sans forcément faire un focus particulier sur l’image, pour le moment en tout cas, l’idée c’est que lorsqu’on parlait tout à l’heure de besoin le plus basique possible en termes de BOT Framework ou en tout cas de conversation homme/machine, le BOT Framework nous permet de capter une sollicitation de l’utilisateur et de pouvoir lui répondre. Finalement l’intelligence du BOT c’est tout ce qui va se passer entre ces deux phases. Donc entre les deux on aura capacité à alimenter, aller chercher de l’information ailleurs, à pouvoir l’agréger. Et effectivement donc tu parlais de l’image donc là encore pouvoir faire par exemple, dans un besoin de reconnaissance faciale, on demande au BOT de reconnaitre les personnes qui sont présentes sur une photo que l’on aurait prise. Donc là encore on s’associerait à un service particulier sur Cognitive Services qui s’appelle le Face API qui lui pourra nous aider. Donc l’idée c’est qu’effectivement, finalement le BOT soit un vecteur de toute la dynamique un peu complexe de services qu’on souhaiterait mettre en place sur un… une fonctionnalité donnée de notre BOT et de notre conversation.

Hubert : D’accord. Donc derrière Azure il y a des services. Là on parlait déjà de trois qui sont dans Cognitive Services et qui permettent d’imaginer des scénarios. On parle beaucoup du Machine Learning, de l’intelligence artificielle…

Gilles : Oui

Hubert : Est-ce que cela s’adapte à une logique de BOT ?

Gilles : Bien sûr. Ben si on prend l’exemple typique du Helpdesk où ben finalement des utilisateurs sollicitent le service Helpdesk pour des… pour quelque problème que ce soit et généralement on peut aussi concevoir que l’ensemble de ces questions posées par les utilisateurs et les réponses fournies par le Helpdesk sont stockées de manière informatique dans des bases de données ou autre, ou des fichiers. L’idée c’est de, effectivement, entraîner ce modèle de Machine Learning de manière à optimiser, typiquement, les réponses que l’on pourrait fournir à tel ou tel type de questions de l’utilisateur. Et pourquoi ne pas faire un BOT qui utiliserait cet algorithme mis en place au niveau du Machine Learning sous la forme d’un appel de web service par exemple qui au regard d’une sollicitation d’un utilisateur va peut être optimiser son parcours de conversation et lui fournir directement la réponse la plus courante, puisqu’on parle toujours de statistiques quand on parle de Machine Learning, en tout cas la réponse la plus courante de manière justement à diminuer mon interaction et d’augmenter la productivité du service.

Hubert : D’accord. Et je suppose aussi que d’une façon plus globale quand on crée un BOT on cherche à ce qu’il soit connecté avec le système d’information. Est-ce que c’est une … Est-ce qu’il y a des choses à compléter sur cette partie-là ? Quelle est ta vision ?

Gilles : Dans des contextes aujourd’hui, peut-être un petit peu clés lorsqu’on parle par exemple du GDPR, malgré tout on peut penser aussi concevoir qu’un BOT est pertinent dans un contexte de relation client.

Hubert : Oui

Gilles : A partir de là les éléments de conversation qu’on pourra retenir pourront très bien peut être alimenter des… comment dire… des données particulières dans notre système CRM de manière à pouvoir enrichir notre connaissance de l’utilisateur pour pouvoir lui fournir d’autres nouveaux services peut-être innovants ou détecter des nouveaux centres d’intérêt pour cet utilisateur qui ne seraient pas forcément facile d’obtenir par un autre biais.

Hubert : D’accord. Donc dans le monde Microsoft en fait, grâce à l’ensemble de ce qui nous permet d’accéder au système d’information on est capable d’innover, de créer des schémas un peu plus compliqués, d’aller chercher l’information ou de donner des consignes à d’autres briques du système d’information tout en partant d’un BOT ?

Gilles : Tout à fait

Hubert : Très bien. Ben écoute merci beaucoup. Je ne sais pas est-ce que tu as un exemple à me montrer ?

Gilles : Oui j’ai un petit exemple. Donc on parlait de différents canaux tout à l’heure donc là j’ai effectivement sur mon téléphone un canal télégramme sur lequel je pourrais éventuellement solliciter le BOT dans le même type d’interaction que ce que je vais pouvoir te montrer à l’écran.

Hubert : D’accord.

Gilles : L’idée ici c’est de toujours commencer par dire « Bonjour » à notre BOT. Donc je lui dis « Bonjour ».

Hubert : Donc là tu as utilisé la… le… en fait c’est sur une page web ? C’est ce que tu disais tout à l’heure

Gilles : Oui c’est une iframe qui est, enfin, directement… que l’on peut directement brancher sur un écran traditionnel…

Hubert : Qui utilise quel connecteur de BOT ?

Gilles : Qui utilise le connecteur Webchat.

Hubert : Webchat, d’accord.

Gilles : Le connecteur Direct Line aurait peut-être une représentation un petit peu différente…

Hubert : Donc là c’est une version plus simple donc c’est un composant Webchat qui permet d’initier le BOT…

Gilles : C’est ça, c’est le premier canal par défaut finalement offert sur le canal BOT Framework.

Hubert : D’accord.

Gilles : Donc pour montrer un petit peu l’interaction de tout ça c’est que dans mon CRM, donc là j’utilise Salesforce parce que là encore on n’est pas forcément contraint d’utiliser les technologies Microsoft quand on fait du BOT Framework. Donc on a typiquement quelques fiches client et là donc on voit un identifiant, une situation maritale, un nombre d’enfants, et cetera. Alors bien entendu les données qui sont présentées ici sont purement fictives, on en convient. Donc là je vais reprendre ce code client. Donc le code client en question est le… donc le 1111… je vais peut-être sortir ça… et donc là effectivement la première interaction qui est faite par le BOT c’est d’aller regarder dans mon instance Salesforce à quel utilisateur correspond ce code client. Donc là on doit retrouver… on va retrouver « Bonjour Paul ». Donc là le BOT nous demande si mon conjoint se porte bien et mon enfant également. Et là j’ai une très mauvaise nouvelle à annoncer à mon BOT puisque qu’effectivement Paul a divorcé la semaine dernière et donc… et voilà… donc en interaction, en langage naturel… « j’ai divorcé la semaine dernière ». Et là bien entendu mon BOT reste malgré tout très humain donc on parle ici de la personnalité que l’on peut intégrer à ses BOTs et effectivement là on note que mon BOT est très très embêté et qu’il ne sait pas trop trop comment se comporter vis-à-vis de cette mauvaise nouvelle. Bon il notifie sa gêne et là il me demande donc de… finalement de… le sujet de ce BOT c’est de partager l’expérience d’un voyage qui a été fait par l’intermédiaire de notre agence de voyage. Je reviens un petit peu sur la gêne. Donc effectivement notre BOT a été particulièrement embêté par cette nouvelle de divorce la semaine dernière, malgré tout si nous revenons dans notre CRM et que l’on fait une actualisation on devrait constater, au temps de rafraichissement près, que la situation maritale de mon client a évolué. Donc effectivement j’ai enrichi la connaissance de mon client par l’intermédiaire de cette interaction complètement anodine et sous prétexte de gêne ben j’ai quand même… on est resté un petit peu terre à terre, on a quand même conservé cette information sur notre fiche client. Donc là, juste pour progresser un petit peu dans cette connaissance, dans ce parcours BOT, on retrouve la notion donc d’émotion. Donc là on va dire que c’était… « ce voyage était parfait ». Donc là l’appel de l’API d’émotion de tout à l’heure qui va nous permettre d’identifier qu’effectivement la personne, le ressenti global de l’utilisateur était plutôt positif et donc on lui remet… donc on affiche la phrase en question « vos remerciements seront transmis » et là on se retrouve confronté à une autre question qui nous demande si on souhaite proposer à l’utilisateur de nouvelle destination. Donc on va mettre « oui » et on parlait tout à l’heure de questionnement du Machine Learning, d’enrichissement, et cetera donc là effectivement c’est exactement ce qui se passe. On sollicite le web service qui a été exposé par une des briques du Machine Learning pour pouvoir proposer à l’utilisateur de nouvelles destinations. Donc là on demande une date souhaitée pour ce projet. Donc on pourrait très bien aussi notifier un… comment dire… une échelle de temps, donc mettons « du 22 mars 2018 au 30… » mais on peut aussi profiter du BOT pour simplifier un petit peu cette expérience et simplement lui dire du « 22 au 28 » et là donc… pareil… donc le BOT permet d’animer finalement les sollicitations vers les bons services pour nous permettre de traduire, qu’en fait, par cette phrase « du 22 au 28 » on parle bien « du jeudi 22 mars au mercredi 28 mars 2018 ». Donc je confirme que c’est effectivement bien ça. Et donc c’est là où j’appelle mon web service de Machine Learning qui devrait me proposer les meilleures destinations possibles compte tenu de l’évolution de ma fiche client puisque j’étais passé de mon statut marital « marié » à « célibataire », donc potentiellement les destinations d’hôtel seront un petit peu différentes. Et là bon on peut envisager de continuer le parcours, d’aller jusqu’à la réservation de l’hôtel. La réservation à bien été prise en compte et un des points importants qui serait la notation du service BOT pour pouvoir permettre d’enrichir, de compléter ou de corriger quelques aspects qui auraient potentiellement été mal perçus par les utilisateurs. Et encore une fois, en considérant que, dans mon dashboard Power BI, l’évolution de ces notes pourrait très bien être faite en temps réel donc via les outils. Donc temps réel ici pour les notifications sur les écrans de ce type, type tableau de bord, mais également le stockage de manière stockage froid dirons nous pour pouvoir se servir de cet historique de conversation pour pouvoir réenrichir les comportements du BOT

Hubert : Ben écoute c’est très clair, merci beaucoup. Je crois qu’on a vu tout une chaîne qui bénéficie d’Azure. Merci beaucoup Gilles.

Gilles : Je t’en prie.

Comment démarrer ?

+ de 300 personnes à votre disposition, n'hésitez pas, contactez-nous !

Parlons ensemble de votre objectif et des outils et solutions qui peuvent vous permettre d'y répondre.