6. aOS Aix-en-Provence
21 Juin 2018
Bot design
• Phase de conception avant le développement.
• Réfléchir sur :
• Les tâches/scope
• L’identité/personnalité
• L’ux conversationnel
6
7. aOS Aix-en-Provence
21 Juin 2018
Bad bot
• Duplication de fonctionnalité.
• Vouloir en faire trop.
• Pas de fallback humain.
• Manque de transparence
• Conversation vs information
• Mauvaise UI
• Mauvaise compréhension du contexte
• …
7
9. aOS Aix-en-Provence
21 Juin 2018
Microsoft Bot : pourquoi lui ?
• Suite d’outils facilitant la création, le déploiement, le monitoring de bots.
• Multi canal :
9
11. aOS Aix-en-Provence
21 Juin 2018
Développer son bot : ou commencer ?
• Azure Bot Service
• Bot builder SDK vs Bot Framework REST API.
12
12. aOS Aix-en-Provence
21 Juin 2018
Bot Builder SDK v3
Dialog :
• Bloc de conversation
• Chargé sous forme de stack (LIFO)
Message :
• Echangé au sein d’un Dialog.
• Plusieurs contenus possibles (texte, voix, Rich Card, …)
Action :
• Attachée à un Dialog
• Charge un Dialog dans la stack
• Contextuel ou Global
Reconizer :
• Utilisé par les Actions.
• Charge un dialog en fonction des intentions de l’utilisateur
• RegExp ou Luis ou Custom
13. aOS Aix-en-Provence
21 Juin 2018
Bot Builder SDK V4 (Work In Progress)
• 2 nouveaux langages supportés : Java et Python.
• Changement d’architecture -> layered approach :
• Conversation : gestion des conversations.
• Middleware : hook lors de la réception et envoie de message.
• Memory : persistance de l’état du bot.
• …
14
14. aOS Aix-en-Provence
21 Juin 2018
Bot Builder SDK V4 : roadmap
• Mars 2018 : sécurisation de l’architecture
• Avril 2018 : migration v3->v4
• Mai 2018 : travail sur la qualité, public preview
15
15. aOS Aix-en-Provence
21 Juin 2018
Bot Builder Tools (1/2)
Chatdown :
• Permet d’écrire des scénarios pouvant ensuite être émulés dans le Bot Framework
Emulator (V4).
MSBot :
• Permet de créer et gérer un fichier .bot regroupant la déclaration des services liés au bot
(Azure bot service, Luis, …)
LUDown :
• Permet de créer un modèle pour LUIS ou QnAMaker à partir de fichiers .lu dans
lesquelles on liste les intentions et entités.
LUIS :
• Permet de manipuler une application LUIS à partir d’une CLI.
16. aOS Aix-en-Provence
21 Juin 2018
Bot Builder Tools (2/2)
QnAMaker :
• Permet de manipuler une application QnAMaker à partir d’une CLI.
Dispatch :
• Permet de combiner des applications QnAMaker et LUIS pour former une application
LUIS qui routera les requêtes sur les bon modèle.
LUISGen :
• Génère des classes C#/TypeScript à partir d’un export d’une application LUIS.
17. aOS Aix-en-Provence
21 Juin 2018
Liens
• Bot design :
• https://chatbotsmagazine.com/design-framework-for-chatbots-aa27060c4ea3
• https://speakerdeck.com/cmaneu/les-bonnes-pratiques-ux-and-devops-pour-des-bots-cognitive-services-paris
• Test :
• https://www.microsoft.com/developerblog/2017/01/20/unit-testing-for-bot-applications/
• https://channel9.msdn.com/Series/DevOps-for-the-Bot-Framework/Testing-the-Bot-Framework
• Azure Bot Service et Bot Framework :
• https://docs.microsoft.com/fr-fr/azure/bot-service/
• Bot builder :
• https://github.com/Microsoft/BotBuilder (v3)
• https://github.com/Microsoft/botbuilder-js (v4)
• https://github.com/Microsoft/botbuilder-dotnet (v4)
• https://github.com/Microsoft/botbuilder-java (v4)
• https://github.com/Microsoft/botbuilder-python (v4)
• https://github.com/microsoft/botbuilder-tools (tools)
• Luis :
• https://docs.microsoft.com/en-us/azure/cognitive-services/luis/
18
18. aOS Aix-en-Provence
21 Juin 2018
Conclusion
• Ne pas négliger le bot design !
• Beaucoup de bonnes choses à venir :
• V4 Bot builder SDK (PREVIEW)
• V4 Bot Framework Emulator (PREVIEW)
• Bot builder tools (PREVIEW)
• Project Conversation Learner (PREVIEW)
• V4 Personality Chat (PREVIEW)
• …
Hinweis der Redaktion
Dailog linéaire : collecte des informations pour engager une actions
Dailog non linéaire : dépende des réponse des utilisateurs
Pour l’ux conversationel on peut écrire des scripts de dialog et/ou réaliser des schéma de conception
Conversation versus information : définir clairement les chemin menant à l’information, pas de surenchère d’humanisme,… Dessiner des limites que le bot ne pourra franchir.
Mauvaise compréhension du contexte : sauvegarde des précédente information, aidé par le NLP
Azure CLI : installer la CLI puis l’extention pour les bots, possibilités de scripter le déploiment (template ARM)
Pour les test : écrire des tests automatisée, utiliser selenium et tester via emulator ou webchat,…
Pour la publication : possibilité de publier sur d’autre cloud provider, possibilité de metre en place le deployment continue.
Function bot : realase bien longtemps après les web app bot, problem de binding redirect sur Azure Function (pose problème pour l’utilisation d’une librairie tierce)
Azure Bot Service : generally avible depuis décembre 2017
Azure CLI : installer la CLI puis l’extention pour les bots, possibilités de scripter le déploiment (template ARM)
Dialog : expliquer la stack, redirection de dialog, prompter l’utilisateur (text, number, button, …), waterfall, …
Release juillet 2016
Messages : text, speech, card, … Peuvent être pro-actif (non lié au retour d’un utilisateur)
Reconizer : intention mapping avec un dialog.
Action : triggerAction global, reloadAction contextual, cancelAction contextual, Lorsqu’une phrase arrive on check toutes les actions lié au dialog dans la stack (contextuelle) sinon on check les action global. Match : quand charger ce dialog.
Mars 2018 -> Presque finit
Avril 2018 -> aucune tache de finit
Mais 2018 -> moitié
Package NPM qui donne des CLI
Chatdown : utile dans la phase de design du bot, permet de faire du TDD. Utile pour que le metier donne son feedback. Ficher .chat -> .transcript peut être ingéré par le bot emulator.
MSBot : utiliser par l’emulator bot V4, endroit uniforme pour stocker les informations de connection aux services.
LUDown : faire vivre le code qui définit le modèle luis a coté de celui du bot. Décrire son modele dans des documents markdown.