Planeta Chatbot visita las oficinas de Microsoft en Madrid para entrevistar a Alejandro Campos Magencio, Microsoft Technical Evangelist.
Este desarrollador cuenta con más de quince años dentro de la multinacional y es todo un experto en materia de chatbots, inteligencia artificial y NLP. Por ello, hemos acudido a entrevistarle, para que nos cuente cuáles son las herramientas que Microsoft ha creado para el desarrollo de chatbots con Inteligencia Artificial y preguntarle su opinión sobre las perspectivas de futuro de este sector en auge.
Tabla de contenidos
1. Antes de entrar en materia, ¿qué es un Chatbot?
Antes de definir un chatbot, habría que definir qué es un bot, en sí mismo. Un bot tal cual lo entendemos es un sistema informático que automatiza tareas, osea quiero que realice una acción y la hace. Ahora entre ese bot que lleva a cabo cosas tareas que le pedimos y un chatbot hay un mundo. El chatbot sería un bot con el que podemos conversar en lenguaje natural. Entonces entre el extremo del “le doy click a un botón y hace algo” al “quiero que hagas algo” hay todo un mundo. A pesar de esto, habitualmente, cuando hablamos de bot la gente está pensando internamente en los chatbots. Pero no todos los bots son chatbots.
2. ¿Por qué consideras que un chatbot debe estar dotado de al menos algo de Inteligencia Artificial?
Justo por lo que acabo de comentar, si hablamos de chatbot como tal sí debería de tenerla para poder entender ese lenguaje natural con el que se expresa el usuario. No todos los chatbots tienen que tener inteligencia artificial. Un chatbot sí por lo que decíamos antes de “entiende el lenguaje natural”. Eso sí que requiere técnicas de inteligencia artificial para poder entender la intención que tiene la persona que le está hablando.
3. ¿Qué tipos de bot necesitarían esto?
Hay bots muy sencillos, como podría ser por ejemplo un bot que nos avisa de cosas a una hora específica, es decir, un bot que pone alarmas. En un caso como este no te haría ni falta usar lenguaje natural, de hecho, hay bots que funcionan solo con botones, tú haces click en el botón y hacen la tarea que tienen que hacer, no tienes que hablarles de ninguna manera. En estos casos, la inteligencia artificial no te hace falta para nada. Pero si lo que quieres es decirle las frases como se las dirías a un amigo, “oye que a las tres de la tarde puedes ponerme la alarma y avisarme de que viene mi madre…”, entonces sí que la necesitarás.
Además, pensamos en los chatbots y en la inteligencia artificial para el tema del lenguaje natural, pero un bot podría hacer más cosas. Podría entender imágenes que yo le paso para que me diga lo que hay en esa imagen, podría hablar yo al bot… En conclusión, podemos mezclar muchas técnicas de Inteligencia Artificial en un bot, no solo es escribirle y que entienda lo que le he dicho, sino que entienda las imágenes que le paso, mi voz… Aunque todo ello dependerá de cuál sea el objetivo del bot.
4. ¿Qué es el Bot Framework y qué ventajas tiene?
Nosotros en Microsoft hemos creado el Bot Framework, que es el conjunto de herramientas que tenemos los desarrolladores para poder crear estos bots. Al final, la idea de un bot no es más que una capa de diálogo por encima de los servicios que ya tenemos. Por ejemplo, imaginemos que tengo una empresa que proporciona determinados servicios de venta de entradas y, a día de hoy, la gente puede comprar esas entradas a través de una web o de una app móvil. Tanto la web como la app cuentan ya con unos servicios por detrás soportándolos. En este contexto, el bot sería otra nueva manera de consumir y ofrecer estos servicios existentes de una manera más natural, a través de canales con los que antes no contábamos como Skype, Facebook Messenger… a los que ya estamos acostumbrados. Por eso mismo hago de nuevo hincapié:
Lo que te proporciona Bot Framework es la posibilidad de que tú crees esa capa de diálogo sobre tus servicios existentes para poder comunicarte con esos servicios a través de esos canales conocidos como Facebook, Skype, Telegram…
5. ¿De qué partes se compone el Bot framework?
El Bot Framework está compuesto de diferentes herramientas para desarrolladores. En primer lugar, tenemos el Bot Builder SDK que es con lo que construimos los desarrolladores esa capa de diálogo, es lo que nos facilita la creación de nuestro código para actuar en consecuencia en función de lo que nos indica el usuario. Por ejemplo, si hemos entendido que el usuario quiere que se le dé el tiempo que va a hacer, pues cómo enlazarlo con mi servicio que da la información del tiempo. Entonces, con esta herramienta podemos crear toda esa capa de diálogo de una manera bastante simple.
Una vez construido el bot con esta herramienta, tu publicarías el bot en la nube, en Azure por ejemplo. Y lo publicarías como otro servicio web más normal y corriente, que luego tendrá que conectar con los diferentes canales. Es precisamente en este punto dónde entra en juego la siguiente pieza del Bot Framework que es el Bot Connector. Esta herramienta me permite poder conectar ese bot que yo he publicado en la nube con los diferentes canales que yo quiera. Es precisamente una de las claves de esta herramienta, que te permite conectar con todos los canales que soportan bots, como Skype, Facebook Messenger, Telegram, Slack, etc., incluso email, una página web, una app, el buscador Bing… Recientemente hemos incorporado un nuevo canal que permite conectar con Cortana, mediante lo que llamamos Cortana Skills, que extienden las funcionalidades que es capaz de hacer ese asistente personal para que, si Cortana no es capaz de hacerlo, pueda decirle a tu bot que lo haga.
Y la última pieza de este Bot Framework es el Bot Directory. Esta herramienta te permite encontrar los bots que necesites, algo así como una tienda de aplicaciones donde tengo todos los bots para poder encontrarlos de forma sencilla. Lo puedes publicar en el Bot Directory para que la gente pueda encontrarlo rápidamente.
6. Entendemos que con un mismo código puedes desplegar el chatbot en diversos canales y el Bot Framework lo hace de forma automática -ahorrándote esfuerzos técnicos- pero, si por cuestiones de diseño quiero realizar modificaciones en uno de los canales, ¿es posible?
Efectivamente, es posible. Como bien apuntabas la clave del Bot Framework es que con un mismo código puedo estar en diferentes canales. Independientemente de que cada canal tenga su manera de hacer chatbots, con esta herramienta lo creas solo una vez en el lenguaje de programación que te guste y lo conectas con los canales que quieras. Pero, efectivamente, ¿qué pasa cuando hay canales que tienen diferentes capacidades? El Bot Framework adapta al canal la salida. Pero aun así existen canales que tienen una serie de características que el resto no tienen. Pongamos un ejemplo. Si es un canal de email, en él puedo ponerle el “asunto”, cosa que no tiene sentido en ningún otro canal. En este punto, con el Bot Framework serías capaz de detectar en tu código desde qué canal te está escribiendo el usuario y a partir de ahí personalizar la experiencia.
El objetivo final es que la experiencia sea casi la misma para todos, pero si hay una funcionalidad extra y quieres implementarla para mejorar la experiencia de usuario, pues también es posible.
Los pagos son un buena ejemplo de esta realidad ¿no?
Efectivamente, de hecho, lo soportan muy poquitas plantaformas. Por ello, tendrás que detectar en qué canal está, cuál es su ID de usuario en ese canal, el idioma que habla…
6. ¿Qué es LUIS y cuáles son las claves de servicios que ofrece?
Antes de nada, aclarar que LUIS no es el nombre de una persona, es Language Understanding Intelligence Service. Este servicio de Microsoftnos va a permitir precisamente hacer esa parte de entender lo que nos está diciendo el usuario. Es un servicio cognitivo de los muchos que tenemos en Microsoft, especializado en el procesamiento del lenguaje natural, y es un servicio que tú vas a entrenar con una serie de frases y tú vas a indicarle que significan para ti esas frases. Te pongo un ejemplo. Yo estoy creando un bot, una aplicación o una web, porque LUIS se puede utilizar en cualquier plataforma, con el que quiero procesar noticias sobre el tiempo. Llegados a este punto, yo entreno a LUIS con diferentes frases, con el objetivo de poder estructurar la respuesta que se dará a los usuarios. Por ejemplo:
- ¿Qué tiempo va a hacer mañana?
- ¿Qué tiempo hará hoy en Madrid?
- ¿Necesitaré un abrigo?
- ¿Me llevo abanico?
En resumen, le vas pasando frases que para ti significan que te están pidiendo el tiempo. El servicio no requiere conocimiento técnico alguno ni ser un experto en procesamiento de lenguaje natural, es decir, que prácticamente cualquier persona que sepa leer y escribir podría entrenar a LUIS, si sabe cómo se hace. De este modo entrenas a LUIS diciéndole además qué información es la que más te interesa: el lugar, el día…
7. ¿Se hace más inteligente gracias a que terceros utilicen este sistema o esto es ciencia ficción?
No, no es ciencia ficción, es completamente cierto. El entrenamiento de LUIS se basa en todo el conocimiento adquirido por nuestro asistente digital Cortana, utilizado en millones y millones de dispositivos, y en el que nosotros mismos le proporcionamos, y cuanto más se utiliza mejor se comporta. La evolución que ha tenido en estos dos últimos años ha sido notable. Por ejemplo, antes tenía alguna limitación reconociendo fechas especificadas de cierta manera, pero hace poco hemos sacado una nueva versión con la que entiende fechas que le digamos de las maneras más rocambolescas. Todos estos servicios van mejorando, entienden más cosas, cada vez saben más de lenguaje porque cada vez se usan más.
8. Adentrémonos en otros conceptos,¿qué es la Inteligencia Perceptual? ¿Qué beneficios se pueden obtener de ella?
Cuando hablamos de Inteligencia Perceptual nos referimos a una rama de la Inteligencia Artificial que consiste en que las máquinas entiendan lo que está pasando a su alrededor, es decir, lo que está haciendo el ser humano que las está utilizando, y que tengan así información del contexto. Entonces, esta información de contexto puede venirle de varias maneras. Nosotros tenemos más de una treintena de servicios cognitivos relacionados con temas de visión, de habla, de lenguaje, de conocimiento y de búsqueda.
En temas de visión, por ejemplo, el objetivo es que la máquina sea capaz de ver lo que hay en una imagen. Tú le envías una imagen y él te indica si hay un paisaje, hay una persona, un animal, la edad de la persona que aparece, si está haciendo deporte… Al final, te indican el sexo de la persona, la edad, las emociones y un sinfín de datos que puedes integrar.
Lo que está claro es que hasta ahora la tecnología no tenía la potencia suficiente, pero ahora podemos hacer cosas que hasta hace poco parecían de ciencia ficción. Aunque todavía queda camino por recorrer, y todo lo que tenemos ahora puede mejorar infinito con nuevos servicios que ahora mismo nos parecen impensables.
9. ¿Qué ventajas ofrece esta tecnología para las empresas?
De cara a las empresas lo que estamos viendo desde Microsoft es que todo este tema de los bots en sí, es una manera diferente de comunicarte con los usuarios mucho más cercana a ellos, más personal de lo que es una web sin más. La gente está muy acostumbrada a chatear con los amigos en un montón de canales distintos, y esa cercanía que tienen esos canales no las tienes en otros habitualmente. Entonces, el que la gente pueda hablar a tu bot casi como si estuviera hablando a un amigo, está haciendo que la experiencia para mucha gente sea más agradable. Es un toque más humano, aunque no sea humano al 100%.
Al margen de esta nueva forma de comunicarse con los clientes, las empresas lo que están viendo es el ahorro de costes que supone. Al final, en vez de tener miles de teleoperadores, con un bot puedes quitarte una gran cantidad de las peticiones que surgen y solo usar a agentes para aquellos casos en los que fuera necesario. Además, puedes ir descubriendo cuales son las dudas más comunes, redirigir eficientemente a los usuarios…
10. ¿Cuándo crees que los chatbots formarán parte de nuestro día a día?
La realidad es que ya están en muchos ámbitos de nuestra vida, lo que pasa es que en muchas ocasiones no hemos sido ni conscientes. Sin embargo, hasta que sean de uso masivo y común, creo que estamos empezando. Podría decirte que de aquí a cinco años esperamos que todo o casi todo pase por aquí, es decir, que la experiencia con las máquinas sea completamente distinta a la actual. Esto es lo que llamamos nosotros Conversaciones como Plataforma: es un futuro muy cercano en el que los bots serán las nuevas aplicaciones, y los asistentes digitales serán como meta-aplicaciones, como si fueran el nuevo navegador web de ahora, donde el lenguaje humano será el nuevo interfaz de usuario y en el que todas nuestras interacciones con las máquinas estarán dotadas de inteligencia.
Un futuro en el que yo hablo con mi asistente digital. El asistente digital me atiende, sino sabe algo se lo pide a un bot, al mismo tiempo si el bot necesita algo me lo puede pedir a mi directamente o puede hablar con otro bot que tenga la información.