Parlem de Bots i xat bots
Què són els bots?
Un bot, també anomenat chatbot o chat bot, és un programa informàtic que utilitza tècniques d'intel·ligència artificial, més o menys avançada, que li permeten interactuar amb éssers humans i especialment executar tasques i respondre preguntes plantejades per mitjà de llenguatge natural o simplificacions d’aquest.
Les formes per interactuar amb els bots poden ser moltes. La més habitual és integrant-los dins de xats de conversa, però també poden tenir Apps mòbils específiques o formar part d’una altra aplicació principal.
Quins tipus de bots hi ha?
Hi pot haver moltes maneres de classificar els bots, per la seva intel·ligència, per la interfície amb l’usuari, per les tecnologies que integra, per les plataformes on es pot trobar, etc. Nosaltres creiem que una forma útil de classificar els chatbots és la que fa Mindmeld on contrasta la “intel·ligència” del bot amb el tipus d’interfície d’usuari que té.
Així doncs distingim quatre tipus d’interfície d’usuari segons la seva intel·ligència:
- de navegació per clics
- per reconeixement de paraules clau
- per coincidència de frases estructurades i finalment
- de llenguatge natural
Com sempre, aquesta classificació és estricta, però en la realitat ens trobem amb bots que combinen varis tipus d’interfície. És el cas dels bots que combinen l’ús de paraules clau (keywords) per iniciar accions, però que ofereixen navegació per click per culminar-les. També hi ha bots que indistintament permeten a l’usuari interactuar escrivint les paraules clau o clicant botons dels menús contextuals.
Bots de navegació per clics
En aquest tipus de bots l’usuari interactua amb el bot a través de menús contextuals de manera que la conversa consisteix en iteracions de oferir un menú d’opcions a l’usuari i esperar que aquest en seleccioni una.
La interacció amb aquest tipus de bots, tot i ser la més rudimentària és prou fluïda, i permet dur a terme accions no complexes de forma ràpida i precisa.
Bots que reconeixen paraules clau
En aquest cas l’usuari escriu unes paraules clau que ja sap que el bot reconeix i el bot respon amb accions.
La conversa en aquest cas és més real ja que s’assembla al que podria ser un xat amb una altra persona, tot i que els continguts dels missatges de l’usuari han de ser molt rudimentaris.
Bots que reconeixen frases estructurades
Aquests bots són capaços d’entendre no només paraules clau si no frases senceres que segueixin una sintaxis específica (reconeguda pel bot).
Un bot que reconeix frases estructurades en el text que entra l’usuari és més avançat que els dos anteriors perquè permet a l’usuari expressar-se amb un llenguatge molt més proper i obert. Però alhora pot ser el més frustrant de tots ja que la complexitat del llenguatge humà és molt alta. Sovint petits detalls d’una frase amb un significat molt clar i evident per l’usuari fan que sigui irreconeixible pel bot.
Un element clau que emergeix a partir d’aquests tipus de bots més intel·ligents és la detecció del context en el que està parlant l’usuari. Aquest context és vital per interpretar el que estem dient i els humans tenim molta facilitat per saltar del context actual a un de més o menys proper sense perdre el sentit de la conversa. Per exemple, quan en mig d’una reserva d’un vol a Ginebra dic que després necessitaré un hotel a Montreal. A un bot, això se l’hi pot fer extremadament difícil de gestionar. Aquest és també una altra font de frustració pels humans.
Bots que reconeixen el llenguatge natural
Els primers que ens venen al cap són el Siri d’Apple, l’Alexa en l’Echo d’Amazon, el Google Now o Cortana de Microsoft.
Es tracta dels bots més propers al llenguatge humà, dissenyats per seguir diàlegs humans de veritat, sense cap tipus de restriccions sobre estructures o formes. En aquests casos l’usuari realment pot dur a terme converses fluides amb comoditat.
La gran inversió de recursos, ja siguin logístics com pel què fa a Enginyers, fa que aquest tipus de bots només estiguin a l’abast de grans corporacions. Tot i això, res no fa que aquestes els posin a l’abast del gran públic ja sigui gratuïtament o pagant.
En quins casos poden ser útils els bots?
Bots per call centers
La primera idea que sorgeix a nivell empresarial és crear bots per substituir els assistents dels “call centers”, és a dir bots d’atenció al client. Si una empresa aconsegueix redirigir gran part de les consultes i/o gestions dels seus clients a un bot, l’estalvi de personal pot ser significatiu. Normalment l’èxit d’aquests bots és inversament proporcional a la complexitat de les tasques que han de dur a terme, a més complexes menys ús acostuma a tenir el bot.
Un ús similar és el de facilitar la consulta de FAQs.
Bots per a gestionar grups
Un altre ús típic dels bots és per ajudar en la gestió dels grups de xarxes socials. Són especialment utilitzats en programes com Telegram o Slack.
Bots per consultar informació
Quan en un moment determinat volem saber, diguem, la previsió del temps, només cal que obrim el bot de Poncho a Telegram. De la mateixa manera que l’hi preguntaríem a un amic l’hi preguntem al bot Poncho i ens respondrà amb la previsió actual a curt o mig termini. També podrem configurar que ens vagi enviant previsions periòdicament.
De la mateixa manera existeixen bots informatius de borsa i molts altres àmbits.
Bots per automatitzar tasques
Una altra utilitat dels bots és per ajudar-nos a automatitzar tasques. Sobretot en empreses tecnològiques tenim exemples de robots com Hubot dissenyats directament per executar scripts de forma automàtica sota la comanda dels enginyers de Git Hub. Però també a nivell personal podem utilitzar el bot IFTTT per automatitzar les tasques més banals del nostre dia a dia digital o relacionar-nos amb els nostres aparells IoT.
Bots per assessorar
H&M disposa d’un bot que ajuda a seleccionar “outfits”. El que fa és suggerir roba i l’usuari només ha d’indicar si l’hi agrada o no, segons indiqui el bot la guarda entre la roba preferida, per després poder-la comprar, o la descarta i aprèn quina nova roba suggerir.
Bots per jugar
Els més veterans recordareu aquells jocs de línia de comandes consistents en aventures conversacionals com per exemple La Aventura Original doncs bé, existeixen bots de jocs en la mateixa línia com per exemple Escape the haunted forest.
També existeixen bots pels jocs casual més habituals de puzzle i preguntes tipus trivial.
Plataformes que suporten bots
Si bé un bot pot estar integrat directament dins una App mòbil o en una web, el més habitual és donar-los d’alta a les plataformes de xarxa social que els suporten. D’aquesta manera el bot és molt més proper a l’usuari que no cal ni que obri una App ni que vagi a una web si no que el pot trobar dins la seva xarxa social habitual.
La gran excepció com ja sabreu és que, a hores d’ara, Whatsapp no suporta la integració de bots.
La resta de plataformes però sí que els suporten, com per exemple Facebook Messenger, Telegram, Slack, Kick, i molts més. Segons el públic objectiu voldrem integrar el nostre bot a una plataforma o a vàries.
Serveis d’Intel·ligència Artificial per a bots
A l’hora de desenvolupar un bot, no ho fem programant-lo des de zero. Aprofitem els serveis que ja existeixen a la web i que ens ajuden en dos àmbits. D’una banda solucionen molta part de l’arquitectura del bot i de l’altra ens faciliten solucions de machine learning ja entrenada per a contexts en concret.
Podem citar, per exemple, el conegut Watson d’IBM, o el recentment adquirit per Google Dialog Flow.
En quin llenguatge de programació cal desenvolupar un bot?
Un bot no deixa de ser res més que un programa informàtic hostatjat en un servidor i que pot presentar una o més interfícies d’usuari (dins d’un site, una app, etc.) o integrar-se amb altres sistemes via WS.
Així doncs qualsevol llenguatge de programació amb capacitats d’entrada/sortida pot servir. Diguem que dels populars qualsevol, Ruby, Python, Go, fins i tot php. Però també és cert que l’ús de JavaScript per implementar bots s’està popularitzant.