DevelopmentMicrosofts Bot Composer

Januari 2020… Tijd voor een nieuw jaar vol technologische ontwikkelingen! Als liefhebber van Artificial Intelligence volg ik graag de nieuwste ontwikkelingen op dit gebied! In één van de sessies van MS Ignite vorig jaar, namelijk die van Darren Jefford, werd een demo gegeven over de Bot Framework Composer. Wat is dit nu eigenlijk…?

De Bot Framework Composer Tool is een ontwikkelomgeving voor chatbots. Het combineert meerdere elementen van het Bot Framework (o.a. LUIS, QnAMaker & Bot Emulator) met een low-code approach. Ofwel, je hoeft geen diepgaande kennis te hebben van programmeren om hem te kunnen gebruiken! Daarbij biedt de Bot Composer ook een Onboarding feature aan die uitleg geeft over welke functionaliteiten erin zitten.

Deze tool heeft nog meer te bieden, waarover meer in deze blog.

In één oogopslag je gesprek

Eén van de eerste dingen die gelijk opvalt bij het aanmaken van een project, is de visuele editor. Dit scherm toont alle elementen die nodig zijn om een gespreksflow te creëren. Dit maakt het ontwikkelen van een conversatie zeer overzichtelijk (zie figuur 1). Daarnaast maakt de tool hierbij gebruik van de nieuwe adaptive dialogs van Microsoft. Wat maakt dit zo bijzonder…?

De kracht van deze nieuwe dialoog is dat het meer flexibiliteit biedt bij het creëren van een meer persoonlijke ervaring in je chatbot. De dynamische ervaring wordt onder water gecreëerd door slimme aanpassingen binnen bestaande elementen van het Bot Framework. Denk hierbij aan Natural Language Understanding (NLU)/het geheugen, maar ook door nieuwe features als Language Generation.

Bot Framework Composer - visuele editor
Figuur 1: Overzicht van de visuele editor

Voor het uitvoeren van NLU maakt de Composer gebruik van een recognizer. Deze verwerkt de getypte berichten van een gebruiker om zo de context van het gesprek te leren begrijpen. Voor het verwerkingsproces kan de tool momenteel alleen regular expressions en/of LUIS gebruiken.

De manier waarop NLU (LUIS) hiervoor wordt gebruikt, is in de Bot Composer Tool enigszins veranderd. In het verleden was het gebruikelijk om via de website van LUIS een omgeving voor language understanding aan te maken en hierin intents, utterances (woorden die je typt) en entiteiten te definiëren. De Bot Composer daarentegen maakt hiervoor gebruik van zogeheten .lu templates. Het voordeel hiervan is dat alles veel meer gecentraliseerd is en je aanzienlijk minder code hoeft te schrijven. Figuur 2 toont een voorbeeld van de syntax. Intents worden gedefinieerd middels een hekje en utterances via een opsomming. Verder is het mogelijk om templates te updaten door simpelweg nieuwe dingen toe te voegen. De Bot Composer constateert direct wanneer een er aanpassing is geweest. Hierdoor wordt de LUIS-omgeving die gekoppeld is aan de template altijd direct up-to-date gebracht tijdens het runnen van de Bot Emulator in de tool.

Voorbeeld van de .lu template syntax
Figuur 2: Voorbeeld van de .lu template syntax

Language Generation (LG)

Language Generation, waarvan de Bot Composer gebruik maakt, is één van de recent geïntroduceerde preview features van Microsoft in het Bot Framework. Het idee achter deze functionaliteit is dat meerdere variaties op antwoorden kunnen worden geformuleerd. Door dit te doen krijgt een chatbot veel meer karakter en ontstaat meer het gevoel dat je met een “mens” aan het praten bent. Hoe werkt dit dan…?

Deze functionaliteit borduurt voort op de output van de NLU recognizer, namelijk een event. Indien dit gaat om een message event of intent, kan LG worden gebruikt om dynamisch een antwoorden te formuleren voor de gebruiker. Hiervoor maakt LG gebruik van een vooraf gedefinieerde .lg template.

Hoe de chatbot tot een antwoord komt onder water, is afhankelijk van het soort template dat wordt gebruikt. Hierin zijn drie smaken beschikbaar in de vorm van een “simple”, “conditional” en “structured”- templates. Zo dienen “simple”-templates met name voor het versturen van alleen antwoorden. Wanneer er meerdere antwoorden gekoppeld zijn aan de template (zie figuur 3), kiest de chatbot willekeurig een antwoord om terug te sturen naar een gebruiker. “Structured”-templates daarentegen worden meer gebruikt voor complexere gespreksituaties, zoals het tonen van berichten in combinatie met het tonen van kaarten als er een keuze door de gebruiker moet worden gemaakt. Bijvoorbeeld bij het maken van een keuze uit kledingstukken die je wil aanschaffen in een webshop.

Bot Framework Composer - .lg template
Figuur 3: Voorbeeld van een .lg template

Om te zorgen dat de antwoorden ook bij de gebruiker aankomen op de website, maakt de template gebruik van markdown annotations. Dit kan de chatbot gebruiken om de template om te zetten in een format (html) dat ook ondersteund wordt door bijvoorbeeld je webbrowser.

What’s old is new again!

Een laatste mooie ontwikkeling in de Composer is de manier waarop gesprekken worden opgeslagen. Het opslaan van gesprekken gebeurt net als bij de voorgaande versie van het Bot Framework, in-memory. Dit wil zeggen dat het “geheugen” van de chatbot zich bevindt binnen de applicatie. Hierdoor is het geheugen makkelijker te benaderen tijdens het ontwikkelen. In de Composer Tool zijn hiervoor vooraf gedefinieerde variabelen voor onder andere informatie over de gebruiker en de conversatie.

Het voordeel van het bovenstaande is dat je verschillende dingen waar je met de bot over gesproken hebt, kan onthouden. Dit kan variëren van de routebeschrijving naar een McDonalds tot wie je laatste sollicitant was, afhankelijk van het doel van de chatbot. Het nadeel hiervan is dat mijn chatbot van alles onthoudt! Dit betekent, dat je als bedrijf een chatbot inzet, je goed moet nadenken over privacy.

Interesse?

De preview versie van de Bot Composer biedt veel potentie voor de toekomst. Op het eerste gezicht is het een alternatief voor bedrijven die willen starten met Artificial Intelligence, maar niet al te veel kosten willen maken. Door Language Generation en Language Understanding aan te bieden heeft Microsoft tevens het ontwikkelproces vereenvoudigd.

Mocht je na het lezen van deze blog vragen hebben of eens vrijblijvend willen sparren over de mogelijkheden van een chatbot met het huidige Bot Framework? Neem dan gerust contact met me op via gideonk@delta-n.nl of via de ‘officiële route’.

Gideon Kuijpers – Software Developer