Chatbotit ovat hieman yksinkertaistaen ainoastaan uusi tapa toteuttaa sovelluksen käyttöliittymä. Toki varsin mielenkiintoinen sellainen. Erilaiset chat-kanavat ovat nykyään laajasti käytettyjä sekä työssä että vapaa-ajalla.

Mikä olisikaan luontevampaa kuin tarjota käyttäjälle palveluja tässä modernissa kanavassa?

Microsoftin Bot Frameworkin tarjoama FormFlow on mielekiintoinen tuttavuus Sen avulla chatbotilla voi toteuttaa lomakkeen. Kiehtova ajatus mikäli ratkaisu on jo olemassa ja lomake on luontevaa tarjota myös chat-palvelussa.

Tässä kirjoituksessa käydään läpi yksinkertaisen lomakkeen korvaaminen chatbotilla.

Esimerkki – Käyttöoikeuden tilaaminen sovellukseen x

Kuvitellaan ratkaisu jolla tilataan käyttöoikeudet sovellukseen x:

  • käyttäjä täyttää (Forms:lla toteutetun) tilauslomakkeen
  • lomake tallennetaan Flow:n avulla SharePoint-listalle
  • käynnistyy hyväksymisprosessi
  • hyväksymisen jälkeen käyttäjälle luodaan ohjelmallisesti tunnus sovellukseen.

Karkeasti ottaen näin.

Näyttökuva 2018-1-6 kello 13.25.07

Kaikki on valmista. Suurin työ on ollut hyväksymistyönkulun viilaamisessa sekä automaattisessa tunnuksen luonnissa.

Mitä jos tarjoaisimme mahdollisuuden tilata käyttöoikeuden myös chatissa?

Näyttökuva 2018-1-6 kello 13.39.34

Voimme hyödyntää jo tehtyä ratkaisua. Mikä parasta, chatbot -lomake on kevyt toteuttaa.

Chatbotin luominen Azureen

Aivan aluksi luodaan Azureen Bot-palvelu. Tämä on helpointa tehdä valmista mallipohjaa (template) käyttäen.

Klikataan Azure portaalissa New, haetaan sanalla ’bot’ ja valitaan tulosjoukosta Web App Bot.

create bot 1.png

Aloitetaan Web App Bot:in luonti Create-painikkeella.

create bot 2.png

Nimetään palvelu ja käydään vaihtamassa Bot template lomakkeeksi (Form). Valmiit mallit löytyvät myös FAQ-pohjaiselle botille (Question and Answer) sekä luonnollista kieltä ymmärtävälle botille (LUIS, Language understanding).

create bot 3.png

Lopuksi luodaan palvelu (Create). Valmiin Web App Bot:in hallintanäkymässä on kaksi mielenkiintoista kohtaa:

  • Build
  • Test in Web Chat

Buildin takaa pääsee käsiksi botin koodeihin. Testiosiossa käännettyä bottia voi kokeilla livenä (kuva alla).

create bot 4.png

Luotu template pitää sisällään esimerkkibotin, jonka avulla voi tilata voileivän täytteineen. Koodiin pääsee helpoiten tutustumaan online editorin avulla (Build -> Open online code editor).

create bot 5.png

Botin varsinainen toteutus löytyy kokonaisuudessaan Sandwich.cs -tiedostosta. SandwichOrder -luokassa (1) kerrotaan mitkä leivän ominaisuudet käyttäjältä kysytään ja missä järjestyksessä. Käytännössä nämä ovat muuttujia.

Valintojen vaihtoehdot määritellään ylempänä (2) listoina (enum).

create bot 6.png

Oman lomakebotin toteuttaminen

Takaisin alkuperäiseen aiheeseen. Esimerkissämme käyttäjätunnuksen tilaaminen on toteutettu yksinkertaisella Forms-lomakkeella.

create bot 7

Lomake on yksinkertainen myös botti-koodina. Vaihdetaan valintalistat halutuiksi (käyttäjän rooli ja alue, kuvassa kohta 1), jonka jälkeen määritellään mitä tietoja käyttäjältä kysytään (kuvan kohta 2).

create bot 9.png

Kerättävät tiedot ovat:

  • Käyttäjän rooli (valinta)
  • Käyttäjän sähköposti (tekstikenttä)
  • Alue jolla käyttäjä toimii (valinta)
  • Päivä jolloin tunnus astuu voimaan (päivämäärä)
  • Lisätiedot (vapaaehtoinen tekstikenttä)

FormFlow generoi kysymykset muuttujien nimistä. Kysymysteksteihin voi vaikuttaa Describe ja Prompt -määrityksillä.

  • Describe  kuvaa muuttujan sisältöä tarkemmin. Bot käyttää kuvaustekstiä kysymyksessä muuttujan nimen sijasta.
  • Prompt:illa voi määritellä esitettävän kysymyksen tarkalleen.

Pattern -määrityksellä voi kuvata minkä muotoinen syöte hyväksytään (sähköpostiosoite, puhelinnumero, hetu jne). Tähän ei esimerkiksi Forms tarjoa mitään työkalua.

Optional -määreellä voidaan kertoa ettei kenttään ole pakko antaa arvoa.

Lomakkeemme on valmis. Se pitää vielä kääntää siirtymällä konsoliin ja antamalla Build.cmd -komento.

create bot 8.png

Miltä bot-lomake näyttää?

Lomaketta voi testata Azuren tarjoamassa web chatissa. Tällä kertaa julkaistaan botti suoraan Teams-palveluun. Tämä tehdään Channels-osiossa.

create bot 10.png

Pienen viiveen jälkeen botti alkaa vastaamaan Teamsissa. Tunnuksen tilaaminen botilta näyttää tältä.

create bot 11
create-bot-12.png
create bot 13

Käyttäjä voi tehdä valintoja (esim. alue) kätevästi klikkaamalla.

Entä jos vahingossa kirjoittaa sähköpostiosoitteen väärin? Kirjoittamalla Back pääsee syöttämään uudelleen edellisen ”kentän” arvon. FormFlow tarjoaa kaikki perustoiminnallisuudet mitä lomakkeen tietojen onnistuneeseen syöttämiseen tarvitaan. Ne löytyvät help-komennolla.

create bot 14.png

Mikäli käyttäjä huomaa lopussa syöttäneensä jonkun tiedon väärin, hän vastaa kieltävästi viimeiseen kysymykseen. Botti opastaa korjaamaan pieleen mennen kentän.

create bot 15.pngcreate bot 16.png

Kohtuullinen suoritus viidellätoista rivillä omaa koodia.

Lopuksi botti pitää kytkeä olemassa olevaan ratkaisuun. Tämä onnistuu esimerkiksi luomalla uuden http-kutsulla käynnistyvän työnkulun Flow-palveluun. Botti välittää keräämänsä tiedot eteenpäin kutsumalla sitä. Säästetään se kotitehtäväksi.

Yhteenveto

Yksinkertaisten chatbottien toteuttaminen ei ole hankalaa. Todellisten bottiratkaisujen toteuttaminen ei kuitenkaan ole aivan näin yksinkertaista. Yhden sovelluksen tunnuksien tilaamisen sijaan mielekkäämpää on rakentaa täysverinen IT Support -botti, jonka avulla käyttäjä

  • voi tilata mitä tahansa organisaatiossa käytössä olevia tunnuksia, lisenssejä, laitteita, AD-ryhmiä jne. Itselleen tai vaikka alihankkijoille. Yksi botti jonka avulla voisi täyttää minkä tahansa IT-organisaation perinteisen lomakkeen.
  • saa tietoa käyttökatkoista ja häiriöistä. Ihan vain kysymällä. ”Hei, onko meidän sähköposti just nyt hajalla?”
  • voi kysyä yleisiä kysymyksiä ja saisi niihin vastaukset. Tyyliin ”Miten tilaan uuden puhelimen?”
  • voi avata keikan mikäli botti ei osaa auttaa

HR support -botti on toinen kiinnostava ajatus:

  • ”Montako lomapäivää minulla on jäljellä?”
  • ”Miten pitää toimia jos sairastuu?”
  • ”Onko meillä käytössä liikuntaseteleitä tai vastaavaa?”
  • ”Milloin joulukuun palkat maksetaan?”
  • ”Kuka meillä on pääluottamusmies?”
  • ”Haluaisin pitää viikon palkatonta vapaata”

Näitä toteutuksia varten saa kaivaa Visual Studion esille ja yhdistää erilaisia FormFlow, LUIS ja QnA -ratkaisuja yhdeksi botiksi.

Suurin este bottien hyödyntämisessä ei ole niiden vaatima työmäärä vaan organisaatiossa käytettävä kieli. Microsoftin BotFrameworkin kielen ymmärtämiseen liittyvät herkut kun eivät tue suomea.