Bots y Comercio electrónico conversacional desde el punto de vista informático

Tiempo de lectura aproximado: 8 minutos

 

Todo el mundo habla de los bots, en twitter por ejemplo cada pocos segundos alguien comenta algo sobre los bots: https://twitter.com/search?f=tweets&vertical=default&q=bots&src=tyah , además se comenta en los más afamados sitios de tecnología. También se habla del comercio conversacional, en twitter: https://twitter.com/hashtag/convcomm?s=09

¿Qué es? ¿Cómo funciona? voy a hacer una breve introducción y a tratar de darle un enfoque desde el punto de vista informático, no solo hablar de las posibilidades de futuro y así tratar de hablar de cómo funcionan por dentro sin que des un cabezazo sobre el teclado del aburrimiento.

¿Qué es un bot?

La traducción literal de bot es “larva de moscardón” 🙂 pero evidentemente no es de lo que habla todo el mundo. Normalmente se habla de “bot” como aféresis de “robot” y no es más que un pequeño programa informático que intenta imitar el comportamiento humano.

Partiendo de esta base, bots hay de muchos tipos, creo que los dos más extendidos son los “asistentes virtuales” y los “conversacionales”, veamos un poco de historia y después veremos en que consiste cada uno y como funcionan.

Algo de historia

microsoft-word-paperclipLos bots han existido de siempre, no es cosa moderna. ¿Quién no recuerda el fastidioso clip de Word? No estaba muy conseguido pues era bastante molesto, aunque seguramente serviría a mucha gente, creo que salía cada vez que quería usar una característica que no habías usado antes, ¡eso es un bot!, un asistente virtual, programado para reproducir un tutorial cada vez que usas algo nuevo. El concepto en si es bueno, y además lo hacen de forma simpática, sin embargo no caló mucho en los usuarios de Microsoft.

¡Y tanto que han existido!, puedo remontarme mucho más atrás en el tiempo y ya recuerdo alguna especie de bot conversacional que se usaba en la linea de comandos… ¡si! en MSDOS, esa pantalla negra con letras blancas en la que todo se basa en escribir. De esto podría hacer unos 20 años o más. Así que el concepto de bot tal y como se habla hoy, es muy antiguo, entonces, ¿porque ahora se está haciendo famoso?

Si a alguien le interesa aquí: http://www.caad.es/jarel/aventuras.html se pueden descargar algunos “bots” para MSDOS, convertidos en juegos, “aventuras”. También aquí hay un juego online: http://iplayif.com/?story=http://caad.es/jarel/games2/domador.z5

¿Por qué ahora se están haciendo famosos?

Creo que los bots de siempre han tenido un potencial grandísimo que nadie ha sabido explotar (o mejor dicho, aún le queda mucho por explotar) y es ahora cuando se está tratando de conseguir.

Además “los grandes” ya llevan unos años popularizándolos:

siriSIRI

El bot de Apple, creo que su principal motivo de “éxito” (muy cuestionable) es que viene integrado en su sistema, en los iphones e ipad para “llamarla” basta con dejar pulsado el botón central y usando la voz le puedes preguntar lo que quieras en una especie de conversación, es decir, es un bot conversacional pensado como asistente virtual, luego está que te responda lo que quieres.

now-cardGoogle Now

Este es el bot de Google, aunque claro está Google no iba a hacer algo parecido y es un asistente virtual “proactivo”. Como SIRI, está integrado en el sistema (al menos en las versiones limpias de Android. Este bot tiene un apartado en el que van apareciendo cosas que considera interesantes para ti, algunas lo serán y otras no, te permite hacer que no te vuelva a ofrecer cierta información porque no te interesa. De las cosas más curiosas es que te avisa cuando tienes que salir para el aeropuerto porque tienes un vuelo, si este se ha retrasado y la puerta de embarque.

Por otro lado también puedes hablarle en cualquier momento y pedirle lo que quieras diciendo las palabras “Ok google” y a continuación lo que quieras saber. No es conversacional aunque tiene tintes de ello pues en algunas respuestas el bot responde con voz, en otras muchas simplemente te da los resultados de búsqueda.

Cortan+Android+fullbleed-jtCortana

El bot de Microsoft, intentando mejorar las virtudes de su “clip” :), este no lo he probado mucho, pero parece ser muy al estilo de SIRI. Algo que destacar es que viene preinstalado con Windows 10, lo cual puede hacer que se use bastante, no en mi caso desde luego :).

PD. Lo acabo de volver a activar para probarlo bien 🙂

Si todos esto tienen un éxito relativo, y ya existen desde hace tiempo, porque los últimos meses todo el mundo empieza a hablar de ellos como una revolución.

La revolución: Comercio electrónico conversacional

Todo lo que se está hablando sobre la nueva revolución es por mezclar los bots, con algo que si que está revolucionando nuestras vidas en los últimos años… EL CHAT.

Así pues están surgiendo todo tipo de ideas y apps ya funcionando con millones de fans haciendo uso de esta mezcla CHAT + BOT … Los Chat bot. Como hablar por chat es algo que ya tenemos asumido y todos sabemos como usar, podríamos conversar con un bot para obtener lo que queremos, algo así como SIRI mezclado con Google Now.

Por ejemplo en el futuro podríamos tener en nuestro listado de chat un bot que nos devuelva noticias y podamos preguntarle sobre algo que queremos saber, esto ya lo hace la app Quartz. Como decía Eduardo Manchón en su post, ¿Por qué no usar un bot para rellenar formularios?… bien pensado puede ser muy natural el responder preguntas en una línea de chat en lugar de rellenar una serie de casillas. Podría ser algo así:

li67l

Las posibilidades son infinitas, aunque podría pasar como pasa con muchas cosas en tecnología, que acaba por quedarse en nada o en poco, o por el contrario que todo sea vía Chat.

Por lo pronto los principales chats (menos Whatsapp por ahora) incorporan bots en sus apps: Slack (fué de los primeros), Facebook, Telegram, Line, Kik, etc… Otros como WeChat intentan ya hacer que sirva para todo.

Aquí te pongo un ejemplo de como podría pedirse comida a burger king en un bot de Facebook:

Ahora vamos con el apartado principal que motivó la escritura de este post, ¿Cómo funciona?

¿Cómo funciona un bot?

Como hemos dicho antes tenemos dos tipos principalmente, los que te ofrecen información proactivamente y los conversacionales.

Los que ofrecen informaciòn y resultados de búsqueda como Google Now son bastante “simples”. Tiene parametrizados una serie de servicios que ofrecen a sus usuarios en el horario que el bot considera que les es de más utilidad. Por ejemplo, Google Now te dice cuanto vas a tardar en llegar al trabajo con el tráfico actual, y te lo “dice” pocos minutos antes de que salgas para el trabajo, el como sabe google cuando vas y donde a tu trabajo es otro tema, pero el bot se ocupa de mostrártelo. Igual con el resto de servicios que disponen (que irán aumentando se supone): resultados deportivos, meteorología, acciones y últimamente las últimas entradas de las páginas que más visitas.

Solo hablo de Google now porque es el que más conozco pero el 99% se basan en la misma filosofía informática.

Por otro lado Google Now también tiene un micrófono que al pulsarlo escucha lo que dices, y lo transcribe, SIRI y Cortana igual.

Una vez tienen la frase de voz en texto (no siempre aciertan :)) buscan en la frase “keywords”, es decir, palabras clave que le hagan saber al bot que servicio estamos pidiendo, si no encuentra ninguna, Google simplemente da los resultados de búsqueda, igual que si buscásemos la frase en Google, casi siempre poco relevante.

Me gustaría hacer entender lo complicado que resulta esto en cuanto a programación, porque cada uno dice (o escribe) las cosas a su manera y el bot debe tratar de entender lo mismo dicho de una forma o de otra, por ejemplo:

Queremos saber la predicción meteorológica en nuestra localidad. Podemos decir o escribir todas estas opciones que el bot debería tratar igual:

“predicción meteorológica para málaga” “temperatura en málaga” “meteorología para hoy en málaga”

Lo que los bots tratarán de hacer es identificar palabras clave en la frase enviada, por ejemplo en el segundo ejemplo:

temperatura en málaga

La palabra clave principal es temperatura, lo cual le dice al bot que estás pidiéndole la predicción de temperatura. A continuación ha identificado el keyword málaga que es una población, por lo que el bot une los dos conceptos y entiende que quieres la predicción en málaga.

Todo esto para este caso concreto, imagina tener en cuenta la forma de escribir de cada uno, con sus errores o sus expresiones y el bot debería tratar de identificarlo, y estamos hablando solo de España, temperatura, Español… imaginaros todo esto en el mundo, lenguajes, dialectos y 100 o 1000 servicios. En definitiva requiere de una base de datos gigantesca que agrupe conceptos y los asigne a servicios. En esto se podría programar al bot para que esté preparado para responder a cualquier cosa. Por ejemplo SIRI responde de formas “casi humana” cuando se le pregunta por temas “humanos” como por ejemplo “de que color son tus ojos” responde “se ve que no tengo ojos” el bot está preparado para responder a estas preguntas explícitamente, con estos fríos datos espero no romper las ilusiones de nadie 🙂 pero todo… cada respuesta “original” está programada de antemano.

Así pues, este tipo sería una interface con un cuadro donde el usuario pueda escribir lo que quiera. Una base de datos enorme con todas las keywords que sean necesarias y una inteligencia que sea capaz de buscar estas keys en la base de datos y obtener el servicio al cual están relacionadas estas keywords.

Conversación con opciones

Otra opción de “conversar” es simplemente que el sistema solo te deje escribir cuando debas hacerlo y que te pregunte solo keywords, por ejemplo te pegunta “¿Eres hombre o mujer?”, en lugar de dejarte escribir lo que quieras, solo te aparecen dos botones: uno hombre y otro mujer, sino podrías escribir “libélula” y el bot tendría que estar preparado para responder a eso…

De esta forma, informáticamente solo tienes que tener un “hilo” lógico de proceso, por ejemplo, “hilo de registro”: el bot comienza a explicarte que te vas a registrar y en el código pasamos por una serie de puntos en los que espera la respuesta del usuario la almacena y pasa al siguiente punto. El usuario podría terminar el proceso en cualquier momento porque no le apetece registrarse, en el código tendríamos que salir de estos pasos. Se me ocurre que si el usuario no quiere continuar, el bot podría recordarle al usuario que si le escribe “quiero registrarme” puede volver a hacerlo.

Así que este sería un nuevo servicio “registro”. En el código en primer lugar el bot tiene que estar preparado para recibir esta keyword: “registro”, “registrarme” …. Cuando la captura comprueba si el usuario ya está registrado, si lo está podría sacar un mensaje gracioso como … “Pero si ya te tengo localizado! no tienes que volver a hacerlo”, si no lo está puede volver a entrar en la serie de puntos que comentábamos antes para que el usuario quede registrado. Repito… posibilidades infinitas.

En Shopping Leeks no nos quedamos fuera

En Shopping Leeks ya estoy haciendo pruebas con respecto a esto como ves en esta demo:

 

En una interface de Chat el bot va describiendo al usuario lo que tiene que ir rellenando en cada momento. Con lo que no nos perdemos en una página con varios campos a rellenar que ya nos aburren, simplemente nos dejamos llevar por lo que estamos acostumbrados a hacer: Conversar.

Por ahora no lo vamos a integrar pero quizás si en un futuro próximo.

El proceso es tan fácil que es casi imposible que el usuario se pierda, aun así… si lo hace, nosotros manualmente podemos “parar el bot”, tomar el control y terminar el registro del usuario.

Conclusión

Como ves pinta bien todo lo que se puede pensar sobre los bots, a veces tengo un brain storming personal 😛 pensando en las posibilidades. Pienso que habrá que ir viendo como actúan los usuarios para saber si esto va a funcionar de verdad… como siempre algo puede ser fantástico, pero si no se usa no sirve para nada.

Comparte!