Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the 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 6260

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-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 6260

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-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 6260

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6260) in /home/planetac/desa.planetachatbot.com/wp-content/plugins/all-in-one-seo-pack/app/Common/Meta/Robots.php on line 87

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6260) in /home/planetac/desa.planetachatbot.com/wp-includes/feed-rss2.php on line 8
Jordi Cabot - Planeta Chatbot https://desa.planetachatbot.com Comunidad de expertos en IA Conversacional Mon, 16 Jan 2023 13:16:23 +0000 es hourly 1 https://wordpress.org/?v=7.1.4 https://desa.planetachatbot.com/wp-content/uploads/2021/05/cropped-favicon-32x32.png Jordi Cabot - Planeta Chatbot https://desa.planetachatbot.com 32 32 Benchmarks para evaluar plataformas de chatbots https://desa.planetachatbot.com/puntos-de-referencia-para-evaluar-los-chatbots-basados-en-la-intencion/?utm_source=rss&utm_medium=rss&utm_campaign=puntos-de-referencia-para-evaluar-los-chatbots-basados-en-la-intencion https://desa.planetachatbot.com/puntos-de-referencia-para-evaluar-los-chatbots-basados-en-la-intencion/#respond Tue, 17 Jan 2023 06:00:27 +0000 https://desa.planetachatbot.com/?p=13369 Dada la creciente importancia de los chatbots en todos los aspectos de nuestra vida digital (¡incluida la ingeniería de software!) y las conocidas dificultades para probar cualquier tipo de bot intensivo en NLP, sin duda podríamos utilizar una serie de conjuntos de datos estándar de facto para evaluar y comparar con solidez diferentes bibliotecas y […]

The post Benchmarks para evaluar plataformas de chatbots first appeared on Planeta Chatbot.

]]>
Dada la creciente importancia de los chatbots en todos los aspectos de nuestra vida digital (¡incluida la ingeniería de software!) y las conocidas dificultades para probar cualquier tipo de bot intensivo en NLP, sin duda podríamos utilizar una serie de conjuntos de datos estándar de facto para evaluar y comparar con solidez diferentes bibliotecas y marcos de NLP.

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:

  • El enunciado del usuario
  • La intención que debe coincidir con ese enunciado.
  • La lista de entidades que deben identificarse en ese enunciado.

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.

]]>
https://desa.planetachatbot.com/puntos-de-referencia-para-evaluar-los-chatbots-basados-en-la-intencion/feed/ 0
Gartner sitúa los chatbots en su punto más bajo https://desa.planetachatbot.com/gartner-situa-chatbots-puntos-mas-bajosegun-gartner/?utm_source=rss&utm_medium=rss&utm_campaign=gartner-situa-chatbots-puntos-mas-bajosegun-gartner https://desa.planetachatbot.com/gartner-situa-chatbots-puntos-mas-bajosegun-gartner/#respond Thu, 14 Jul 2022 07:00:00 +0000 https://desa.planetachatbot.com/?p=11733 Los Hype Cycles de Gartner ofrecen una representación gráfica de la madurez y la adopción de tecnologías y aplicaciones, así como de su relevancia potencial para resolver problemas empresariales reales y explotar nuevas oportunidades. En esta última edición del ciclo hype de la IA, los chabots se encuentran en la fase Trough of Disillusionment. Esto […]

The post Gartner sitúa los chatbots en su punto más bajo first appeared on Planeta Chatbot.

]]>
Los Hype Cycles de Gartner ofrecen una representación gráfica de la madurez y la adopción de tecnologías y aplicaciones, así como de su relevancia potencial para resolver problemas empresariales reales y explotar nuevas oportunidades. En esta última edición del ciclo hype de la IA, los chabots se encuentran en la fase Trough of Disillusionment. Esto quiere decir que Gartner sitúa los chatbots en su punto más bajo.

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:

  • Nos deshacemos de los vendedores de humo y de las empresas superficiales que sólo trataban de sacar rápidamente algo de dinero a los primeros clientes mientras la moda de los chatbots estaba en pleno auge.
  • Entendemos mucho mejor para qué sirven los chatbots. Y para qué no sirven. Y podemos dirigirnos mejor a esos escenarios.
  • Tenemos menos presión (a medida que el mercado se desinfla), lo que nos da tiempo para mejorar la tecnología real de los chatbots en lugar de limitarse a vender productos inmaduros.
  • Podemos confiar en las (menos) agencias de chatbot, ya que las que han sobrevivido son las más sólidas. O puedes empezar la tuya propia ahora que hay menos competencia y sabrás mejor cuáles son las oportunidades reales y el encaje ideal en el mercado para las tecnologías de chatbot.

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.

]]>
https://desa.planetachatbot.com/gartner-situa-chatbots-puntos-mas-bajosegun-gartner/feed/ 0
Cómo construir un sistema de reconocimiento de entidades con nombre personalizado para tu motor de chatbot https://desa.planetachatbot.com/construir-sistema-reconocimiento-entidades-nombre-personalizado-motor-chatbot/?utm_source=rss&utm_medium=rss&utm_campaign=construir-sistema-reconocimiento-entidades-nombre-personalizado-motor-chatbot https://desa.planetachatbot.com/construir-sistema-reconocimiento-entidades-nombre-personalizado-motor-chatbot/#respond Thu, 23 Jun 2022 08:00:19 +0000 https://desa.planetachatbot.com/?p=11303 Al analizar una expresión del usuario, tenemos que identificar la intención del usuario (es decir, lo que quiere), pero también extraer los parámetros del texto que serán necesarios para responder a la petición. Estos parámetros se denominan entidades en el mundo de la NLP. El proceso de extracción de entidades del texto se conoce como […]

The post Cómo construir un sistema de reconocimiento de entidades con nombre personalizado para tu motor de chatbot first appeared on Planeta Chatbot.

]]>

Al analizar una expresión del usuario, tenemos que identificar la intención del usuario (es decir, lo que quiere), pero también extraer los parámetros del texto que serán necesarios para responder a la petición. Estos parámetros se denominan entidades en el mundo de la NLP. El proceso de extracción de entidades del texto se conoce como reconocimiento de entidades con nombre o NER, por sus siglas en inglés.

Las entidades pueden ser nombres de lugares, personas, fechas, divisas, lugares,…, como se muestra en la imagen destacada que muestra los resultados de la diplomacia en un texto de muestra. Pero también pueden ser cualquier lista de valores relevantes para su dominio (por ejemplo, los tipos de pizzas que ofrece su restaurante). En este caso, hablamos de NER personalizado.

En nuestro post anterior, explicamos cómo construir tu propio clasificador de intenciones para chatbot, veamos ahora cómo podemos extenderlo para que soporte NERs personalizados. Recuerda que este motor Xatkit NLU que estamos construyendo es totalmente de código abierto.

Representar las NER personalizadas como parte de la definición de nuestro chatbot

El primer paso es permitir a los diseñadores de bots declarar las entidades personalizadas que deben ser reconocidas al ejecutar el chatbot. Para ello, hemos ampliado nuestro módulo dsl.py con clases adicionales.

class Entity:

    «»»An entity to be recognized as part of the matching process»»»

    def __init__(self, name: str):

    self.name: str = name

class CustomEntityEntry:

    «»»Each one of the entries (and its synonyms) a CustomEntity consists of»»»

    def __init__(self, value: str, synonyms: list[str] = None):

    self.value: str = value

    self.synonyms: list[str] = synonyms

class CustomEntity(Entity):

     «»» A custom entity, adhoc for the bot «»»

     def __init__(self, name: str, entries: list[CustomEntityEntry] = None):

     super().__init__(name)

      if (entries is not None): 

          self.entries: list[CustomEntityEntry] = entries

       else:

            self.entries = []


class EntityReference:
"""A parameter of an Intent, representing an entity that is expected to be matched"""
def __init__(self, name: str, fragment:str, entity: Entity):
self.entity: Entity = entity # Entity type to be matched
self.name: str = name # name of the parameter
self.fragment: str = fragment # fragment of the text representing the entity ref in a training sentence
class Intent:
"""A chatbot intent"""

def __init__(self, name: str, training_sentences: list[str]):
self.name: str = name
self.training_sentences: list[str] = training_sentences
self.processed_training_sentences: list[str] = []
self.training_sequences: list[int] = []
# list of references to entities used in the Intent
# we are going to assume that two intents in the same context do not have parameters with the same name unless they refer to the same entity type
        self.entity_parameters: list[EntityReference] = [] 

Ahora una intención puede incluir varios parámetros de entidad, cada uno de los cuales hace referencia a una entidad personalizada. La referencia se identifica como un fragmento de texto específico en las frases de entrenamiento. Cada entidad personalizada se define como un conjunto de valores más una lista de posibles sinónimos para cada valor. Para aquellos que utilizan Xatkit como una plataforma de chatbot completa (y no sólo jugando con este servidor NLU como un componente independiente), esto correspondería al concepto de mapeo de entidades.

El siguiente gist muestra un ejemplo sencillo de una intención meteorológica con un NER de ciudad personalizado. Como parte de la definición de la intent, estamos diciendo que el fragmento correspondiente a
mycity debe coincidir con un valor de ciudad de la lista de posibles ciudades en city_entity. Evidentemente, si se desea que coincida con cualquier ciudad, lo mejor sería reutilizar una lista predefinida de ciudades de todo el mundo en lugar de crear manualmente nuestra propia lista, pero como ejemplo sencillo, seguro que se entiende la idea.

def test_intent_with_ner_initialization():

    entity: CustomEntity = CustomEntity(‘city_entity’, [CustomEntityEntry(‘Barcelona’, [‘BCN’]), CustomEntityEntry(‘Madrid’)])

    intent: Intent = Intent(‘intent_name’, [‘what is the weather like in mycity’, ‘forecast for mycity’, ‘is it sunny?’], [EntityReference(‘city’, ‘mycity’, entity)])

Comparación de los NER personalizados

Esta parte es bastante sencilla, ya que simplemente utilizamos una iteración directa en todos los NER personalizados posibles e intentamos hacer coincidir sus valores con el enunciado del usuario y recopilamos todas las coincidencias si las hay. A continuación, se devuelve un diccionario de las coincidencias con los pares junto con las predicciones de coincidencia de intención.

Así, si el usuario dice algo como «¿Cuál es la previsión para Barcelona?», le informaremos de que hemos podido encontrar una referencia a una city_entity en el enunciado (Barcelona en este caso).

Uso de NER personalizados durante la predicción de la concordancia de intenciones

Hasta ahora hemos podido identificar las entidades, pero no forman parte del proceso de comparación de intenciones. ¿Deben influir en la predicción? ¿Es importante la información de los NER para reforzar las posibilidades de coincidencia de una determinada intención? Creemos que sí.

Por lo tanto, si el parámetro use_ner_in_prediction se establece en true, antes de ejecutar la predicción del modelo, sustituiremos cualquier referencia a la entidad por el nombre del propio tipo de entidad. Esto hace que la entrada del usuario se asemeje más a las sentencias de entrenamiento de los intentos que hacen referencia a esa misma entidad, ya que ahora ambos estarán utilizando el nombre de la entidad (en lugar de cualquiera de sus valores concretos). Esta coincidencia adicional empujará a la red neuronal a aumentar la probabilidad de que esos intents coincidan.

Incluso podría ir un paso más allá al procesar la combinación de predicción de intención + NERs coincidentes para determinar la mejor intención candidata. En lugar de ir sólo a por la intención con mayor probabilidad, podría filtrar primero (o dar más peso) a las intenciones para las que haya podido hacer coincidir las intenciones referenciadas. Imagínese que el motor NLP le dice que la mejor coincidencia para el texto del usuario es la intención «Previsión meteorológica de la ciudad», pero no se ha encontrado ninguna referencia a la ciudad en el proceso.

Por lo tanto, tiene que responder a la previsión de una ciudad que no conoce. Si el parámetro de la ciudad fuera opcional (por ejemplo, si se quiere preguntar por la ciudad en el siguiente estado de la conversación), no hay problema. Pero si no era opcional (es decir, todas las sentencias de entrenamiento para la intención hacían referencia a la entidad), la elección de esa intención probablemente acabará provocando un error cuando el cliente Xatkit la busque para construir la respuesta.

Especialmente cuando dos intenciones tienen un valor de probabilidad muy similar, puede ser una buena idea elegir aquel para el que hayamos sido capaces de acertar todos los parámetros esperados.

 

The post Cómo construir un sistema de reconocimiento de entidades con nombre personalizado para tu motor de chatbot first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/construir-sistema-reconocimiento-entidades-nombre-personalizado-motor-chatbot/feed/ 0
Chatbots preentrenados para el comercio electrónico https://desa.planetachatbot.com/chatbots-preentrenados-para-el-comercio-electronico/?utm_source=rss&utm_medium=rss&utm_campaign=chatbots-preentrenados-para-el-comercio-electronico https://desa.planetachatbot.com/chatbots-preentrenados-para-el-comercio-electronico/#respond Thu, 02 Sep 2021 08:00:57 +0000 https://desa.planetachatbot.com/?p=8821 Añadir un chatbot a tu tienda online es una de las mejores «armas» que tienes para competir en un mercado global que no para de crecer y mueve ya billones de euros a nivel mundial. Beneficios de los chatbots para el comercio electrónico Los beneficios de los chatbots para el comercio electrónico son muchos y […]

The post Chatbots preentrenados para el comercio electrónico first appeared on Planeta Chatbot.

]]>
Añadir un chatbot a tu tienda online es una de las mejores «armas» que tienes para competir en un mercado global que no para de crecer y mueve ya billones de euros a nivel mundial.

Beneficios de los chatbots para el comercio electrónico

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.

¿Si los chatbots son tan útiles porque no toda tienda tiene uno?

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.

La solución: bots preentrenados

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.

Consigue tu propio bot experto en comercio electrónico

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.

]]>
https://desa.planetachatbot.com/chatbots-preentrenados-para-el-comercio-electronico/feed/ 0
Chatbot gratuito para WordPress https://desa.planetachatbot.com/chatbot-wordpress/?utm_source=rss&utm_medium=rss&utm_campaign=chatbot-wordpress https://desa.planetachatbot.com/chatbot-wordpress/#comments Thu, 02 Jul 2020 11:08:08 +0000 https://desa.planetachatbot.com/?p=896 Xatkit es una plataforma de creación de chatbots muy flexible. Se puede adaptar para generar bots en entornos muy diferentes. Hoy os presentamos la integración de Xatkit para WordPress. El primer resultado es este Plugin que permite, de una forma totalmente gratuita y completamente automática, añadir un chatbot a tu wordpress. Si alguna vez has pensado que te […]

The post Chatbot gratuito para WordPress first appeared on Planeta Chatbot.

]]>
Xatkit es una plataforma de creación de chatbots muy flexible. Se puede adaptar para generar bots en entornos muy diferentes. Hoy os presentamos la integración de Xatkit para WordPress. El primer resultado es este Plugin que permite, de una forma totalmente gratuita y completamente automática, añadir un chatbot a tu wordpress.

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:

  • Navegación vía tags y categorías: El bot sabe decir cuáles son las categorías/tags más populares. Y permite que el visitante escoja cualquiera de ellos y le muestra las entradas del blog que la utilicen.
  • Búsqueda de contenidos: El chatbot se puede usar como alternativa a la búsqueda típica de WordPress, ofreciendo una experiencia de búsqueda mucho más interactiva. Pregunta al bot qué contenido quieres ver y ves siguiendo sus recomendaciones.
  • Información general de la web. Explica de qué va tu web y por donde recomiendas empezar.
  • Ayuda a tus visitantes a ponerse en contacto contigo: El bot ofrece diferentes alternativas para el que quiera hablar contigo (siempre que tu rellenes esta información, si no lo haces, el bot funcionará igual pero sin ofrecer esta información).
  • El chatbot es multilingüe. Se puede configurar para que interactue con el usuario en Español, Francés o Inglés.

 

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.

]]>
https://desa.planetachatbot.com/chatbot-wordpress/feed/ 1
El principio de Pareto (regla 80/20) aplicada al diseño de chatbots https://desa.planetachatbot.com/principio-pareto-regla-80-20-diseno-chatbots/?utm_source=rss&utm_medium=rss&utm_campaign=principio-pareto-regla-80-20-diseno-chatbots https://desa.planetachatbot.com/principio-pareto-regla-80-20-diseno-chatbots/#respond Tue, 03 Mar 2020 11:19:37 +0000 https://desa.planetachatbot.com/?p=910 El Principio de Pareto, también conocido como la regla 80/20 es uno de los principios más universales que existen. Es fácil encontrar ejemplos en los que esta regla rige aspectos de nuestra vida personal, social y laboral. En su versión más simple, el principio de Pareto dice que, en muchas situaciones, alrededor del 80% de los efectos […]

The post El principio de Pareto (regla 80/20) aplicada al diseño de chatbots first appeared on Planeta Chatbot.

]]>
El Principio de Pareto, también conocido como la regla 80/20 es uno de los principios más universales que existen. Es fácil encontrar ejemplos en los que esta regla rige aspectos de nuestra vida personal, social y laboral.

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.

]]>
https://desa.planetachatbot.com/principio-pareto-regla-80-20-diseno-chatbots/feed/ 0
Bots + Live Chat = Grandes conversaciones con tus clientes https://desa.planetachatbot.com/bots-live-chat-igual-grandes-conversaciones-clientes/?utm_source=rss&utm_medium=rss&utm_campaign=bots-live-chat-igual-grandes-conversaciones-clientes https://desa.planetachatbot.com/bots-live-chat-igual-grandes-conversaciones-clientes/#respond Thu, 16 Jan 2020 11:21:45 +0000 https://desa.planetachatbot.com/?p=914 Dar la opción a que los usuarios puedan chatear contigo es la mejora manera de interaccionar con tus usuarios y potenciales clientes. Los chatbots te permiten seguir ofreciendo este servicio de atención al usuario cuando estés ocupado haciendo otras cosas. Pero aunque los chatbots cada vez son más humanos no son perfectos. Y puede fallar […]

The post Bots + Live Chat = Grandes conversaciones con tus clientes first appeared on Planeta Chatbot.

]]>
Dar la opción a que los usuarios puedan chatear contigo es la mejora manera de interaccionar con tus usuarios y potenciales clientes. Los chatbots te permiten seguir ofreciendo este servicio de atención al usuario cuando estés ocupado haciendo otras cosas.

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.

]]>
https://desa.planetachatbot.com/bots-live-chat-igual-grandes-conversaciones-clientes/feed/ 0
Chatbots para la consulta de datos abiertos https://desa.planetachatbot.com/chatbots-para-consulta-datos-abiertos/?utm_source=rss&utm_medium=rss&utm_campaign=chatbots-para-consulta-datos-abiertos https://desa.planetachatbot.com/chatbots-para-consulta-datos-abiertos/#respond Sat, 19 Oct 2019 11:10:46 +0000 https://desa.planetachatbot.com/?p=901 La publicación de datos abiertos (el famoso “open data”) está de moda. Día a día, nos llegan noticias de nuevos datos que se liberan y de nuevas iniciativas alrededor de los datos abiertos tanto a nivel municipal, regional y nacional. Por ejemplo, podéis ver el portal de datos abiertos de la ciudad de Barcelona, el catálogo catalán o […]

The post Chatbots para la consulta de datos abiertos first appeared on Planeta Chatbot.

]]>
La publicación de datos abiertos (el famoso “open data”) está de moda. Día a día, nos llegan noticias de nuevos datos que se liberan y de nuevas iniciativas alrededor de los datos abiertos tanto a nivel municipal, regional y nacional. Por ejemplo, podéis ver el portal de datos abiertos de la ciudad de Barcelona, el catálogo catalán o el español. Para que os hagáis una idea de los volúmenes de los que hablamos, el portal español registra más de 20.000 recursos de datos abiertos mientras que el portal de open data Europeo, que agrega todas las iniciativas de datos abiertos en Europa, enlaza a más de 400.000.

No hay duda que los datos abiertos han sido un gran paso adelante para la administración pública, a todos los niveles.

Fuente de la imagen: europeandataportal.eu

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?).

Fuente de la imagen: https://tsailiming.github.io

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.

]]>
https://desa.planetachatbot.com/chatbots-para-consulta-datos-abiertos/feed/ 0
Cómo crear un chatbot para hablar con tus repositorios en GitHub https://desa.planetachatbot.com/como-crear-chatbot-para-hablar-con-repositorios-en-github/?utm_source=rss&utm_medium=rss&utm_campaign=como-crear-chatbot-para-hablar-con-repositorios-en-github https://desa.planetachatbot.com/como-crear-chatbot-para-hablar-con-repositorios-en-github/#respond Wed, 25 Sep 2019 11:13:18 +0000 https://desa.planetachatbot.com/?p=904 ¿Quieres manejar cómodamente tus proyectos software desde Slack (o similares)? O, aún mejor, ¿quieres ayudar a usuarios inexpertos a explicar mejor los errores que encuentran en tu software para no perder el tiempo intentando recopilar toda la información que necesitas para reproducir sus errores?. La solución a todos tus problemas es crear un chatbot que se entienda con GitHub. Aquí […]

The post Cómo crear un chatbot para hablar con tus repositorios en GitHub first appeared on Planeta Chatbot.

]]>
¿Quieres manejar cómodamente tus proyectos software desde Slack (o similares)? O, aún mejor, ¿quieres ayudar a usuarios inexpertos a explicar mejor los errores que encuentran en tu software para no perder el tiempo intentando recopilar toda la información que necesitas para reproducir sus errores?. La solución a todos tus problemas es crear un chatbot que se entienda con GitHub. Aquí te enseñamos como puedes construirlo.

De hecho, veremos como crear dos chatbots:

  1. (para usuarios) Un bot que ayude a los usuarios a escribir unos buenos bug reports para facilitar tu vida (ya sabemos que uno de las grandes amenazas a la sostenibilidad del software libre es la gran carga de trabajo que implica gestionar la comunidad, este tipo de chatbots puede liberar parte de tu carga)
  2. (para los responsables) Un bot que te avisa en Slack cada vez que una nueva issue o bug se abre y que te permite etiquetarlo y asignarlo a alguien sin salir de Slack.

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.

Un chatbot para escribir bug reports desde Slack

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.

De GitHub a Slack: recibir (y reaccionar) a notificaciones de 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:

  • Reciba este tipo de notificaciones de GitHub
  • Nos permita asignar etiquetas y una persona responsable a la nueva issue.

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:

Resumen: Hablando con 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.

]]>
https://desa.planetachatbot.com/como-crear-chatbot-para-hablar-con-repositorios-en-github/feed/ 0
Cómo añadir una interfaz conversacional a Zapier https://desa.planetachatbot.com/como-anadir-interfaz-conversacional-a-zapier/?utm_source=rss&utm_medium=rss&utm_campaign=como-anadir-interfaz-conversacional-a-zapier https://desa.planetachatbot.com/como-anadir-interfaz-conversacional-a-zapier/#respond Mon, 23 Sep 2019 11:17:18 +0000 https://desa.planetachatbot.com/?p=906 Zapier es una de las maneras más fáciles de automatizar tus procesos internos. Zapier te permite enlazar varias aplicaciones de forma que puedas pasar información de una a la otra cuando se produza un cierto evento. Por ejemplo, puedes usar Zapier para enviar un tweet cada vez que publicas un nuevo post en tu web WordPress. […]

The post Cómo añadir una interfaz conversacional a Zapier first appeared on Planeta Chatbot.

]]>
Zapier es una de las maneras más fáciles de automatizar tus procesos internos. Zapier te permite enlazar varias aplicaciones de forma que puedas pasar información de una a la otra cuando se produza un cierto evento. Por ejemplo, puedes usar Zapier para enviar un tweet cada vez que publicas un nuevo post en tu web WordPress.

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 bot
  • SlackTrelloBot-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 despliegue

Configuración de Zapier

Para 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.

Configuración para llamar a Zapier desde una aplicación externa

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!

Configuración de Slack

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.

Crea el chatbot que sabe “hablar” con Zapier

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😉 ).

Prueba el chatbot

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.

¡Crea tu propio 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.

]]>
https://desa.planetachatbot.com/como-anadir-interfaz-conversacional-a-zapier/feed/ 0