Bot Framework & Bot Builder SDK V4, les nouveautés !
Pour ceux qui ne connaissent pas Bot Framework et Bot Builder SDK, nous allons commencer par une petite remise en contexte.
Bot Framework est un Framework développé par Microsoft, sorti en preview en mars 2016, qui fournit tous les outils nécessaires pour développer votre bot. Ce framework a connu une migration vers Azure en fin d'année 2017 : Azure Bot Service qui propose un environnement et des templates de bots déjà prêts à l'emploi.
Si vous avez encore un bot en production sur l'ancien Bot Framework, il est temps de migrer car, même si Microsoft n'a pas encore interrompu le service, la deadline officielle est déja passée (31 Mars 2018) !
Une des briques très importantes du Bot Framework est le Bot Connector, qui permet de connecter votre bot à presque n'importe quel canal de communication existant (Facebook Messenger, Skype, Microsoft Teams, Slack, etc...) sans aucun effort, tout en faisant abstraction des protocoles de communication des différents canaux. En effet, il suffit de quelques clics sur le portail Azure pour rendre disponible votre bot sur chacun de ces canaux, avec la possibilité d'ajouter des comportements spécifiques à votre bot en fonction du canal sur lequel il communique (il peut être actif sur plusieurs canaux à la fois).
Bot Builder SDK
Tout d'abord, quelques rappels concernant le Bot Builder SDK : dans sa version actuelle (3.15), ce SDK OpenSource est disponible en .NET Framework (version 4.6 minimum) et en NodeJS.
Ce SDK permet de concevoir votre bot sous forme de dialogues qui se chaînent en fonction de la complexité et de la profondeur de votre conversation.
Voici à quoi ressemble concrètement un dialogue qui répète ce que vous dites au bot :
[Serializable] public class EchoDialog : IDialog<object> { public async Task StartAsync(IDialogContext context) { context.Wait(MessageReceivedAsync); } public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument) { var message = await argument; await context.PostAsync("You said: " + message.Text); context.Wait(MessageReceivedAsync); } }
Il permet également de faire persister le contexte de votre conversation dans un table storage ou une base de données grâce à son BotDataStore. Certains services cognitifs de Microsoft sont aussi exposés dans ce SDK notamment LUIS (Language Understanding Intelligent Service) qui est le service de NLP (Natural Language Processing) de Microsoft et aussi QnAMaker qui permet d'exposer une base de connaissancess sous forme de questions/réponses. Ces derniers sont quasiment indispensables pour rendre votre bot un minimum intelligent.
Les nouveautés de la version 4 du Bot Builder
Le lancement de la v4 a été annoncé en Février 2018.
A date toujours en previw, cette version intègre les principales nouveautés suivantes :
- Le SDK passe en .NET Core 2.0
- Arrivée de Python et Java
- Refonte du système de dialogues
- Possibilité d'ajouter des middlewares liés aux différents événements du bot
- Disponibilité d'un nouvel émulateur
Attention : comme indiqué ci-dessus, cette version 4 étant encore en preview et évoluant activement, il est fortement déconseillé de partir en production sur cette version, ou de migrer immédiatement. Par ailleurs, compte tenu des évolutions majeures, le chantier de migration peut potentiellement être plus complexe que ce ne fut le cas avec les versions précédentes.
L'ancien système de dialogue a été complètement revu mais il est toujours possible d'utiliser une ancienne implémentation des dialogues sous la version 4 du SDK.
Voici un aperçu du nouvel émulateur :
Grâce à ce nouvel émulateur, vous avez la possibilité de simuler une conversation mais la grosse nouveauté est l'accès aux services cognitifs (pour en savoir plus sur les services cognitifs, rendez-vous sur l'article écrit par Aurélie sur le sujet) Luis et QnaMaker afin d'entraîner et d'améliorer la compréhension de votre bot, et cela directement depuis l'émulateur.
Il est maintenant également possible de définir des listes de réponses et de corriger celles existantes si elles ne sont pas assez pertinentes..
En synthèse, cette v4 du SDK permet donc
- de rendre encore plus accessible le framework grâce à l'utilisation possible de .NET Core, mais aussi de deux autres langages que sont Java et Python
- d'améliorer le fonctionnement des dialogues
- et de rendre l'expérience de debug d'un bot plus facile !
Commentaires