Actualmente estamos viviendo una auténtica revolución en el mundo de los bots. Y es que, desde que se empezó a hablar más de ellos, su número ha ido creciendo vertiginosamente. Son, cada vez más, los que se ven como una apuesta de futuro. Son algo que ha venido a definir un nuevo modelo de interacción entre las personas y las máquinas. En este artículo se van explicar las bases de las técnicas que están haciendo. También, por qué los chatbots se están convirtiendo en una plataforma conversacional tan innovadora y con tantas perspectivas de futuro.
LOS CHATBOTS Y SUS FORMAS DE ENTENDER
Lo primero es entender cómo los chatbots capturan, procesan e interpretan lo que le dice una persona. Usarán esta información para generar una respuesta. Para que un chatbot entienda lo que se le dice, existen dos técnicas:
Coincidencia de patrones
Clasificación de intenciones
Así, ante la siguiente frase “Me gustaría volar de Madrid a Dublín, el 14 de agosto”, y teniendo en cuenta que es un chatbot de viajes:
Coincidencia de patrones:
Con la técnica de coincidencia de patrones, sería necesaria una lista de los posibles patrones de entrada, por ejemplo: Me gustaría volar de <CIUDAD> a <CIUDAD> el <FECHA> Este tipo de técnica, más inteligible para los humanos, tiene el problema de que tiene que construirse manualmente y de forma estática. Es decir, se tienen que ir definiendo cada una de las posibilidades que se puedan dar.
Clasificación de intenciones
En la clasificación de intenciones se utilizan técnicas como el NLP (Natural Language Processing o Procesado de Lenguaje Natural) para interpretar los mensajes del usuario y detectar su intención. A la hora de trabajar con este tipo de técnica es importante tener claro que:
Los intents o “intenciones”: Son las piedras angulares de cualquier sistema de NLP, y sirven captar la intención implícita que hay en las frases del usuario. De esta forma, se puede relacionar lo que va diciendo con lo que el chatbot tiene que hacer. Y se corresponderían con los verbos de la frase.
Las entities o “entidades: Son los conceptos específicos de un dominio (nombre, lugar, fecha, profesión, etc.) y sirven obtener una información adicional que complementa al intent. Se corresponderían con los sustantivos de la frase. Normalmente pueden definirse intents y entities propias o usar las que ya vienen definidas en el sistema. La cantidad y variedad de las predefinidas dependerá de lo que haya establecido y de quién construya el sistema de NLP
Las actions o” acciones”: Serían los pasos que seguirá el chatbot, una vez se ha identificado la intención de la frase entrante. Cada intent tiene definidas sus propias acciones.
El “contexto de la conversación” o context: Se genera siempre que se inicia una conversación y sirve para ir estableciendo las circunstancias y valores que se dan en torno a la misma. De modo que una misma frase podrá gestionarse diferentes formas. Es decir, que su significado e intención podrá variar en función de las preferencias del usuario, su ubicación geográfica, el tema de la conversación o lo que se haya hablado con anterioridad en la misma. El subcontexto, o contexto que se generan a partir del contexto principal sirve para gestionar, de forma más concreta, la información que se crea o elimina durante la conversación. Por ejemplo, se puede usar la existencia de un subcontexto como requisito para poder usar un intent determinado.
Teniendo en cuenta este esquema, cuando un chatbot recibe una frase del usuario, buscará el intent que mejor se ajusta a la misma y teniendo en cuenta la información contenida en la misma, las entities identificadas y si hay definido un subcontexto (depende de la plataforma que se use). Tras determinar el intent se ejecutarán una serie de acciones (“actions”) para dar una respuesta al usuario.
Entonces, en base a la frase anterior: “Me gustaría volar de Madrid a Dublín, el 14 de agosto”. Un chatbot con NLP vería que habría un intent (Buscar Vuelo) y tres entities, dos de localización (Madrid y Dublín) y una de fecha (14 de agosto). Una vez identificado el intent, se ejecutaría un proceso de búsqueda de vuelos, teniendo en cuenta la información proporcionada por las entidades.
LOS CHATBOTS Y SUS DIFERENTES FORMAS DE RESPONDER
Una vez que el chatbot ha entendido lo que le dice el usuario, generará una respuesta en base al contexto de la conversación y la información que haya identificado en la misma. Los sistemas de generación respuestas pueden ser:
Estáticos: Los más sencillos. Las respuestas construyen en base a una serie de respuestas predefinidas que son elegidas y completadas según la información proporcionada por el usuario, por ejemplo: Hay un vuelo a las <HORA> que sale desde <AEROPUERTO> Donde las variables <HORA> y <AEROPUERTO> son generadas por el chatbot, teniendo en cuenta la información proporcionada. La elección de la respuesta correcta se hace en base a sistemas de expresiones regulares.
Dinámicos: Similares a los anteriores pero la elección de la respuesta se hace teniendo en cuenta técnicas basadas en algoritmos de Machine Learning. Estos construyen una respuesta en base al intent detectado. Estos dos sistemas son los más sencillos de implementar y los menos propensos a cometer errores gramaticales. No obstante, son incapaces de manejar casuísticas para los que no han sido pensados o entrenados previamente.
Generativos: Son aquellos que generan sus propias respuestas, sin necesidad de contar con un conjunto de respuestas predefinidas. Así, permiten establecer conversaciones más parecidas a las humanas, pero con una mayor propensión a los errores gramaticales. Se construyen usando técnicas de Deep Learning y son más difíciles de entrenar. A veces son necesarios millones de ejemplos para obtener unos buenos resultados. Aunque aún están en fase de investigación, tienen un futuro prometedor.
Un aspecto importante a aclarar en el mundo de los bots es que:
Los Bot Frameworks son las plataformas para la creación y alojamiento de bots
Las Bot Platforms son los entornos y aplicaciones donde estos pueden ser desplegados para interactuar con los usuarios u otros sistemas. Por ejemplo, aplicaciones de mensajería, páginas web y otros tipos de aplicaciones.
Actualmente hay una gran cantidad de Bot Frameworks que permiten el desarrollo de chatbots con diferentes niveles de complejidad, funcionalidades y capacidad de integración. Antes de elegir una Bot Framework es muy importante tener claro el tipo de chatbot que se quiere construir:
Sencillo y orientado a un fin concreto: comprar una entrada, pedir comida u obtener una información determinada.
Un chatbot conversacional, capaz de mantener una conversación, entendiendo y recordando lo que se dice en la misma. Estos chatbots se suelen utilizar con fines de entretenimiento y también para reemplazar los sistemas de FAQ (Frequently Asked Questions), automatizándolos y haciéndolos más dinámicos.
O algo más complejo, como un chatbot que ayude a los usuarios a realizar tareas concretas, manteniendo una conversación y recordando lo que se dice. Su desarrollo es más laborioso, pero ofrecen más posibilidades y una mejor experiencia de usuario.
Los Bot Frameworks se agrupan en tres familias:
visuales
conversacionales
programables
PLATAFORMAS VISUALES
Son plataformas orientadas a usuarios no técnicos. En ellas se pueden construir chatbots sin tener conocimientos de programación y/o de IA (Inteligencia Artificial). La idea es que el usuario puede centrarse en el diseño sin tener que preocuparse por los detalles técnicos. Son plataformas fáciles de aprender, ideales para construir chatbots sencillos, orientados a la realización de una función concreta. No obstante, no son adecuadas para el desarrollo de chatbots complejos, ya que no permiten la implementación de sistemas conversacionales complejos. Además, la integración con APIs y otros sistemas externos que aporten de funcionalidades extra está más limitada. Dentro este grupo estarían Chatfuel, ManyChat, Octane.ai y Motion.ai, entre otras. Todas son bastante similares, aunque hay diferencias en cuanto a madurez, usabilidad de la interfaz y potencia de las tecnologías de IA que incorporan.
PLATAFORMAS CONVERSACIONALES
El objetivo principal de estas plataformas es el de desarrollar chatbots conversacionales, capaces de mantener una conversación con un usuario sin que tenga que haber un objetivo específico. Así, son adecuadas para la construir chatbots de entretenimiento, publicidad, e-learning o educación. Algunas academias y universidades los usan para enseñanza e investigación. Estás plataformas usan lenguajes específicos como AIML (Artificial Intelligence Markup Language) para construir modelos de interacción, sistemas de programación y servicios cognitivos como el NLP (Natural Language Processing).
Un buen representante de este tipo de plataformas es Pandorabots. La plataforma de Pandorabots permite el alojamiento de bots, el procesado de lenguaje natural (NLP) y el uso de entornos de programación, tales como: Java, Node.js, Python, Ruby, PHP y Go.
PLATAFORMAS PROGRAMABLES
Su curva de aprendizaje es más lenta, porque requieren conocimientos técnicos: programación y técnicas de IA. Todas ellas se caracterizan por:
Permitir el uso de diferentes entornos de programación.
Incorporar sistemas de NLP avanzados.
Dar una amplia gama de posibilidades a la hora interactuar con otros servicios: servicios cognitivos, bases de datos, modelos de Machine Learning y Deep Learning, etc.
Así, podemos ver que hay un buen número de posibilidades para construir Chatbots, y los mejor es ponerse con ello y ver cuál se adapta mejor a nuestras posibilidades. Como siempre he dicho, ¡todo es ponerse! ????
Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.
Tal y como vimos en un post anterior (“Construyendo Chatbots”), las plataformas de construcción de chatbots (Bot frameworks), pueden agruparse en tres grandes familias:
Visuales
Conversaciones
Programables
Cada uno de ellos, tiene sus pros y sus contras, y su mayor o menor idoneidad va depender tanto del objetivo y funcionalidad del chatbot que se quiere construir como de los recursos disponibles. En este artículo, nos vamos a centrar en las plataformas programables. Es decir, aquellas que requieren más conocimientos técnicos, pero permiten desde la construcción de chatbots sencillos hasta otros más avanzados, capaces de incorporar funcionalidades más completas. Hay bastantes plataformas programables. No obstante, aquí centraremos en las que nosotros hemos manejado desde que iniciamos nuestra andadura en el mundo del desarrollo de Chatbots. Por cierto, si tienes duda con algunos de los conceptos que mencionamos aquí, te recomendamos que, antes de seguir, te leas este otro artículo: “¿Cómo nos entienden los Chatbots?”
Plataforma de desarrollo de chatbots, adquirida por Google en septiembre de 2016. En Dialogflow pueden crearse chatbots o agents con un NLP (Natural Language Processing). Este permite el uso de intents (intenciones) y entities (entidades), además de la gestión dinámica de subcontextos, en base a los intents detectados. Así, la existencia de un/os determinado/s subcontexto/s, puede/n ser clave/s para la detección de otros intents. Por ejemplo, si un usuario dice “Me gustaría encargar una hamburguesa”, el sistema detectaría el intent “Encargar”. Una vez que este indica el tipo y tamaño de la hamburguesa, acciones asociadas a este intent, se generaría el subcontexto “Hamburguesa_Seleccionada”. Si posteriormente, el usuario dijera “¿Cuál es el tiempo de entrega?”, el chatbot solo podría decirlo porque la existencia del sub-contexto “Hamburguesa_Seleccionada”, daría acceso al otro intent “Obtener_Informacion_Pedido”, que contiene dicha información. Si no existiera el subcontexto, no podría tener acceso a este intent y la información que contiene. Otro aspecto interesante de esta plataforma es que permite la definición de roles en las entidades e indicar si estás son o no obligatorias. Así en la frase “Quiero ir de Madrid a Bilbao el próximo 11 de julio”, se podría establecer que la primera ciudad es la de salida y la segunda es la de llegada. Algunos de los entornos de desarrollo disponibles en Dialogflow son: Node.js, .NET, C++, Python, Ruby, PHP, Java, Android, Xamarin e iOs. Permite el despliegue de chatbots en muchas de las aplicaciones de mensajería, VoIP, en páginas web, asistentes virtuales y aplicaciones propias. Algunas de ellas son: Actions de Google, Web, Slack, Facebook Messenger, Skype, Cisco Spark, Kik, Line, Telegram, Amazon Alexa, Cortana, Twilio y Twitter. Otros aspectos importantes de esta plataforma son que:
Incorpora una herramienta de análisis y monitorización
Permite la integración con otros sistemas (APIs, Bases de datos, servicios cognitivos, etc), a través de webhook.
Y se pueden configurar algunos aspectos del algoritmo de Machine Learning (ML) que utiliza para hacer el NLP.
La calidad de la documentación es muy buena y hay un buen número de ejemplos de desarrollo de Chatbots.
Se creó en abril de 2016 y se integra muy bien con la plataforma Wit.ai (adquirida por Facebook a principios de 2015) para el procesamiento de lenguaje natural. En ella pueden desarrollarse chatbots con Node.js, Android, iOS, Unity y PHP. Para ellos se han creado un buen número de funcionalidades, entre ellas una buena integración con los elementos de su red social. Solo permite el despliegue de chatbots en el Facebook Messenger. Permite el NLP a través del uso de intents y entities, e incorpora las llamadas stories (historias), elementos clave para definir el comportamiento del chatbot. Cada story es un ejemplo de una conversación o conjunto de intenciones (intents) relacionadas (grafo de intents). A ellas se pueden ir añadiendo ramas que se activan ante la existencia o no de una determinada información en las frases entrantes. De este modo, se puede definir un flujo de conversación. También hay habilitado un mecanismo de marcadores que sirve para saltar entre intenciones e historias. También permite definir los roles de las entidades que se van creando. La integración de chatbots con sistemas externos como: APIs, Bases de datos, servicios cognitivos, etc., puede hacerse a través de los Bots sends commands, que son básicamente, llamadas a funciones. Con Facebook Analytics para hacer un seguimiento y monitorización de la actividad del chatbot. Cuenta con una buenadocumentación y un buen número de ejemplos de desarrollo de chatbots.
La plataforma de desarrollo de Microsoft consta de tres partes:
El portal de desarrollo
El Bot Connector
El Bot Directory
El portal de desarrollo permite hacer desarrollos en Node.js y .Net, frameworks de programación maduros. Son de amplio uso en la actualidad y han desarrollado muchas funcionalidades para ellos. También existen implementaciones de esta plataforma con Python. El Bot Connector es una clase que permite la multicanalidad de los chatbots. Así, a través de él, se pueden desplegar los chatbots en las principales aplicaciones de mensajería: Slack, Facebook Messenger, Kik, Line, Telegram, Twilio SMS, Twitter, etc., páginas web, aplicaciones de VoIP (Skype) email, asistentes virtuales (Cortana) y aplicaciones propias, a través del Direct Line. El Bot Directory es una colección de chatbots desarrollados con Microsoft Bot Framework. Esta plataforma también permite monitorizar, hacer analíticas (con Azure Application Insights) e integrar otros servicios como: bases de datos,servicios cognitivos deMicrosoft (para el procesamiento de texto, voz e imágenes) y las APIs de Bing para hacer búsquedas, entre otros. Para el NLP, usa el LUIS (Language Understanding Intelligent Service) de Microsoft. LUIS soporta intents, entities y features para analizar el contenido de los mensajes entrantes y definir el comportamiento del chatbot. Las features son diccionarios de palabras o expresiones que permiten que el modelo aprenda más rápido. Gracias a ellas, puede reconocer una entidad con el menor número de ejemplos posibles.
Mediante las phrase list features pueden definirse conjuntos de posibles valores de una entidad. Estos tienen que tratarse de manera idéntica. LUIS también admite los pattern features, útiles cuando una de nuestras entidades. Es, por ejemplo, un código de vuelo o un producto cuyo formato es representable mediante una expresión regular. La calidad de la documentación es buena y proporcionan un buen número de ejemplos de desarrollo de chatbots.
En el cloud de IBM la construcción de chatbot se hace mediante los Conversation Services de Watson. Los chatbots se conocen como workshop. Se pueden construir haciendo uso de varios frameworks de desarrollo: Node.js, Python, .Net, Android, iOS, etc. El NLP que usa esta basado en el uso de intents, entities y synonyms. Estos últimos son conjuntos palabras, reconocidas dentro de una misma entity. Por ejemplo: paella, pizza, bocadillo y gazpacho, estarían dentro de la entity “comida”. Otro aspecto interesante es que incluye una funcionalidad, llamada Fuzzy Matching, con la que reconocer las palabras que el usuario escribe mal. Por ejemplo: si el usuario escribe piza, el sistema sería capaz de interpretar que se refiere pizza. La herramienta de NLP de IBM también permite la creación flujos de diálogos de forma gráfica, teniendo en cuenta las intents y entities definidas, y la gestión de subcontextos, de forma similar a como se hace en Dialogflow. Permite el despliegue de chatbots en la web, dentro de aplicaciones propias (similar al Direct Line de Microsoft), Slack, Facebook Messenger y Twillo. También incluye una herramienta monitorización y analítica. Y permite la integración de otras APIs de Watson, bases de datos, etc. Tiene una buenadocumentación y se proporcionan bastantes ejemplos de desarrollo de chatbots.
Es un servicio de AWS (cloud de Amazon) para crear interfaces conversacionales o chatbots. El sistema de NLP se basa en el uso de intents y slots. Los slots son los parámetros que puede requerir un intent, aunque no son obligatorios. Por ejemplo, el intent OrderFly podría requerir slots como origen, destino y clase, teniendo cada uno de ellos un tipo, como:
Origen y destino: tendrán un listado de aeropuertos
Clase: los valores “Turista”, “Turista superior”, “Business” y “Primera”.
El usuario podrá responder con un valor de slot que incluya palabras adicionales, como “Quiero ir desde a Madrid a San Petesburgo” o “Prefiero la clase Business” y el sistema de Amazon Lex seguirá entendiendo el valor de slot integrado. Cuenta con los siguientes entornos de programación: Node.js, Python, .NET, Android, iOS, Java, Javascript, PHP y Ruby. La integración con otros servicios (DynamoDB, Amazon Cognito y APIs), se hace a través de los AWS Lambda. Estos están integrados dentro de Amazon Lex. Incluye herramientas para la monitorización y analítica, y también permite la integración del Amazon CloudWatch. Además, los chatbots creados con Amazon Lex pueden desplegarse en Facebook Messenger, Slack y Twillo. Tiene una buenadocumentación y se proporcionan algunos ejemplos de desarrollo de chatbots.
La Aspect Customer Experience Platform (CXP) es una plataforma para el diseño, implementación y despliegue de aplicaciones de para el customer service, entre los que se incluyen los chatbots. Lo hace a través de canales de comunicación como; SMS, voz, web, Skype y redes sociales como Facebook y Twitter. No permite el uso de lenguajes de programación. El diseño y desarrollo de chatbots se hace a través de una herramienta propietaria, llamada Aspect CXP Designer. Es una aplicación con bastantes posibilidades que está a medio camino entre una aplicación gráfica y un lenguaje de programación. Para sacarle el máximo partido hay que tener conocimientos de lógica de programación. Sin embargo, es importante aclarar que el grado de personalización y adaptación que permite es menor que cuando usamos un lenguaje de programación. También permite la integración de otros servicios: APIs, Bases de datos, servicios cognitivos, etc. Para el NLP usa un componente llamado Aspect NLU (Natutal Language Understanding) que permite recorrer las frases entrantes e ir identificando los elementos relevantes y su significado. Este sistema de procesamiento del lenguaje natural es diferente a los vistos anteriormente. Los anteriores se basan más en el entrenamiento de sistemas pre-entrenados y sus sistemas de interpretación se construyen a través de un sistema de reglas apoyado en una serie de bases de datos léxicas, que están alienadas entre los diferentes lenguajes y permiten a los elementos identificados funcionar en varios idiomas. Así, un mismo sistema de identificación puede ser utilizado para diferentes idiomas. Las implementaciones de NLP hechas con Aspect NLU son más robustas, pero menos flexibles y más complejas de construir. La calidad de la documentación es aceptable, los ejemplos desarrollo de chatbots con esta plataforma son escasos y su código no es accesible.
Es una plataforma de desarrollo apta tanto para desarrolladores como para aquellos que no lo son, ya que ofrece dos herramientas: Flow Bot Builder y Bot Builder IDE. La Flow Bot Buider es un editor visual, apto para usuarios sin conocimiento de programación, que permite la construcción y despliegue de chatbots sin necesidad de escribir código de programación. Permite la construcción de chatbots sencillos. El Bot Builder IDE es una herramienta de desarrollo que permite el uso de varios entornos de programación (Node.js, Python, Ruby, PHP, Java, C#, Android e iOS). Incluye herramientas de analítica y monitorización, y el NLP que trae por defecto (NLP on the fly) es sencillo y muy fácil de implementar, pero sólo permite el manejo de intents y entities. También permite hacer uso de otros motores de NLP (más completos), en especial los de Dialogflow y Wit.ai. Tanto una herramienta como la otra, permiten el despliegue de chatbots en varios canales: Facebook Messenger, SMS, Twitter, Telegram, Slack, Hipchat, Skype, Kik, Twillio, Line, Cisco Spark, Teamchat, etc. También permite la integración de servicios como APIs, Bases de datos, servicios cognitivos, etc. La calidad de la documentación es aceptable y no hay muchos ejemplos de desarrollo de chatbots con Gupshup.
HACIENDO BALANCE
A continuación, y para resumir todo lo visto anteriormente, se muestra una tabla comparativa con los datos relativos a cada una de las plataformas que se han visto.
En esta valoración se han tenido en cuenta tanto la variedad de servicios disponibles, madurez y accesibilidad, como el nivel de documentación de los mismos. Las tres plataformas de desarrollo de chatbots más recomendadas actualmente, en orden de prioridad, serían:
Como se puede ver, existe un gran número de posibilidades para crear chatbots avanzados. A partir de aquí, tendríamos que ir viendo y probando cada una de las plataformas disponibles, para ver cuál de ellas se ajusta mejor a los requerimientos de nuestro proyecto. En cualquier caso, una cosa sí está muy clara: la creatividad, capacidad de adaptación y ganas de aprender serán elementos clave. Buen desarrollo a tod@s! ????
La semana pasada, en la primera parte de este artículo, hicimos una primera aproximación al desarrollo y despliegue de chatbots, en un entorno productivo. En esta segunda parte seguiremos con ello, profundizando en aspectos más avanzados.
Construyendo modelos de Inteligencia Artificial propios
Como se ha visto, desde la puesta en marcha de los primeros chatbots, se irían recogiendo datos de las interacciones chatbot-usuario. Así, se irá creando un repositorio de datos de interacción, con diferentes niveles de estructuración.
El tratamiento y análisis de estos datos servirá para la construcción modelos de Inteligencia Artificial propios. Estos serán la base para la creación de Chatbots Neuronales; más adaptados al área de negocio de la empresa y más eficientes a la hora de resolver incidencias.
Figura 3.- Utilizando los datos para la construcción de Chatbots Neuronales
Puesta en producción de los Chatbots Neuronales
Tras la construcción y prueba de los Chatbots Neuronales, se incorporarían al ciclo de producción del Contact Center (siguiendo con el ejemplo anterior). Sustituyendo a los Chatbots Lógicos, y solventando un mayor tipo y número de incidencias, con lo que:
Se descarga más a los operadores humanos, que pueden centrarse en casos más concretos y aumentar su grado de especialización.
Mejoraría la calidad del servicio prestado.
Se crearían nuevos tipos de interacción chatbot-usuario
Figura 4.- Puesta en producción de los Chatbots Neuronales
Los nuevos tipos de interacción, aumentaría la cantidad y tipología de datos existentes en el repositorio de datos de interacción. Estos nuevos datos, juntos con los ya existentes, se usarían para construir Chatbots Generativos. Un tipo de chatbot capaz de aprender con cada una de las interacciones que va teniendo, ya sea un humano u otra máquina. Así, podrían asumir tareas más especializadas y tener cierta capacidad de improvisación, ante situaciones que no están contempladas en su base de conocimiento.
Su construcción se haría de forma similar a como se hizo con los Chatbots Neuronales; se harían prospecciones periódicas sobre el repositorio de datos y, cuando se viera que hay suficientes datos, se iniciaría la construcción de los mismos.
Figura 5.- Construcción de los Chatbots Generativos
Implementando los Chatbots Generativos
A diferencia de como se hizo con los Chatbots Neuronales, la puesta en producción de los Chatbots Generativos no implicaría la sustitución de los Chatbots Neuronales. Su despliegue se haría de forma que hicieran de intermediarios entre los operadores humanos y los Chatbots Neuronales.
Se haría así, porque sus puesta en producción y mantenimiento es más costosa, y porque su alto grado de especialización y capacidad de improvisación, los hacen ideales para esta función de intermediación.
Figura 6.- Puesta en producción de los Chatbots Generativos
Hasta aquí nuestra propuesta de como hacer un despliegue de chatbots en un entorno productivo. Como ya os comentamos, la hemos elaborado en base a la experiencia que hemos adquirido en los dos últimos años. Esperamos que os resulte interesante y os sirva para todos aquellos que estéis en ello o pensando en iniciaros en este mundo tan innovador y lleno de posibilidades.
Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.
https://datahack.es/blog/big-data/desarrollo-chatbots/En artículos anteriores hemos hablado de qué son y como nos entienden los chatbots, que plataformas pueden usarse para construirlos y cuáles de estas son las más interesantes para hacer un desarrollo avanzado de los mismos. Hecho que nos permite avanzar y adentrarnos un poco más en este mundo donde se mezcla la inteligencia artificial (IA) y la integración de sistemas.
En las siguientes líneas os haremos una propuesta, basada en la experiencia que hemos adquirido en los dos últimos años, de como realizar el desarrollo y desplieguede los chatbots en un proyecto de cierta envergadura, de forma gradual, sostenible y en mejora continua.
Mejor empezar con los Chatbots basados en reglas
Lo más óptimo es empezar con el desarrollo e implantación de chatbots de primera generación o Chatbots Lógicos. Estos funcionan con un sistema de diálogos (basado en reglas) y con una inteligencia fundamentada en la lógica, implementada en su código de programación.
Son fáciles de desarrollar, funcionales y capaces de dar servicios a través de varios canales de comunicación, lo que le hace ideales para las fases iniciales de un proyecto, en las que todavía no hay datos del comportamiento de los usuarios.
Con ellos se hará una primera aproximación a la automatización de tareas y se podrán ir recopilando datos, resultantes de la interacción estos con los usuarios, que sirvan para el desarrollo de chatbots más avanzados.
Figura 1.- Esquema de los Chatbots Lógicos en producción
Poniendo como ejemplo un Contact Center de una empresa de comercio electrónico (Figura 1), los chatbots estarían situados en el nivel 1 del mismo, atendiendo a los usuarios por varios canales e interactuando con los sistemas internos de la empresa. También serían capaces de escalar incidencias que no puedan resolver a un nivel 2, donde serían tratadas por operadores humanos.
Los datos de las interacciones chatbot-usuario, se guardarán en un repositorio de datos, por ejemplo, un data lake.
Incorporando Servicios Cognitivos de terceros
Una vez implantados, y comprobada la eficiencia de los Chatbots Lógicos, se podría dotar a los mismos de nuevas funcionalidades (Procesado de Lenguaje Natural, Reconocimiento de Voz, Detección de Imágenes), haciendo uso de servicios cognitivos de propósito general, que son proveídos por empresas como: Google, Microsoft IBM, Amazon u Otros.
Con esto se buscaría un doble objetivo: mejorar la experiencia usuario y aumentar el número y tipo de interacciones chatbot-usuario, de modo que se vayan almacenando una mayor cantidad y tipo de datos, para su posterior análisis.
Figura 2.- Incorporación de Servicios Cognitivos a los Chatbots en producción
Y hasta aquí, la entrega de esta semana. La que viene seguiremos hablando de como seguir haciendo el despliegue de chatbots avanzados, haciendo uso de los datos recopilados y creando algoritmos de Inteligencia Artificial.
Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento
El pasado jueves, 26 de abril, estuvimos hablando de chatbots. Una charla en la que vimos cuándo y cómo han surgido los bots, cuáles han sido las condiciones y qué circunstancias que han hecho que sean una de las tecnologías más solicitadas en la actualidad y con un futuro prometedor. La charla se organizó en cuatro bloques:
Introducción a los bots
En el primer bloque se introdujo el mundo de los bots, viendo aspectos tales como el momento en el que se han convertido en una tecnología emergente, su definición, historia y los tipos que hay.
Situación actual de los bots
A continuación, vimos dónde se pueden encontrar, cuál es su grado de aceptación, tanto por los usuarios como las empresas, y los cambios recientes, tecnológicos y sociales, que los han convertido en una tecnología de alta proyección y demanda.
Tecnologías para crear bots
En la tercera parte se estuvo hablando de las herramientas y tecnologías disponibles para su construcción y despliegue, viendo también su relación con otras tecnologías como el Big Data y la Inteligencia Artificial.
Nuestros chatbots
En la recta final, se estuvo hablando de los tres Chatbots que se han desarrollado en datahack, contando su funcionalidad y las tecnologías utilizadas para su desarrollo y despliegue. También hubo tiempo para hacer una demo de uno de ellos, Tivisa: un Chatbot de reglas, creado para potenciar los contenidos de una web.
Y al final...
Tras esta demo se hizo una conclusión final, en la que se vieron y comentaron aspectos acerca de su futuro prometedor. Además de ver cuáles serían los próximos pasos a seguir, tanto para los que los quieran utilizar como para los que quieran hacerlos y convertirse en uno de sus artífices.
¡Gracias a tod@s los que estuvisteis aquí, por estar y compartir un viaje tan apasionante!
Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.
datahack en el Try IT! 2017 haciendo chatbots
Como ya sabéis, datahack nos apuntamos a un bombardeo y no podíamos dejar pasar la oportunidad de participar en Try IT! 2017 con un taller de chatbots. Que se celebró el 16 de marzo en la Escuela Técnica Superior de Ingenieros Informáticos de la Universidad Politécnica de Madrid.
En esta quinta edición, se decidió profundizar un poco más en uno de los temas más actuales, que ha llegado para quedarse: los chatbots. Aunque en esta ocasión -y anticipando que la audiencia iba a querer algo de acción- nos salimos un poco del enfoque puramente teórico. Optamos por arremangarnos, organizando un pequeño taller con el claro objetivo de que al finalizarlo, los asistentes se fueran a su casa con su propio bot codificado y funcionando. Y lo más importante, con unas herramientas que les permitan construir sobre la base adquirida aquello que imaginen.
Con todo esto la tarde del 16 de marzo, junto con unos cuantos valientes, arrancamos un taller en el cual se presentó el Bot Framework de Microsoft. Que proporciona los ladrillos para materializar el diseño y desarrollo de chatbots de una manera más amigable que si se tuviera que hacer desde cero.
Como nuestra intención era dar un carácter interactivo al encuentro, se fueron intercalando conceptos básicos. Desde cómo levantar los cimientos de nuestro bot, pasando por el establecimiento de diálogos y cascadas entre usuario y bot, así como los distintos tipos de Prompts.
Los Prompts pueden dejar al bot a la espera de una respuesta con un determinado formato por parte del usuario. Por lo que en el taller, cada participante en su PC codificaba partes del bot que se correspondían con los conceptos introducidos.
Creando chatbots
Algunos de nuestros compañeros estuvieron coordinando el taller y resolviendo cualquier duda que los participantes pudieran tener. Ayudándoles a montar un chatbot funcional e introducirles en nuevas funcionalidades, ideas y posibilidades de este fascinante mundo.
Desde un punto de vista teórico, se introdujeron los conceptos básicos del Natural Language Understanding. Que consiste en que los chatbots sean capaces de entender lenguaje humano a distintos niveles. Por un lado, pudiendo reconocer lo que el usuario quiere y actuar en consecuencia para satisfacer sus necesidades. O, lo que todavía resulta casi imposible, que el usuario dude si se trata de un humano o un bot.
La guinda de la sesión fue la noción de LUIS (Language Understanding Intelligent Service de Microsoft). Un framework que permite, de manera sencilla y asequible, crear modelos que detectan la intención del usuario cuando se comunica con el bot. Además de identificar las partes del discurso interesantes para que el bot cumpla sus funciones. Sin duda, el complemento perfecto de la sesión. Consiguiendo que los asistentes pudiesen investigar y poner en práctica los conceptos introducidos para empezar a dotar de “entendimiento” a su bot.
La sensación fue muy positiva, los participantes se fueron a casa con lo que pueden ser las bases de nuevas y grandes ideas.
Desde datahack queremos agradecer a la Delegación de alumnos de la ETSI su amabilidad y flexibilidad. Sobre todo en cuanto al tiempo reservado para el taller. ¡Todo un placer haber participado en el Try IT! 2017!
Resumen de privacidad
Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.
Cookies estrictamente necesarias
Propiedad
Cookie
Finalidad
Plazo
datahack.es
_btrid
Cookie necesaria para la utilización de las opciones y servicios del sitio web
en un año
datahack.es
_gat_UA-32658908
-1
Cookie necesaria para la utilización de las opciones y servicios del sitio web
Sesión
google.com
__Secure-1PAPISI
D
Cookie necesaria para la utilización de las opciones y servicios del sitio web
en 2 años
google.com
__Secure-1PSID
Cookie necesaria para la utilización de las opciones y servicios del sitio web
en 2 años
google.com
__Secure-3PSIDC
C
Cookie necesaria para la utilización de las opciones y servicios del sitio web
en un año
Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.
Cookies de terceros
Propiedad
Cookie
Finalidad
Plazo
datahack.es
_ga
ID utiliza para identificar a los usuarios
en 2 años
datahack.es
_gid
ID utiliza para identificar a los usuarios durante 24 horas después de la última actividad
en 20 horas
google.com
__Secure-3PAPISI
D
Estas cookies se utilizan para entregar anuncios más relevantes para usted y sus intereses.
en 2 años
google.com
__Secure-3PSID
Estas cookies se utilizan para entregar anuncios más relevantes para usted y sus intereses.
en 2 años
Publicitarias
Propiedad
Cookie
Finalidad
Plazo
datahack.es
_fbp
Utilizado por Facebook para ofrecer una serie de productos tales como publicidad, ofertas en tiempo real de anunciantes terceros
en 3 meses
datahack.es
_gcl_au
Utilizado por Google AdSense para experimentar con la publicidad a través de la eficiencia de sitios web que utilizan sus servicios.
en 3 meses
google.com
APISID
Descargar ciertas herramientas de Google y guardar ciertas preferencias, por ejemplo, el número de resultados de la búsqueda por hoja o la activación del filtro SafeSearch. Ajusta los anuncios que aparecen en la búsqueda de Google.
en 2 años
google.com
HSID
Descargar ciertas herramientas de Google y guardar ciertas preferencias, por ejemplo, el número de resultados de la búsqueda por hoja o la activación del filtro SafeSearch. Ajusta los anuncios que aparecen en la búsqueda de Google.
en 2 años
google.com
SAPISID
Descargar ciertas herramientas de Google y guardar ciertas preferencias, por ejemplo, el número de resultados de la búsqueda por hoja o la activación del filtro SafeSearch. Ajusta los anuncios que aparecen en la búsqueda de Google.
en 2 años
google.com
SID
Descargar ciertas herramientas de Google y guardar ciertas preferencias, por ejemplo, el número de resultados de la búsqueda por hoja o la activación del filtro SafeSearch. Ajusta los anuncios que aparecen en la búsqueda de Google.
en 2 años
google.com
SIDCC
Descargar ciertas herramientas de Google y guardar ciertas preferencias, por ejemplo, el número de resultados de la búsqueda por hoja o la activación del filtro SafeSearch. Ajusta los anuncios que aparecen en la búsqueda de Google.
en un año
google.com
SSID
Descarga ciertas herramientas de Google y guarda ciertas preferencias, por ejemplo, el número de resultados de búsqueda por página o la activación del filtro SafeSearch.
Ajusta los anuncios que aparecen en la Búsqueda de Google.
en 2 años
¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!
Cookies adicionales
Los servicios de terceros son ajenos al control del editor. Los proveedores pueden modificar en todo momento sus condiciones de servicio, finalidad y utilización de las cookies, etc.