Blogindlæg -

(Chat)Bot’erne kommer

af Lars Haupt-Hansen, udviklingschef hos Itera

På Microsoft Ignite 2017 fulgte jeg en del indlæg om chat-bots. Man hører mere og mere om bots, og de dukker op flere og flere steder (Den sidste jeg så, er en fejlfindings-bot i Azure Portalen).

Microsofts bud på dette hedder BotFramework. Det består af et Open Source starter-projekt (https://github.com/microsoft/BotBuilder) og en portal (https://botframework.com ), som gør det nemt at integrere bot’en i f.eks. Skype eller Facebook Messenger.

Men at skrive en bot, der forstår sætninger som et menneske ville skrive, er komplekst, og Microsofts bud på at forstå naturligt sprog hedder LUIS (Language Understanding Intelligent Service). Microsoft har indset, at ikke alle er komfortable ved at sende informationer forbi USA, så de har også installeret det i deres data-center i Amsterdam (West Europe). Man kan tilgå portalen på https://eu.luis.ai/home.

Her kan man lære LUIS, hvilke intentioner (Intents) ens model skal kunne kunne forstå. Her er et billede af de (få) ting min model (og min Bot, som bruger modellen) kan forstå lige nu:

Det smarte er her, at det, brugeren skriver, bliver gemt, så man kan forbedre modellen som tiden går. Her er for eksempel de ting, som den matchede, men ikke var helt sikre på:

Microsoft har lavet et Open Source projekt, som laver en fantastisk integration mellem BotFrameworket og LUIS (du kan finde det her https://github.com/richdizz/microsoft-graph-bot-quickstart-luis). 

Det skaber en god abstraktion, så man i Bot’en kan koncentrere sig om at hente de informationer, som brugeren faktisk beder om (ud fra de Intents der kommer tilbage fra LUIS).

Desværre forstår LUIS ikke dansk, og da jeg spurgte teamet hos Microsoft fortalte de, at det danske ikke er på roadmappet endnu. Heldigvis har Microsoft også et API til oversættelse, så jeg tænkte, at det kunne man bare bruge som mellemled. Jeg var ikke helt klar til at opgive ovennævnte, så jeg har lavet en lille udvidelse, der sender forespørgslen igennem oversættelses API’et inden den sendes til LUIS:

Du finder koden her: https://github.com/larshaupthansen/BotBuilder.Luis.Translator

Og det fungerer overraskende godt – primært fordi, at LUIS jo benytter machine learning til at gætte, hvilken Intent(ion) brugeren har. Så det gør ikke så meget, hvis oversættelsen ikke sidder lige i skabet (for eksempel fandt den ”hvad er mit sidste forbrug” (som blev oversat til ”what is my final consumption” og dermed gav en score på .72), selvom oversættelsen ikke er helt korrekt.

Så jeg har derefter lavet en PoC på en kundeservice-Bot. Det eneste den forstår lige nu er ”find mit forbrug”, som returnerer en graf over et imaginært forbrug, og ”vis min sidste faktura”, som returnerer en (næsten) tom PDF:

Du kan se demo-botten på https://iteradk-botdemo.azurewebsites.net/ eller via Skype på https://join.skype.com/bot/0ccb3a86-75c5-4477-ab7a-39a2cad1672f.

Emner

  • Computere, IT-teknologi, software

Kategorier

  • chatbot
  • bot
  • it
  • innovation
  • microsoft
  • luis
  • open source