Netokracija

NeuraBot – Anatomija jednog support chatbota

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).

https://www.youtube.com/watch?v=Bp33vjtE0cw

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:

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:

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 🙂