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:
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:
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 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:
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.
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! ????
Recibe nuestra programación mensual de eventos online y la apertura de nuevas convocatorias de cursos
En Datahack Consulting SL trataremos los datos que nos facilites con la finalidad de enviarte información relacionada con tu solicitud sobre nuestros servicios, así como enviarte comunicaciones informativas sobre nuestra actividad. Podrás ejercer los derechos de acceso, rectificación, limitación, oposición, portabilidad, o retirar el consentimiento enviando un email a administracion@datahack.es. También puedes solicitar la tutela de derechos ante la Autoridad de Control (AEPD). Puedes consultar información adicional y detallada sobre protección de datos en nuestra Política de Privacidad.
Llámanos, escríbenos al email o por WhatsApp o inicia un chat en la web y hablamos