"Bots are the new apps." Microsoft CEO Satya Nadella
Acum câțiva ani m-am lăsat de făcut aplicații pentru dispozitive mobile din simplul motiv că acest segment a devenit supraaglomerat.
Cu un cost per install de la $0.35 până la $3.35 pentru o aplicație care o dădea-i gratuită era destul de greu să-ți întorci banii în 3 luni (statistic un utilizator ține instalată o aplicație la el în dispozitivul mobil).
Cu timpul, oamenii au început a păstra aplicațiile rețelelor sociale și chat-urile. Deși unele rețele sociale permit să faci aplicații pentru ele, de obicei sunt doar pentru desktop. Însă în chat-uri integrarea e universală și este mult mai simplă. Prin boți!
Ce este un bot?
E o aplicație care rulează undeva pe un server și nu are o interacțiune directă cu utilizatorul. Comunică doar cu serverele sistemului de chat. Botul nu se instalează, trebuie doar să începi să comunici cu un anumit @nickname din acel sistem de comunicare.
Sistemele de comunicare, skype, facebook messange, kik, telegram… toate au metode de interacțiune cu boți și practic iau asupra lor toată comunicarea cu oamenii. Rămâne doar să primiți mesajele, să le procesați și să dați un răspuns.
Începând cu anul trecut s-a început o bătălie între companiile mari pentru crearea de platforme pentru boți. Iată câteva: Microsoft cu luis.ai, IBM cu Watson, Amazon cu Lex, Google cu api.ai, Facebook cu wit.ai, Apple cu SiriKit.
Pe șleau spun, aceste platforme nu sunt așa de inteligente precum declară ei pe site. Practic totul să reduce la crearea de către programator a unei liste de Intent-uri și Entities. Apoi, sistemul inteligent să poată din textul pe care îl scrie omul să aleagă un intent deja definit de programator, să separe o entitate și să dea răspunsul corespunzător.
O altă formă de comunicare este restricționarea răspunsurilor, unde persoana poate culege doar unele cuvinte sau apăsa unele butoane direct în chat.
O problemă și mai mare este că ele lucrează doar cu engleza sau cu limbile de circulație largă. Nu și cu româna. 🙁
Nu v-ați plictisit? Vă invit să citiți cum am construit bot-ul pentru privesc.eu care comunică în română și răspunde la orice întrebare despre serviciile privesc.eu.
După o lungă cercetare a platformelor de boți am dat peste http://dev.botframework.com/ . O platformă care combină orice chat cu orice platformă de inteligență artificială. Practic face toată munca de integrare a botului care îl faci cu mai toate sistemele de comunicare populare: SMS, Email, Skype, Telegram, Facebook Messanger, Slack…. Îți rămâne să faci logica și să apelezi după caz prin REST la alte servicii de procesare a informației textual cum ar fi: LUIS, Wit.AI, Watson, Lex…
Pentru a răspunde la întrebările frecvente la privesc.eu am apelat la serviciul https://qnamaker.ai de la Microsoft. Face un lucru simplu. Îi dai paginile cu FAQ-uri pentru a-și construi cu baza de date, încearcă să înțeleagă ce întrebare îi adresează omul și caută răspunsul corect din lista de răspunsuri. Nu-ți generează el un răspuns, doar îți returnează cel mai probabil răspuns conform întrebării adresate.
După cum și am spus mai sus, aceste sisteme lucrează doar cu limba engleză. Am tradus în engleză cele 3 pagini de FAQ de pe privesc.eu și le-am dat la procesare. Am mai adăugat și unele întrebări care nu erau în FAQ. Am dat Train & Publish. Buh.. Gata de utilizare.
Codul acestui bot e destul de simplu și practic se reduce la chemarea altor servicii de procesare a informației.
Prin REST, facem un apel la acest serviciu cu întrebarea în engleză și el ne întoarce în engleză răspunsul corect.
Deh.. moldovenii noștri nu prea știu engleza. Pentru a rezolva problema am utilizat https://cloud.google.com/translate/docs/. Traduce întrebarea din română în engleză, apoi întreb de qnamaker și apoi traduc răspunsul în română. Done.
Acest bot e destul de prostuț, nu prea înțelege întrebările. Doar 30 de întrebări-răspunsuri am în baza de date. Rezolvarea e simplă, vă rog pe voi să întrebați orice, botul îți va răspunde aiureli însă eu voi urmări logurile și voi adăuga răspunsurile.
Din botframework îmi rămâne să conectez cu sistemele de comunicare dorite, se face foarte simplu. De obicei se reduce la preluarea unor key-uri din sistemele de chat și salvarea lor în botframework.