acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260The post Benchmarks para evaluar plataformas de chatbots first appeared on Planeta Chatbot.
]]>Hay que tener en cuenta que, como nuestro objetivo es comprobar la calidad de los componentes de comparación de intenciones y detección de NER, no podemos limitarnos a utilizar conjuntos de datos de NLP sin procesar. Por ello, necesitamos conjuntos de datos que incluyan:
Mejor aún si el conjunto de datos ya viene con diferentes conjuntos de datos para entrenamiento, prueba y validación, de modo que diferentes autores/proveedores puedan replicar y comunicar con mayor precisión los resultados de la evaluación que obtienen al comprobar una biblioteca determinada.
Sin embargo, resulta que, dadas las limitaciones anteriores, no hay mucho donde elegir. Pero, hemos recopilado todos los datos de NLP para chatbots que conocemos en este repositorio de GitHub: Awesome NLP benchmarks for intent-based chatbots (ya vimos que GH se utilizaba a menudo para alojar listas impresionantes y que algunas de ellas pasaron de hecho a formar parte de los proyectos más destacados de GH
).
Espero que puedas sugerir otros para añadir a la lista, especialmente algunos que no sólo cubran la parte de intención sino también la de reconocimiento de entidades ya que esta es siempre una parte desafiante pero crítica si quieres construir un chatbot que ofrezca una buena experiencia de usuario (en lugar de uno que necesite preguntarte continuamente por cada dato que le falte).
The post Benchmarks para evaluar plataformas de chatbots first appeared on Planeta Chatbot.
]]>The post Gartner sitúa los chatbots en su punto más bajo first appeared on Planeta Chatbot.
]]>Las tecnologías se encuentran en esta fase cuando el interés por ellas disminuye a medida que los experimentos y las implementaciones no dan resultados. Los productores de la tecnología se tambalean o fracasan.
Todo esto suena mal para los chatbots. Realmente malo. Pero, de hecho, creo que es todo lo contrario. Creo que llegar a este punto es lo mejor que le puede pasar a los chatbots. He visto a otras tecnologías pasar por esta fase y salir más reforzadas.

Mejor no significa más popular. Mejor no significa que acaben vendiendo más que cuando estaban en su punto álgido. Mejor significa eso:
La situación ideal de la tecnología chatbot, de cualquier tecnología, es no vivir en el Pico de las Expectativas Infladas (Peak of Inflated Expectations), sino aprender sobre sí misma, sobre su mercado y sobre sus actores. Todo ello mientras se desciende por el Abismo de la Desilusión hasta llegar a la Meseta de la Productividad, donde la adopción mayoritaria despega, y los criterios para evaluar la viabilidad del proveedor y la aplicabilidad y relevancia en el mercado están más claramente definidos.
No es un proceso fácil, pero sí necesario. Estamos muy ilusionados por recorrer este camino y ayudaros a todos a crear mejores chatbots con mayor rapidez.
The post Gartner sitúa los chatbots en su punto más bajo first appeared on Planeta Chatbot.
]]>The post Cómo construir un sistema de reconocimiento de entidades con nombre personalizado para tu motor de chatbot first appeared on Planeta Chatbot.
]]>The post Cómo construir un sistema de reconocimiento de entidades con nombre personalizado para tu motor de chatbot first appeared on Planeta Chatbot.
]]>The post Chatbots preentrenados para el comercio electrónico first appeared on Planeta Chatbot.
]]>Los beneficios de los chatbots para el comercio electrónico son muchos y variados. Y cubren todas las fases del ciclo de venta, incluyendo la pre-venta y la post-venta. Por ejemplo, en la fase de pre-venta, los chatbots pueden recomendar productos a los visitantes de tu tienda, clarificar las dudas que tengan (que además, acaban siendo siempre las mismas) o ayudarles a encontrar lo que necesitan. En la de post-venta pueden responder de forma personalizada preguntas sobre el estado de sus pedidos o avisarles de qué hay un nuevo producto que se ajusta a su perfil de compra anterior.
Todo esto trabajando 24/7 y hablando el idioma que haga falta, lo que nos permite tener nuestro comercio electrónico funcionando incluso cuando dormimos y además atender a clientes de otros países.
Buena pregunta. La respuesta es que para tener un chatbot de mala calidad mejor no tener ninguno, porque un pésimo chatbot, en lugar de conseguirte más clientes va a asustar a los que vengan. Y todos hemos visto y «sufrido» malos chatbots que, básicamente, lo único que hacían era buscar por palabras clave, sin nada o muy poca inteligencia detrás.
Y tener un chatbot de buena calidad, hasta ahora, costaba mucho dinero o tiempo. Muchas veces las dos cosas. Dinero para pagar una agencia de desarrollo de bots que te hiciera un proyecto a medida, cuando muchas veces tus necesidades y presupuesto no daban para eso. Tiempo para coger tu mismo una plataforma de desarrollo de bots, aprender a utilizarla y crear tu propio bot con ella. Mejor dicho, crearlo una y otra vez, ya que tu tienda online evoluciona rápidamente (nuevos productos, nuevos métodos de pago, nuevas ofertas) y cada vez tienes que duplicar el trabajo, primero actualizando la tienda y luego el chatbot.
Debido a estas dos razones, el uso de los bots quedaba muchas veces fuera del alcance de las SMEs que ni tienen dinero suficiente ni pueden dedicar su tiempo a mantener manualmente un chatbot.
En Xatkit nos dimos cuenta de esta problemática y nos hemos ido adaptando para ofrecer una solución adecuada. Xatkit empezó (y sigue) como una plataforma de software libre para la creación y ejecución de bots. Pero pronto vimos que utilizar nuestro lenguaje era demasiado complicado para usuarios no técnicos con lo que fuimos simplificando la interfaz para la creación de bots. Incluso hasta llegar a ofrecer una plantilla Excel para definir tu propio chatbot. Pero ni así. Al final nos dimos cuenta que el problema no era tanto el lenguaje de definición de bots, sino algo mucho más simple, el cliente quiere tener un bot pero no quiere crearlo él mismo.
¿La solución? En Xatkit proponemos el uso de bots preentrenados para todas aquellas tiendas electrónicas que no tienen ni tiempo ni dinero para crear un bot. Nuestros bots son ya expertos en eCommerce con lo que no hace falta entrenarlos. De eso ya nos hemos encargado nosotros utilizando un conjunto de sentencias de entrenamiento que vamos ampliando a medida que más gente va utilizando también los bots y vamos todos aprendiendo.
Y además, los bots son capaces de leer y entender toda la información de vuestra tienda online (de momento para WooCommerce pero ampliaremos a otras plataformas de comercio electrónico, se aceptan peticiones) para seguir ofreciendo respuestas personalizadas a vuestros clientes. Como si hubierais creado a mano el bot vosotros mismos. Y los podéis resincronizar a demanda, apretando un sólo botón, con lo que el bot siempre estarán al día del estado de vuestra tienda.
Por ejemplo, entre las conversaciones predefinidas en el bot tenemos la de consultar el estado de un pedido, que se muestra en la figura a continuación. Con esta conversación, el cliente puede preguntar por detalles de su pedido, el bot le pedirá los datos del pedido y buscará en la base de datos su estado. Hay muchas otras conversaciones ya embebidas en el bot (incluyendo opciones de entrega, métodos de pago, productos en rebajas…) y cuando el bot no consigue responder a la pregunta del cliente es capaz de pedirle sus datos para que el propietario lo pueda contactar vía email más tarde.

Todos los mensajes del bot son configurables. Y el propietario de la tienda puede añadir más conversaciones (ej. FAQs). Pero todo esto es opcional, des del momento en qué se añada el bot a la tienda, el bot se configurará automáticamente y estará inmediatamente disponible para ayudar en lo que haga falta.
Con Xatkit ya no hay excusa para no probar de vender más trabajando menos gracias a los chatbots. Y además, ¡lo podéis probar totalmente gratis!.
The post Chatbots preentrenados para el comercio electrónico first appeared on Planeta Chatbot.
]]>The post Chatbot gratuito para WordPress first appeared on Planeta Chatbot.
]]>Si alguna vez has pensado que te gustaría añadir un chatbot a tu web pero no querías darte de alta en ningún servicio externo o empezar a programar nada, ésta es tu oportunidad. Descárgalo ya y en menos de dos minutos tendrás un chatbot dando la bienvenida a tus visitantes.
A día de hoy, el chatbot ofrece las siguientes funcionalidades, iremos añadiendo más en el futuro:
Veamos como se vería el chatbot una vez tengas el plugin instalado en tu WordPress. Por ejemplo, aquí estamos en una conversación para la búsqueda de contenido:

y aquí una que muestra como se puede usar el bot para contactar con el propietario de la web.

¿Os habéis fijado en el error al escribir “newletter”?. El chatbot utiliza internamente DialogFlow para entender lo que el usuario pide con lo que tiene cierta tolerancia a errores de sintaxis que pueda cometer el usuario.
Y para responder a las preguntas se basa en la WordPress REST API que ofrece una serie de endpoints públicos para acceder al contenido de cualquier WordPress. Tu información de contacto, una vez decides hacerlo pública, se expone también a partir de esta misma API, en forma de custom endpoints.
En esta versión gratuita del plugin, el bot está alojado en una cuenta compartida en el propio servidor de Xatkit. No te hace falta instalarte nada ni crear tu propia cuenta, ni en DialogFlow ni en ninguna otra parte. Más fácil no te lo puedo poner. Se mostrará minimizado en tu página principal hasta que el visitante decida despertarlo.
Además, también ofrecemos una versión premium del plugin. En esta versión hay funcionalidades adicionales (como la monitorización del uso del bot o la posibilidad de definir nuevas preguntas y respuestas que quieres que el bot aprenda). Puedes ver todos nuestros planes en nuestra comparación de servicios para el alojamiento gestionado de Chatbots WordPress, incluyendo la creación de chatbots a medida. No dudes en contactarnos para más información.
¡Apúntate a nuestra newsletter y serás el primero en enterarte de todas las mejoras y novedades del servicio de Xatkit para WordPress!
The post Chatbot gratuito para WordPress first appeared on Planeta Chatbot.
]]>The post El principio de Pareto (regla 80/20) aplicada al diseño de chatbots first appeared on Planeta Chatbot.
]]>En su versión más simple, el principio de Pareto dice que, en muchas situaciones, alrededor del 80% de los efectos son debidos al 20% de las causas. Este principio lo describió Vilfredo Pareto (de ahí el nombre), quién observó que la distribución de la riqueza sigue muy a menudo esta proporción (e.j. Vilfredo calculó que, en su época, el 80% de las tierras de Italia eran propiedad de sólo el 20% de la población).
Los chatbots no se escapan de esta regla. Podemos encontrar muchas aplicaciones de esta regla del 80/20 en el diseño y mantenimiento de (chat)bots. Me gustaría destacar un par de ellas que creo que deberías tener en mente la próxima vez que crees un chatbot (o tu propia plataforma de desarrollo de bots).
Empecemos con la más genérica y más evidente de todas, además aplicable a cualquier tipo de negocio:
80% de los ingresos de un chatbot vienen de sólo el 20% de tus clientes.
Asegúrate que detectas muy pronto estos “buenos clientes” y que evolucionas el chatbot para hacerlo cada vez más atractivo a sus necesidades.
Hay otros ejemplos del principio de Pareto más específicos al mundo de los chatbots. Por ejemplo:
Puedes clasificar el 80% de los mensajes de tus usuarios con el 20% de tus intents.
Tener esta regla presente es muy importante para luchar contra una de las “malas prácticas” más comunes en el diseño de chatbots: intentar hacer un bot tan completo que sea capaz de responder a cualquier posible mensaje del usuario. Primero, porque es imposible. Nunca podrás cubrir todos los posibles escenarios de utilización de un bot (si no eres tú quien restringe ya de entrada la conversación). Y segundo, porque, aunque pudieras, estarías perdiendo el tiempo definiendo muchos intents (con sus correspondientes conjuntos de entrenamiento) que casi nadie va a utilizar nunca. En lugar de intentar responder a todo, céntrate en responder mejor las peticiones más comunes. Además, en este caso, mejor es peor. La calidad del bot puede empeorar si añades más y más frases que el bot debería reconocer. Por ejemplo, puedes llegar a tener conjuntos de entrenamiento que se solapen, lo que volverá loco a tu motor de NLP.
Encontrar este 20% requiere que tu plataforma de bots tenga un dashboard que te muestre cómo se comportan tus usuarios. Date cuenta de que podría ser que lo que más piden tus usuarios es algo que tu bot no sabe aún contestar. Asegúrate de usar tu bot como herramienta para descubrir lo que realmente buscan tus usuarios cuando visitan tu web. Te llevarás más de una sorpresa.
El principio de Pareto debería también guiar las plataformas a las que das soporte:
80% de tus bots usarán el 20% de las plataformas disponibles.
Añadir más y más conectores e integraciones no se traduce en más clientes. Aprende en qué plataformas se mueven tus “clientes tipo” y adáptate a ellas. Si tus clientes usan primordialmente Slack, no van a comprar tu bot porqué también tiene Messenger sino que buscarán que tu integración con Slack sea muy potente.
¡Deja que Pareto te guíe en el diseño de tus bots y conseguirás mejores resultados y beneficios!
The post El principio de Pareto (regla 80/20) aplicada al diseño de chatbots first appeared on Planeta Chatbot.
]]>The post Bots + Live Chat = Grandes conversaciones con tus clientes first appeared on Planeta Chatbot.
]]>Pero aunque los chatbots cada vez son más humanos no son perfectos. Y puede fallar justo en el peor momento: cuando estás a punto de convertir un nuevo cliente. Seguro que en ese momento darías lo que fuera para meterte de lleno en la conversación y pasar a ser tu el “chatbot” que responde.
Y es que la clave para asegurar la mejor atención al usuario es combinar los chatbots con el live chat cuando haga falta. ¿Pero cómo lo consigues sin tener que estar todo el día pendiente del chat?
De hecho, ya hay algunas plataformas que en cierto modo permiten al “humano” entrar en la conversación cuando el chatbot no sabe qué contestar pero, en general, para poder hacerlo el humano tiene que estar conectado a la misma plataforma de chat y estar pendiente de ella.
Xatkit ofrece una mejor alternativa. Puedes suplantar a tu chatbot directamente desde donde estés trabajando. Cuando se sienta perdido, el bot te avisirá a través de tu canal de comunicación preferido. Y podrás contestar a la pregunta del usuario sin salir de ahí. Xatkit se encargará de hacer aparecer tu respuesta en la ventana de chat donde tu cliente esté esperando.
En nuestro repositorio de ejemplos, puedes ver como implementar tu mismo esta combinación de chatbot + live chat. En este ejemplo, el bot y el visitante están conversando en una ventana react que se despliega en tu web mientras tú estás tranquilamente trabajando con el Slack abierto por si acaso. Si el bot no sabe como responder a una pregunta te avisa en Slack con el texto de la pregunta. Puedes responder en Slack mismo y el bot se encarga de responder eso mismo al usuario. Esto optimiza la felicidad de tus visitantes y evita que pierdas potenciales clientes al tiempo que minimizas el tiempo que tienes que dedicarles.

A nivel técnico, la mayor dificultad para implementar este tipo de mecanismo con una plataforma de chat de software libre como Xatkit es asegurar que el sistema es suficientemente hábil como para no mezclar conversaciones. No queremos que si hay varios clientes conectados, uno reciba las preguntas del otro.
Esto requiere establecer canales de comunicación entre tu y cada visitante. Veamos con más detalle como hemos creado el bot del ejemplo anterior para implementar justamente esta combinación de chatbot y chat en vivo.
La definición de los intents del bot es la parte más fácil ya que no tiene nada de especial. Para simplificar, en este ejemplo vamos a suponer que el bot sólo es capaz de contestar a dos preguntas (¿Que chatbot solución es la mejor? y ¿Quién ha creado Xatkit?) y que todas las demás serán redireccionadas a la persona detrás del bot (el “human in the loop”).
Library ReactSlackLiveChat
intent XatkitQuestion {
inputs {
"I am looking for a good bot solution"
}
}
intent WhoIsBehindXatkit {
inputs {
"Who is behind Xatkit?"
}
}
Toda la “magia” se encuentra en el modelo de ejecución donde se define como el bot responde a cada intent que reconoce. O mejor dicho, en este caso, en cada vez que no reconoce lo que quiere el usuario. En ese caso se activa el default_fallback_intent donde se hace la transferencia de control del bot al humano (código):
Fijaros como guardamos el timestamp que Slack devuelve al publicar el mensaje (Slack usa este timestamp como identificador único del mensaje en un canal). De forma parecida, cuando el humano responda en Slack, lo usamos para recuperar la ventana react donde está el cliente esperando la respuesta (código).
Una vez hayas desplegado este bot, podrás dar soporte a conversaciones como la que te muestro abajo, donde puedes tener dos o más clientes simultáneos en la misma web y con dudas diferentes al mismo tiempo a las que tu puedes dar respuesta cómodamente sin peligro de mezclarlas.

¡No dudéis en contactarnos si tenéis alguna duda sobre como combinar chatbots y live chat para dar el mejor servicio de atención al cliente!
The post Bots + Live Chat = Grandes conversaciones con tus clientes first appeared on Planeta Chatbot.
]]>The post Chatbots para la consulta de datos abiertos first appeared on Planeta Chatbot.
]]>No hay duda que los datos abiertos han sido un gran paso adelante para la administración pública, a todos los niveles.

Pero, ¿cuál es el impacto real de todas estos iniciativas para el ciudadano de a pie?. En mi opinión, muy poco. Desde un punto de vista técnico, todas las iniciativas mencionadas anteriormente se pueden calificar de datos abiertos ya que la información que contienen está a disposición de cualquiera que quiera mirarla, de una forma totalmente gratuita. Pero como contamos en este post: El gran problema de los datos abiertos, el querer no siempre es poder. Los ciudadanos que no tengan conocimientos técnicos se encontrarán con un buen número de dificultades a la hora de acceder y consultar estos datos. Entre ellos, la variedad de los formatos (CSV, XML, APIs) y la compartimentalización de los mismos.
Lo que necesitamos es una interfaz amigable y fácil de usar que permita a usuarios no técnicos el acceso y consulta de todos los datos abiertos puestos a disposición de los ciudadanos por parte de las administraciones públicas. Lo contrario es tirar el dinero (o dejar que sólo se beneficien de él, las empresas que puedan construir algún tipo de modelo de negocio basado en la explotación y el cocinado de esos datos para luego “venderlos” a los ciudadanos interesados; éste es un modelo muy válido y que puede dar un importante valor añadido pero no debería ser la única manera que tenga un ciudadano de a pie para acceder a los datos públicos).
Creemos que los chatbots son la interfaz perfecta para los datos abiertos. Al ser, por definición, una interfaz conversacional, no imponen ningún tipo de barrera de entrada que excluya a parte de la población. Los chatbots son el complemento perfecto al proyecto “Open Data for All” donde trabajamos en la parte del back-end para facilitar la combinación de datos abiertos que permita ofrecer al ciudadano recursos de datos más ricos y completos.
La figura siguiente muestra un ejemplo de bot (nosotros usamos la plataforma de software libre Xatkit para crear estos bots) para preguntar sobre apartamentos de alquiler que estén cerca de una estación carga de coches eléctricos y de una estación de bicing (los logos en la figura representan las APIs individuales, cada uno capaz de responder a una parte de la pregunta). La pregunta inicial del ciudadano (en lenguaje natural) es comprendida por el chatbot quien la pasa al modelo de datos unificados que se encarga de preguntar a cada API la parte que le corresponde para luego combinar los datos y pasar la respuesta al chatbot quién se la explica al ciudadano.

Las interfaces conversacionales son el futuro de la interacción con la administración pública. Pero tampoco es todo tan fácil como meter un chatbot en cada portal ciudadano. Los chatbots actuales están muy orientados a responder preguntas descriptivas , es decir a proporcionar hechos y datos concretos. Pero las preguntas habituales cuando los datos son económicos o sociales muchas veces son de tipo diagnóstico o predictivo e incluso a veces de tipo prescriptivo (ver la distinción el siguiente gráfico). Todas ellas requieren que los chatbots entienda preguntas con operadores estadísticos y matemáticos (e.j. ¿cuál es el valor medio de los apartamentos? ¿cuánto más caros son los apartamentos que están cerca de una estación de carga vs aquellos que no lo están?, ¿están subiendo de precio?).

En Xatkit y en SOM estamos explorando todos estos temas. Así que si te interesan los temas de los chatbots, la administración pública y los datos abiertos no dudes en ponerte en contacto con nosotros.
The post Chatbots para la consulta de datos abiertos first appeared on Planeta Chatbot.
]]>The post Cómo crear un chatbot para hablar con tus repositorios en GitHub first appeared on Planeta Chatbot.
]]>De hecho, veremos como crear dos chatbots:
Para crear estos bots necesitamos coordinarnos con las APIs de Slack, de GitHub y algún librería/servicio NLP/NLU que nos ayude con el tratamiento del lenguaje natural, como por ejemplo DialogFlow. Pero no te asustes, en lugar de escribir los conectores para todos ellos, nos basaremos en la plataforma de desarrollo de bots Xatkit. Xatkit es un proyecto de software libre con lo que lo podéis descargar y utilizar sin problemas.
Xatkit ya viene con soporte para Slack, GitHub y DialogFlow predefinidos (y lo mismo para otras muchas plataformas). Esto facilita mucho la creación de chatbots para ellas: en lugar de escribir código que ataque las respectivas APIs, usamos las abstracciones de Xatkit para explicar lo qué queremos que el bot haga con ellas a más alto nivel.
De forma similar a otras plataformas, en Xatkit, el chatbot se define especificando la lista de Intents que el bot puede reconocer y la lista de acciones que el bot tiene que ejecutar como respuesta a cada intent. Esta respuesta usuario puede ser textual o la ejecución de un servicio externo. una vez hechas las “presentaciones” veamos como podemos usar Xatkit para crear los dos bots que queremos desarrollar.
Si miras el repositorio de cualquier proyecto open source, verás que las primeras interacciones en cada nuevo error que se reporta tienen que ver con el responsable del proyecto intentando sacar toda la información al usuario (cuándo se produce el bug, qué sistema operativo utiliza, qué versión…) para poderlo reproducir y arreglar. Y como esto es una comunicación asíncrona, pueden pasar varios días antes de qué se pueda empezar realmente a trabajar en un parche para el bug.
Veamos pues como podría ser un chatbot que se encargará automáticamente de esto. Como ejemplo, vamos a imaginar que el usuario se está quejando de un error en un plugin de WordPress. En este caso, las dos primeras preguntas siempre son que versión de WordPress y que versión de PHP se están utilizando. Crearemos un bot que se va a asegurar que el usuario nos da esta información antes de realmente crear el bug report en GitHub.
Empecemos definiendo los posibles intents. Fijaros que algunos solo pueden evaluarse si otro intent previo ha sido ya emparejado. Fijaros también que vamos recogiendo información de la conversación que usaremos al final para abrir el bug.
intent OpenBug {
inputs {
"The plugin is not working"
"I have a problem with the plugin"
"I'd like to report an error"
"I want to open a bug"
"I want to report a bug"
"There is an error in the plugin"
}
}
intent DescribeBug follows OpenBug {
inputs {
"My error is Error"
"The problem is Error"
"I get this error: Error"
"My error is that Error"
"The problem is that Error"
"I get the error Error"
}
creates context bug {
sets parameter title from fragment Error (entity any)
}
}
intent TellWPVersion follows DescribeBug {
requires context bug
inputs {
"My version number is WPVersion"
"I use number WPVersion"
"It's version WPVersion"
}
creates context bug {
sets parameter wpversion from fragment WPVersion (entity number)
}
}
intent TellPHPVersion follows TellWPVersion {
requires context bug
inputs {
"My version is PHPVersion"
"I use PHPVersion"
"It's version PHPVersion"
"The server is on php version PHPVersion"
}
creates context bug {
sets parameter phpversion from fragment PHPVersion (entity number)
}
}
Éste sería un ejemplo de conversación con el chatbot que acabamos de definir

Cuando tenemos ya toda la información que necesitamos, sólo hay que juntarlo todo y proceder con la apertura de la issue en GitHub. Esto lo hacemos en el modelo de ejecución del bot. Además de crear el bug report, aprovechamos también para etiquetarlo ya directamente para facilitar su proceso posterior (y podríamos hacer muchas otras cosas, ya depende de hasta donde queráis llegar).
on intent TellPHPVersion do action SlackPlatform.Reply(message : "Thanks for your detailed info")
def newissue = action GithubPlatform.OpenIssue(user : "jcabot", repository : "xatkit-tests", issueTitle : context(bug).get("title") , issueContent : "WP version is " + context(bug).get("wpversion") + " PHP version is " + context(bug).get("phpversion")
)
action GithubPlatform.SetLabel(issue : newissue, label : "bug")
Siguiendo con la conversación anterior, la ejecución del chatbot acabaría generando la siguiente issue en GitHub.

Veamos ahora como podemos crear un chatbot que se “despierte” cuando GitHub envíe una notificación y nos permita responder a ella sin salir de Slack o nuestra herramienta de mensajería / comunicación preferida.
Como ejemplo, nos centraremos en la notificación Open issue (justamente la que se generaría si un usuario de nuestro proyecto utiliza el chatbot creado en la sección anterior). Queremos un chatbot que:
Para conseguir que GitHub propague esta notificación a Slack, nos basta con escribir:
on event Issue_Opened do action SlackPlatform.PostMessage(message : "An issue has been opened with the title " + context(issue).get("issue->title"), channel: config(slack.channel))
def issue = action GithubPlatform.GetIssue(user : config(github.repository.username), repository : config(github.repository.name), issueNumber : context(issue).get("issue->number"))
session.store("issue", issue)
donde lo que hacemos es recibir el evento de GitHub y enviarlo como nuevo mensaje a Slack. El mensaje se crea a partir de los parámetros del evento. Una vez más, fijaros que Xatkit nos evita toda la complejidad de, en este caso, procesar el JSON que realmente envía GitHub. Xatkit lo parsea y procesa por nosotros y nos da los datos ya digeridos para su fácil tratamiento. La issue en sí nos la guardamos también en la sesión para su uso posterior.
Una vez nos llega la notificación, el chatbot se pone en modo escucha a ver si queremos expresar la intención de asignar etiquetas o responsables a la issue. La definición de los intents correspondientes sería:
intent SetLabel {
requires context issue
inputs {
"Set label Label"
"Give label Label"
}
creates context issue {
sets parameter issueLabel from fragment Label (entity any)
}
}
intent AssignUser {
requires context issue
inputs {
"Assign user Username"
"Username will take care of it"
}
creates context issue {
sets parameter assignedUsername from fragment Username (entity any)
}
}
Como el chatbot anterior para cada intent definimos un pequeño conjunto de sentencias de entramiento que serán usadas por el motor de NLP/NLU para analizar el texto que escribamos en Slack y intentar emparejarlo con una de las dos intenciones que admite este bot. Al usar DialogFlow para esto, variaciones de las sentencias de entrenamiento serán también reconocidas con éxito, no hace falta que haya un exact match. Por ejemplo si escribo Add Label en lugar de Set o Give, se va a reconocer igual que lo que quiero es añadir una etiqueta.

Con este chat y las acciones asociadas a los intents anteriores
on intent SetLabel do
action GithubPlatform.SetLabel(issue : session.get("issue"), label : context(issue).get("issueLabel"))
action SlackPlatform.Reply(message : "Done!")
, actualizaremos de forma automática el estado de esta issue en GitHub:

Hemos visto como en unas pocas líneas de código podemos crear bots bidireccionales que enlazan tus proyectos software con herramientas como Slack.
Hemos visto sólo un par de ejemplos sencillos pero espero que suficientes para que te haya quedado claro la de cosas interesantes que se podrían llegar a hacer (ej. mira otros bots que podrían beneficiarse también de una interfaz conversacional) para agilizar la gestión de las comunidades open source.
Tienes el código completo del ejemplo aquí. ¡Anímate a probarlo y crear tus propios GitHub chatbots!
The post Cómo crear un chatbot para hablar con tus repositorios en GitHub first appeared on Planeta Chatbot.
]]>The post Cómo añadir una interfaz conversacional a Zapier first appeared on Planeta Chatbot.
]]>Los eventos y acciones que Zapier ofrece para cada plataforma individual son limitados con lo que, siempre que podamos, es mejor utilizar un soporte más “nativo” a las plataformas. Pero lo que sí que tiene Zapier es que tiene más conectores que nadie con lo que siempre es buena idea tenerlo disponible para llegar donde uno no puede.
Y así lo hacemos nosotros, hemos creado un conector entre Xatkit, nuestra plataforma de desarrollo de chatbots, y Zapier. Esto nos permite crear chatbots para cualquier plataforma que forme parte del catálogo Zapier (más de 1500 por ahora) y que todavía no tengamos en nuestro propio catálogo.
Para hacerlo nos aprovechamos del mecanismo interno de Zapier para crear flujos automatizados. En Zapier, los usuarios crean Zaps que són, simplificando, enlaces entre secuencias de herramientas. Estos Zaps los podemos disparar / lanzar externamente. Por ejemplo, como respuesta a una intención que exprese el usuario dentro de una conversación que esté teniendo con nuestro chatbot. Gracias a nuestra integración las más de 1000 plataformas de Zapier se pueden poner a hablar con los clientes.
Veamos como funciona esta integración con un ejemplo. Vamos a crear un SlackTrelloBot, un chatbot que escucha los canales de Slack y que bajo demanda crea automáticamente un apunte en Trello que sirva para recordar la conversación antes de que se pierda. Este bot se puede usar tanto como parte de conversaciones privadas como en canales publicos. En nuestro equipo lo usamos habitualmente para no olvidarnos de temas importantes que tendremos que procesar con más calma posteriormente.
Para seguir el tutorial necesitarás una cuenta en Zapier pero la versión gratis te servirá (Trello entra en el plan gratuïto de Zapier). También conviene que estés familiarizado con la creación de chatbots en Xatkit aunque si quieres usar otras plataformas, las ideas básicas seran las mismas.
En Xatkit, el chatbot estará en el directorio SlackTrelloBot (si lo prefieres, tienes el código completo en este repositorio) y estará compuesto por los siguientes tres ficheros:
SlackTrelloBot-Lib.intent: la librería con los posibles intents que tiene que reconocer el botSlackTrelloBot-Ex.execution: el modelo de ejecución que contiene la lógica conversacional. Aquí es donde nos encargaremos de llamar a Zapier en función de los intents que el chatbot identifique en la conversación.SlackTrelloBot.properties: el archivo de propiedades con las credenciales y opciones de desplieguePara crear la entrada en Trello, el bot SlackTrelloBot utilizará la integración de Zapier con Trello. Tenemos que crear un nuevo Zap que se encargará de interactuar con Trello y crear la Card ahí con los parámetros que le indiquemos.
Veamos como podemos crear este Zap desde el dashboard de Zapier. Primero de todo, clcia en Make a Zap!. A continuación cuando pregunte el “cuando debería ejecutarse el Zap”, en la ventana When this happens, selecciona Webhook by Zapie y luego Catch Hook en el menúChoose Trigger Event. Esto es lo que nos permitirá llamar a Zapier vía una petición REST que lanzaremos desde el chatbot.

Dale a Continue, y toma nota del contenido del campo Custom Webhook URL, que usaremos luego en la configuración the Xatkit. Clica de nuevo en Continue. Ya estamos en el último paso donde simplemente Zapier te muestra ejemplos de como llamar al Zap que acabas decrear. Ignóralos víaSkip Test.

El siguiente paso es definir qué tiene exactamante que realizar el Zap, es decir qué acción tiene que ejecutar una vez lo llamemos vía el webhook que acabamos de definir. En la ventanaDo this ... busca Trello y escoge Create Card en el desplegable Choose Action Event . Zapier te preguntará en ese momento por tu datos de conexión con Trello para cargar los boards que tengas ya creados.
Navega al tab Customize Card, y rellena los campos Board y List dependiendo de donde quiereas que se cree la nueva tarjeta. Para el campo Name pon: {{name}}, que es la forma de decir a Zapier que el nombre vendrá dado como parámetro en el JSON que le pasemos durante la llamada.
Al final de este proceso deberías ver algo parecido a lo que te mostramos a continuación:

Dalea continuar y sáltate el test de Send Data. ¡Ya tenemos el Zap listo!
Podríamos llamar el Zap anterior desde cualquier tipo de chatbot, pero en este ejemplo queremos poder hacerlo desde un chatbot que esté desplegado en Slack, con lo cuál hay que configurar también el bot SlackTrelloBot para que esté escuchando en tu workspace de Slack. Puedes ver como configurar Slack en este artículo. Cuando lo tengas, rellena el archivo SlackTrelloBot.properties con la información siguiente:
xatkit.slack.token = <Your Slack app token>
xatkit.slack.listen_mentions_on_group_channel = true
Elxatkit.slack.token corresponde al token que usará Xatkit para enviar y recibir mensajes de Slack. La propiedad xatkit.slack.listen_mentions_on_group_channel permite que el bot sólo actúe cuando se le menciona explícitamente en un canal (usando el comando @bot) para evitar lanzarlo accidentalmente.
Si has llegado hasta aquí, ya has hecho lo más difícil. Con nuestra plataforma Zapier, interactuar con Zapier desde tu chatbot no tiene ningún secreto.
Veamos el código de un bot que tenga un único Intent “Crear Card” y que se encargue de llamar al Zap anterior cada vez que detecta que el usuario está expresando esa intención.
Empecemos creando el intent que recojerá también el título que queremos dar a la nueva card en Trello.
Library SlackTrelloBotLibrary
intent NewCard {
inputs {
"Create a card CardName"
"Create a card named CardName"
"Create a card with title CardName"
}
creates context Card {
sets parameter name from fragment "CardName" (entity any)
}
}
Y luego la definición de la acción a ejecutar en respuesta al intent anterior
import library "SlackTrelloBot/SlackTrelloBot-Lib.xmi"
import platform "ZapierPlatform"
import platform "SlackPlatform" use provider SlackPlatform.SlackIntentProvider on intent NewCard do
action ZapierPlatform.PostAction(zapierEndpoint: <Your Zapier Endpoint> , jsonBody: "{ 'name' : ' " + context(Card).get("name") + " '}") action SlackPlatform.Reply(message : "Done!")
Fijaros que lo único que hacemos es llamar al Zap anterior pasando como parámetro un documento JSON con el parámetro name rellenado con el valor que el chatbot ha recogido en la conversación con el usuario. Donde pone “Your Zapier Endpoint” tenéis que poner el valor Custom Webhook URL que os hemos pedido que os guardarais antes (mirad en el dashboard si os habéis olvidado
).
Puedes lanzar el bot utilizando Xatkit en modo local con estas instrucciones.
Una vez Xatkit esté ejecutándose, escribe un mensaje directo al bot con el siguiente mensaje: Create a card Test, y comprueba que una nueva tarjeta con nombre Test se ha creado en el board de trello que habías elegido durante la creación del Zap.
También puedes invitar al bot a un canal de Slack y escribir el mensaje: @<Your Bot Name> Create a card Test, donde <Your Bot Name> es el nombre de tu bot.
Una vez visto como puedes interactuar con Zapier desde un chatbot, eres libre de imaginar qué tipo de integraciones con plataformas externas te gustaría poder ejecutar como parte de tu nuevo proyecto de chatbots. ¡Sorpréndenos!
The post Cómo añadir una interfaz conversacional a Zapier first appeared on Planeta Chatbot.
]]>