Introductie
Dit document beschrijft het Microsoft Bot Framework en werkt
een zakelijk scenario uit waarvoor Bots gebruikt zouden kunnen worden.
De onderdelen van het Bot framework zijn de Bot Connector, de
SDKs waarmee je de Bot kunt bouwen en de Bot Directory. Met de Bot Connector
kun je gebruikers via verschillende kanalen toegang geven tot je Bot. De Bot
zelf bouw je met de SDKs als ASP.Net web applicatie of Node.JS applicatie. Er
is ook een Bot Framework Emulator waarmee je de bot kunt testen en Visual
Studio templates om snel een bot te kunnen ontwikkelen. De Bot directory wordt
een online store waarop je je bots kunt publishen zodat ze door het publiek te
vinden en te gebruiken zijn.
Een typische (happy flow) van de gebruiker-bot interactie
gaat als volgt:
1.
Eindgebruiker vindt of verkrijgt het Bot id voor
een kanaal (skype contact, telefoonnummer voor SMS, Office 365 email adres,
etc)
2.
De eindgebruiker spreekt de Bot aan via het
kanaal.
3.
De eindgebruiker en de bot hebben een
conversatie
4.
De Bot registreert (de uitkomst van) de
conversatie in de back-end
5.
Er is terugkoppeling naar de eindgebruiker over
het resultaat.
6.
Dienst wordt geleverd aan eindgebruiker (e.g.
pizza wordt bezorgd, service request wordt afgehandeld).
Een goede kandidaat voor een back-end systeem kan in
bepaalde gevallen een Logic App zijn. Deze workflow kan dan berichten plaatsen
in verschillende on-premises of cloud systemen, mensen informeren over de
aanvraag en terugkoppeling geven aan de Bot. In simpele gevallen kan een enkele
API het Bot bericht afhandelen.
De ontwikkelmogelijkheden binnen de Bot SDK (open source)
zijn talrijk. Er is een soort code-wizard om snel een bot te bouwen met de
FormFlow klassen. Aan de hand van een definitie van een klasse met publieke
eigenschappen en attributen daarop bouwt de SDK zelf de dialogen op die de bot
kan doen. Simpele bots kunnen hiermee in een mum van tijd worden gebouwd. Het
dialogen framework binnen de SDK, daarentegen, geeft de ontwikkelaar de
volledige vrijheid voor het opbouwen van conversaties die een gebruiker kan
hebben met een Bot. Een krachtig type dialoog is de Language Understanding
Intelligence Service (LUIS) dialog. Hiermee kun je je bot uitrusten met
geavanceerde natuurlijke taal herkenning functionaliteiten, door middel van het
opzetten van een (getraind) LUIS model. Zo kan je gebruiker in natuurlijke taal
met de Bot praten en kan de Bot acties ondernemen op de doelstellingen van de
gebruiker die hij registreert..
Scenario
Dit gedeelte beschrijft een mogelijke toepassing waarbij het
Bot framework kan worden ingezet. Het scenario is het indienen van declaraties
bij de werkgever.
Nadat de kanalen bekend zijn gemaakt bij de eindgebruiker,
kiest deze er een en begint de conversatie met de Bot met als doel een
declaratie in te dienen. Dit zou via een skype gesprek kunnen, of andere chat
clients. In dit voorbeeld zijn screenshots genomen van de Bot Framework
Emulator. Een andere chat client heeft natuurlijk een andere GUI maar het
algemene principe van een gesprek zal hetzelfde zijn.
Bot scenario
Figuur 1: Initiatie van de conversatie
Figuur 2: Vervolg conversatie
Figuur 3: Samenvatting conversatie door Bot voor de
verzending naar Back-end
Figuur 4: Terugkoppeling resultaat
Deze voorbeeldconversatie is gemaakt met een daadwerkelijke
implementatie van een Microsoft Bot Framework Bot. Om het voorbeeld duidelijk
en bondig te houden zijn er enkele simplificaties toegepast, zoals: Er kan maar
1 declaratie per conversatie worden ingediend, alle antwoorden zijn van type
string inclusief de link naar de scan van de factuur (ipv mogelijkheid tot
uploaden bestand).
Figuur 5: Standaard options van
FormFlow Bot
|
Discussie
Het Microsoft Bot Framework maakt het makkelijk om je
gebruikers een alternatieve manier van interactie aan te bieden via bestaande
applicaties, wat, bij een goed design, in veel gevallen een zeer gebruikersvriendelijke
ervaring oplevert. Het feit dat je Bot binnen het App Services platform wordt
opgeleverd maakt deze direct zeer schaalbaar, onderhoudbaar en uitbreidbaar. Overigens
is een Bot een MVC WebApp of Node.JS API en kan dus overal gehost worden. De
combinatie met de natuurlijke taal services in LUIS en andere machine learning
services in Azure maakt dat de Bots die ontwikkeld worden met het framework
zeer intuitief kunnen werken en er met groot gebruikersgemak functionaliteiten
kunnen worden aangeroepen. Daarnaast zijn Logic Apps een mooie kandidaat als
back-end voor de Bots, zodat deze allerlei acties, logging en terugkoppeling
makkelijk configureerbaar en beheersbaar maken.
Het aantal beschikbare kanalen is al zeer groot en zal nog
groter worden, WhatsApp zou op termijn een goede toevoeging zijn maar die
infrastructuur is nog niet klaar voor directe koppeling met Framework Bots.
Uitdagingen die ik nog zie met het Framework hebben te maken
met authenticatie en autorisatie. Hoe gaat het worden ingeregeld dat de
identiteit van een gebruiker over kanalen heen kan worden vastgesteld. Dit,
zodat er één profiel van een gebruiker kan worden opgebouwd bijvoorbeeld om
daarna interacties met de Bot mee te versnellen. Dit zou een nog verdere
verbetering van de gebruikerservaring betekenen.
Echter is authorisatie voor het gebruik van de Bot voor een
gebruiker of groep gebruikers sowieso iets waarvoor richtlijnen en best
practices nog moeten worden bepaald. Wanneer een kanaal is opengesteld kan in
principe iedereen via dat kanaal de bot aanspreken, en daarmee de back-end
services. Op dit moment is dit alleen te voorkomen door verdere authenticatie
en authorisatie in te bouwen in de Bot. Dit vermindert de gebruikersvriendelijkheid
van de bot en maakt de development van een Bot complexer en architectonisch
minder losgekoppeld.
Dit maakt dat het Bot framework op dit moment alleen
geschikt is voor publieke toepassingen, voor zakelijke toepassingen binnen een
organisatie zullen er nog goede autorisatie oplossingen moeten worden bedacht.
No comments:
Post a Comment