NeuraBot – Anatomija jednog support chatbota

Sviđa vam se članak?

Preporučite ga prijateljima i kolegama putem društvenih mreža!

Mogućnosti chatbot-ova rastu iz dana u dan. Njihova popularnosti povezana je s eksplozijom društvenih mreža i aplikacija za komunikaciju (kao što su Messenger, Telegram, Viber ili Slack). Namjena im je prerasla bazičnu komunikacijsku formu te se koriste u profesionalnoj korisničkoj podršci, edukaciji najmlađih pa sve do asistencije u brzoj kupnji.

Trebate vožnju Uberom? Naručitu ju uz pomoć chatbota! Naručite hranu, kupite ulaznice za kino ili pak platite komunalije. Korištenje ovih virtualnih asistenata može doista biti “potpuno”, pogotovo kada chatbot-ovi omogućuju instant plaćanje kupljenih proizvoda (putem Facebook Messenger platforme) pružajući smislen i integriran korisnički doživljaj.

Takvo konverzacijsko iskustvo (Conversational User eXperience iliti CUX) je kompleksna tema uz puno povezanih dijelova. Opisat ćemo praktičnu produkciju vezanu uz izradu malog support chatbota koristeći Microsoft Azure Bot Framework, WordPress REST API i Facebook Messenger platformu. Ime mu je NeuraBot, a pomaže Neuralab ekipi da lakše zaprima upite prema korisničkoj podršci i odgovara na učestala pitanja.

(tldr: više o NeuraBotu možete saznati iz Svijeta Aplikacija, intervju počinje oko desete minute videa)

Anatomija

Postavljanje Azure Bot Frameworka bio je prvi korak pri stvaranju NeuraBot-a. Postoje i druga okruženja za razvoj umjetne inteligencije kao što su AWS Lex, Facebookov Wit.AI ili Google-ova Dialogflow platforma no odlučili smo koristiti Azure zbog činjenice da Microsoft u ovom trenutku ulaže najviše resursa u vlastito istraživanje i razvoj (R&D).

U našem slučaju, cilj je bio kreirati chatbot koji može odgovoriti na većinu klasičnih pitanja i da može zaprimiti korisnički upit. Za to smo koristili Azure QNAmaker modul. Ova vrsta chatbot-a može profunkcionirati jednostavnim postavljanjem u Azure sučelju i povezivanjem s Facebook Page Messenger računom.

Ohrabrujuća vijest je to da je za postavljanje i izradu takve vrste chatbot-a potrebno 0 sati programerskog iskustva. Azure “mozak” je izgrađen i opisan izravno u samom sučelju Azure-a, dok je implementacija CUX-a na druge komunikacijske kanale (Slack, Viber, Skype…) prilično jednostavna avantura koja se sastoji od svega nekoliko klikova.

Microsoft Bot Framework je prilično dokumentirano okruženje, a njegove kompletne značajke uključuju analizu korisničke akcije, obradu namjere, obradu prirodnog jezika i funkcije strojnog automatiziranog učenja (predviđanja, optimizaciju, procjene i analize uzoraka ponašanja).

Kako chatbot “uči”?

Setovi podataka iz kojih chatbot uči su česta pitanja i odgovori koja definiramo kroz internu bazu podataka. Kod unosa i implementacije pitanja, potrebno je imati na umu da su korisnici koji komuniciraju s robotom – ljudi. Odgovori koje chatbot daje, trebali bi biti kratki i precizni, kako bi imitirali normalne (ljudske) obrasce razgovora. Nije preporučljivo unositi dugačke i autistične odgovore jer takva vrsta komunikacije nije prikladna u chatu. Ukratko, bolje je podijeliti jedan konceptualni odgovor u više mikro odgovora koji neće stvoriti šum u komunikaciji.

WordPress i njegov REST API modul tehnološki predstavlja botovu bazu znanja, odnosno memoriju kojom se sustav koristi pri konstruiranju odgovora. U njoj su sadržane sve informacije koje bot posjeduje u obliku pitanja i odgovora (FAQ Custom Post Type). Mogli bi protumačiti da se ovaj dio naziva “ekspertna baza” jer sam sustav uključuje odgovore na pitanja kao što su “What are Neuralab working hours” ili “Do you design your own fonts?”-  Bot u roku od milisekunde može odgovoriti na takva jednostavna pitanja, a ukoliko ne pronađe odgovor, tada predloži korisniku da kontaktira “pravog” Neuralab kolegu koji će onda preuzeti cijeli razgovor i odgovoriti na sva pitanja. Takva interakcija se zove Facebook Handover protocol.

Unos pitanja i odgovora može se obaviti ručno, odnosno izravno u Azure QNAmakeru, no taj je proces sklon pogreškama i nedostaje mu intuitivnosti. Zato je WordPress bio kvalitetniji odabir zbog snažnog intuitivnog korisničkog sučelja za upravljanje prilagođenim sadržajem kao što je FAQ. Prebacivanje sadržaja obrađenog u WordPressu prema Azure QNAmaker-u moguće je putem dva API-ja – WordPress REST API + Microsoft QNAmaker API.

Uši i usta chatbota

U cijeloj anatomiji, Facebook Messenger predstavlja NeuraBot-ove uši i usta. To je komunikacijski kanal kroz koji korisnici mogu razgovarati s chatbotom i slati različite upite. Također, osim Messengera, Azure omogućava integraciju bota na Skype, Viber, Slack i druge komunikacijske platforme. Ne brinite, istu funkcionalnost ima i Google Dialogflow.

Ovakva anatomija nam pomaže u ostvarivanju zadanih ciljeva:

  • Izraditi chatbot koristeći postojeća stabilna i dokumentirana platformska rješenja
  • Postići da chatbot bude koristan i sposoban odgovoriti na većinu tipičnih korisničkih upita te da administrator može lako dodavati nova pitanja
  • Razgovor se treba odvijati tamo gdje su korisnici – Facebook Messenger, Skype, Viber…
  • Chatbot bi trebao biti podrška našem timu u odgovaranju na uobičajena pitanja korisnika i klijenata te smanjiti vrijeme utrošeno na takav oblik (repetitivne) komunikacije

Budući razvoj

U procesu izrade nije bila potrebna implementacija glomaznih #BigData ili #AI alata. Naravno, cijeli projekt možete podignuti i na viši nivo, a ovo su neke tehnike s kojima možete poboljšati funkcionalnosti vašeg chatbota:

  • Korištenje LUIS alata za izradu složenijih konverzacijskih interakcija – trenutni QNAmaker je prilično jednostavna tehnologija i koristili smo ga samo u svrhu prikazivanja trenutačnih mogućnosti izrade chatbotova.  LUIS je prikladnija tehnologija zbog svoje sofisticiranosti i sposobnosti obrade složenih razgovora. Tehnologija prepoznavanja jezika je preporučljiva jer je ljudski razgovor složen i temeljen na kontekstu. Isto tako, usko je povezana s chatbotovim razumijevanjem korisnikovog upita. Uvijek postoji šansa da pitanje “nema smisla”, te da chatbot neće biti u mogućnosti dati ispravan odgovor direktno iz baze znanja.
  • Kroz određeno vrijeme, potrebno je analizirati postojeću komunikaciju i identificirati probleme koje je potrebno ukloniti. To uključuje i više razmišljanja o preciznom copywritingu i kratkim bot2user odgovorima. Ovo je prilično važna tema i nalazi se izvan programerske domene. Preporučljivo je da samo osobe s iskustvom iz područja komunikacije sudjeluju u izradi poruka, odnosno chatbot odgovora. To podrazumijeva copywritere, vlasnike brandova, iskusnije djelatnike u korisničkoj podršci, prodajne predstavnike ili druge članove tima koji su u čestoj komunikaciji s korisnicima. Ovo je nužno zbog izazova da se razvije chatbot koji može oponašati ljudsku interakciju i razgovor, odnosno davati odgovore kao (čim normalniji :)) čovjek. Osim toga, to uključuje botovu osobnost koja je implementirana u njegovim odgovorima kako bi on komunicirao na donekle uvjerljiv i ljudski način.
  • Izrada obrazaca složenih korisničkih tokova (traženje sažetaka od klijenta, postavljanje pitanja vezanih uz dizajn, određivanje troškova projekta i sl.) Opće poslovne teme, odnosno najčešća pitanja korisnika i klijenata trebala bi  na kvalitetan način biti implementirana u botovu lingvističku komponentu. Takve informacije često su subjektivne i specifične za svakog korisnika i njegov upit. S obzirom na činjenicu da se neki odgovori ne moraju nužno odnositi na sve korisnike, poželjno ih je implementirati u najčešća pitanja i spremiti u bazu znanja. Odgovori na takva pitanja moraju biti precizni i sažeti. Svakako se savjetuje podijeliti ih na više različitih pitanja i odgovora kako bi se smanjila zasićenost u komunikacijskom procesu.

Javite se ukoliko su vam ovakve teme interesantne (pogotovo teme vezane uz WordPress REST API). Neuralab kontinuirano traži PHP programere za rad na web i sličnim eCommerce rješenjima… Možda vam NeuraBot skuha i kavu :)