Crea un Chatbot NLP Usando Dialogflow en Landbot

Crea un Chatbot NLP Usando Dialogflow en Landbot

En el momento de considerar construir un chatbot con Dialogflow o con otra herramienta NLP (Natural Language Processing o Procesamiento del lenguaje natural sin código) similar, probablemente no piensas en usar plataformas de chatbot sin código.

Diseñar una conversación por bloques, controlando la información proporcionada por cada usuario en cada paso no es la forma más adecuada con NLP…

De todos modos, tal y como recalcamos en nuestro artículo previo mencionando el concepto y la utilidad de los chatbots NLP, siendo puritano sobre Inteligencia Artificial IA (Software de Inteligencia Artificial) y chatbots NLP no sería el enfoque más adecuado desde la perspectiva de negocio.

En otras palabras, poner demasiados esfuerzos en construir un chatbot que no se diferencia de un humano es una pérdida de tiempo. En los negocios, la eficiencia siempre se impone.

Así que, cómo construir un chatbot con un feeling natural, sin que sea caótico y que a la vez te permita mantener el control?

Focaliza tu NLP en una plataforma de chatbot sin código.

Landbot es famoso por su intuitiva interfaz sin código. Permitiendo a los usuarios crear sus propios bots sin límites a la imaginación. Aquí, la lógica condicional, variables, y simples identificadores de palabra son los que acentúan la hiperpersonalización (y no el lenguaje natural).

Por otra parte, Dialogflow es famoso por agilizar el desarrollo del procesamiento del lenguaje natural. Aún así, y a pesar de las implicaciones, la herramienta es todavía compleja. Generalmente, incluso, fuera del alcance de un marketer standard.

Al introducir la integración con Dialogflow, Landbot te permite combinar elementos de NLP con características sin código. Además, crear un chatbot con Dialogflow usando la infraestructura de Landbot te da más control sobre la conversación. Permitiendo introducir una combinación de reglas y entradas de datos basadas en NLP.

Continúa leyendo para aprender un poco más acerca de Dialogflow o salta directamente al proceso y ejemplo de integración Landbot-Dialogflow.


Entender el Procesamiento de Lenguaje Natural de Dialogflow


Antes de ser adquirido por Google, Dialogflow era conocido como API.AI. Una vez completada la adquisición, el servicio se convirtió en gratuito y está disponible en Google Cloud Platform. (El precio de GSP depende del uso pero ofrece una prueba gratuita)

Dialogflow se posiciona como la herramienta líder para inteligencia artificial y soluciones de machine learning.

Problablemente Google esté desarrollando una herramienta con finalidades similares. Pero por ahora, Dialogflow es, en esencia, el motor de Procesamiento de Lenguaje Natural con mayor foco en Natural Language Understanding (NLU, o Comprensión de Lenguaje Natural), la parte de «comprensión» de NLP.

NLU, principalmente, da soporte al algoritmo para así identificar la expresión de los usuarios y, de ese modo, poder recoger la información necesaria para generar una respuesta viable. El motor de Dialogflow está capacitado para aprender y mejorar.

Esa mejora tan solo puede ser atraída por un entrenamiento activo, por parte de un desarrollador/diseñador de la narrativa.

El sistema no puede aprender de sus propias experiencias, por lo tanto, no se puede hablar de machine learning en este caso.

Los Desarrolladores usan Dialogflow de Tres Formas Distintas


  • Para crear chatbots de lenguaje natural sin uso de código
  • Permitir a los chatbots llevar a cabo varias funciones no conversacionales así como recuperar información a través de APIs (muy parecido a la función webhook en Landbot)
  • Únicamente como motor NLU (el servidor del usuario llama a la API de Dialogflow para analizar el lenguaje natural y recuperar los datos cruciales necesarios para proporcionar una respuesta relevante)

Componentes Básicos de Dialogflow:


🔶 Interfaz

Tres secciones principales conforman la interfaz del usuario de Dialogflow:

  • Izquierda: Menu (autoexplicativo)
  • Zona Central: Área de trabajo (aquí puedes crear intenciones o intents, entrenar al bot, diseñar respuestas, etc)
  • Derecha: Área de prueba (espacio para probar tu diseño al instante)

dialogflow-chatbot-interface

🔶 Agente

En los términos más simples, el Agente de Dialogflow es el chatbot que estás construyendo. Siendo la unidad más básica de la herramienta, maneja la conversación con una persona o tus usuarios finales. Piensa en ello como si se tratara de un agente humano de call center.

Un agente que necesita ser entrenado antes de poder realizar su trabajo.

La configuración de un agente es el primer paso hacia la creación de un chatbot NLP de Dialogflow.

dialogflow-chatbot-interface

Podrás ver o cambiar de agente en el menú desplegable de la izquierda o haciendo clic en “View all agents” (Ver todos los agentes).

Un agente se compone de una o más intenciones (intents).

🔶 Intenciones

En los términos más simples, las intenciones ayudan a tu agente a identificar lo que el usuario quiere decir. Ayudan a tu agente a percibir y analizar la entrada del usuario y a seleccionar la reacción más relevante.

Por ejemplo, la intención en el flujo de diálogo puede identificar que el significado de «Hola» es un «Saludo» y así decidir una respuesta apropiada. En este sentido, puedes entrenar a tu agente para diferenciar entre varias intenciones. La intención de encontrar información, la intención de comprar o la de realizar una reserva.

dialogflow-intent-components

La sección de Intenciones (Intents) de Dialogflow tiene múltiples componentes: Contextos, Frase de Entrenamiento (el usuario dice), Eventos, Acción, Respuesta y Cumplimiento. Sin embargo, no todos son obligatorios para que la intención funcione correctamente.

🔶 Frases de Formación (El Usuario Dice)

Por lo tanto, dentro de la función de intención, podrás definir una lista ilimitada de frases de formación «El usuario dice» que ayudan al agente a identificar y activar esa intención en particular.

La idea es enumerar diferentes variaciones de cómo un usuario puede usar una misma solicitud/pregunta. Cuantas más variaciones definas, más posibilidades tendrás de que un agente «comprenda» y active una intención correcta.

A continuación se muestra una lista de saludos variables que garantizan que el agente pueda reconocerlo.

Pero sería posible para mí desarrollar esto aún más. Por ejemplo, cuando se habla de querer aprender a tocar un acorde de guitarra, la oración puede comenzar con muchas palabras diferentes que se pueden usar para actuar:

training-phrases-for-nlp-bot

Veamos un caso más complejo… a continuación, una lista de frases asegura que un agente es capaz de reconocer que el usuario está solicitando instrucciones de transporte. Veamos una variedad de formulaciones diferentes:

  • ¿Cómo llegar allí?
  • Cómo puedo llegar a XXX
  • Cuál es la mejor manera de llegar a XXX
  • Quiero saber cómo llegar a XXX
  • Quiero saber cómo ir a XXX
  • Cómo llego allí XXX
  • Cómo puedo llegar a XXX
  • Puedo llegar allí en…
  • Es posible venir…
  • Puedo venir en…

🔶 Entidades

Las entidades (entities) se usan para identificar y extraer datos útiles y procesables de las entradas de lenguaje natural de los usuarios (algo así como @variables en Landbot, sólo que de forma un poco más inteligente).

Por lo tanto, mientras que las intenciones permiten a tu agente entender la motivación de los usuarios detrás de una entrada en particular, las entidades son una forma de seleccionar piezas específicas de información mencionadas en una entrada de lenguaje natural no estructurada.

Una entidad típica puede ser una hora, fecha, lugar o nombre.

Dialogflow ya contiene una gran variedad de entidades incorporadas que se llaman entidades de sistema (e.g. @sys.geo-city or @sys.date). Por lo tanto, es posible asociar muchas entidades introduciendo las frases de formación. Dialogflow las identificará automáticamente.

training-phrases-identifying-entities

Si los parámetros del sistema no son suficientes, puedes crear tus propias entidades haciendo clic en la sección correspondiente en el menú de la izquierda. (¡En un momento te mostraremos el proceso de creación de entidades!)

create-custom-entity-for-chatbot-using-dialogflow

Si deseas que una entidad sea mapeada, debes especificarla en la sección «Actions & Parameters» (Acciones & Parámetros) de la Intención que estás editando.

actions-and-parameters

🔶 Cumplimiento

Diseñar para el cumplimiento (fulfillment) en Dialogflow es muy parecido a implementar un webhook en Landbot. Permite a tu bot/agente recuperar, comprobar o verificar la información de una base de datos de terceros a través de una conexión API.

Para darle un ejemplo, imagine que el usuario pregunta:

  • ¿Qué tiempo hará en Barcelona este fin de semana?

Dialogflow identifica la intención y las entidades clave:

  • ¿Qué tiempo hará en Barcelona este fin de semana?

Y envía la información al webhook diseñado, el cual maneja la solicitud y devuelve los datos requeridos.

fullfillment-in-dialogflow

Sin embargo, no es necesario que se cumpla para que tu chatbot NLP funcione correctamente si la recuperación de la información no es necesaria para que funcione correctamente. Así que, no te preocupes demasiado por ello.

🔶 Respuesta

La sección de respuesta (responses) incluye el contenido que Dialogflow entregará al usuario final una vez que la intención o la solicitud de cumplimiento haya sido completada.

Dependiendo del dispositivo anfitrión de tu chatbot, la respuesta se presentará como contenido textual y/o rico o como contenido de voz.

Deberás diseñar una variación de respuestas para cada una de las intenciones. Las respuestas pueden contener texto estático o variables.

Éstas mostrarán la información recogida o recuperada.

chatbot-using-dialogflow-responses

🔶 Contexto

Piensa en el “Contexto” como el pegamento que encadena intenciones aparentemente no relacionadas entre sí.

En Dialogflow, el Contexto se usa para que el agente pueda recordar. Mejor dicho, almacenar una referencia a los valores de las entidades capturadas a medida que el usuario se mueve de una intención a otra en el curso de la conversación.

Pueden ser usados para arreglar conversaciones rotas o para ramificar, y mantener conversaciones. Un ejemplo inteligente de este caso de uso en el contexto fue descrito en un artículo de Medium de Moses Sam Paul.

Muestra cómo el contexto ayuda al usuario a pasar de reservar un vuelo (intención 1) a reservar una habitación (intención 2) sin tener que volver a introducir los parámetros cruciales de la entidad: fecha de llegada y salida.

understanding-context-in-dialogflow

Los contextos también te dan un control mucho mejor sobre las conversaciones más complejas al permitirte definir los estados/etapas específicos en los que debe estar una conversación para desencadenar una intención.

Uno de los mejores ejemplos que encontré representando este uso del contexto es el que aparece en el artículo The Chatbots Life de Deborah Kay gracias a un ingenioso ejemplo de chistes de ‘Knock-knock ‘. Asegúrate de comprobarlo!

Aún así, aunque los contextos pueden ser muy útiles, si estás construyendo un diálogo lineal simple, puede que no los necesites en absoluto.

🔶 Agentes Pre-construidos & Small Talk

Además de los elementos mencionados anteriormente, es importante mencionar que Dialogflow también ofrece una variedad de agentes pre-construidos. Éstos pueden ser de gran ayuda si estás buscando cubrir algunos de los temas de conversación más básicos.

prebuilt-agents

Además, para cualquier agente, también puedes activar (pero no tienes que hacerlo) un intento de «Smalltalk». Esta característica es capaz de llevar a cabo la típica charla por defecto.

Además de las intenciones que has construido, hace que el bot parezca un poco más amigable.

small-talk-in-dialogflow

Sin embargo, antes de tomar cualquiera de los atajos, te recomiendo que intentes comprender y construir tu mismo las intenciones para ver cómo funcionan. Es probable que te ahorres un mundo de problemas porque cuando se trata de NLP, incluso los atajos son difíciles.


Cómo Construir un Chatbot con Dialogflow: Simple & Lineal


¡Pero basta de teoría!

Para ayudar a desmitificar un poco Dialogflow así como para ayudarte a entender su funcionamiento, voy a construir un simple agente.

Naturalmente, para empezar, necesitas una cuenta de Dialogflow. Como ya hemos mencionado, la configuración de Dialogflow es gratuita. Aún así Google te pedirá la información de tu tarjeta de crédito o de débito. Principalmente para asegurarse de que no eres un robot sino una persona real.

1. Activar Cuenta de Dialogflow & Crear Tu Primer Agente


Para crear tu primer agente, simplemente pulsa la opción «+ Create Agent» en el menú lateral de la izquierda.

create-agent-chatbot-using-dialogflow

Rellena el nombre del agente, el idioma por defecto, etc.

creating-dialog-flow-agent

Una vez hecho esto, Dialogflow te redirigirá a la interfaz de usuario principal. Sin más preámbulos, te invitará a crear la primera intención para tu agente.

2. Familiarízate con las Intenciones Predeterminadas


default intents

Como puedes ver, ya hay dos intentos predeterminados disponibles:

  • Intención de Retroceso por Defecto: Esta intención te ayuda a tratar las instancias en las que tu agente no es capaz de hacer coincidir las entradas del usuario con ninguna de las intenciones. En su lugar, responde con un cortés “Lo siento, ¿podría decir eso de nuevo?” o con respuestas predeterminadas similares. Puedes también agregar o editar las respuestas predeterminadas en la intención y cambiarlas por algo que se ajuste al tono de tu marca.
  • Intención de Bienvenida Predeterminada: Esta es una intención simple lista para reaccionar a cualquier forma de saludo que haya con una plétora de frases de formación ya establecidas. Por lo tanto, el bot ya sabe cómo reaccionar cuando alguien dice “Hola” o alguna alternativa distinta.

3. Crea tu Intención Personalizada


Para los propósitos de esta demostración, decidí crear un simple agente con una intención de reserva directa.

Antes que nada, dale a tu intención un nombre descriptivo claro. Algo como «Intención 1» puede funcionar si tienes sólo un par de intenciones. Si se usa algo más complejo es probable que cause problemas.

Luego, ignora el «Contexto» y los «Eventos» ya que ninguno de ellos es necesario para que esta intención funcione. En lugar de ello, céntrate en las frases de formación.

🔺 Definir Frases de Formación

Por lo tanto, para entrenar a mi agente en el intento de reserva, escribí una lista de frases que la gente probablemente usa para realizar una reserva en un restaurante.

dialogflow-chatbot-example-training-phrases

Recuerda que Dialogflow resaltó automáticamente las entidades con las que ya estaba familiarizado (entidades del sistema).

🔺Identifica Entidades Cruciales para el Cumplimiento de la Intención

identifying-system-entities

El sistema analizó el lenguaje natural y aislado así como los datos clave clasificados necesarios para hacer una reserva: fecha, hora y número de huéspedes.

Sin embargo, para completar la reserva con éxito, también necesitaba obtener el nombre y el número de teléfono de una persona. Por lo tanto, añadí algunas frases de formación. Con el propósito de asegurar que el agente sea capaz de identificar esta información dentro de la entrada de lenguaje natural.

training-reservation-agent-to-collect-entities

Al pasar por las frases de formación, las entidades identificadas se almacenan en la sección «Actions & Parameters» (Acciones & Parámetros):

actions and parameters

🔺Define Entidades Requeridas & Sus Indicaciones

PERO

Al repasar las variaciones de las frases de la capacitación, verás que algunas de ellas incluyen más información que otras. De hecho, algunas no incluyen ningún tipo de datos.

Entonces, ¿cómo te aseguras de que después de que el agente identifique la intención, proceda a recopilar TODA la información necesaria?

La solución es bastante simple.

setting-required-entities

Todo lo que necesitas hacer es marcar una casilla para clasificar la entidad como requerida y crear PROMPTS (preguntas) que el agente preguntará si falta alguna información requerida.

Para editar una pregunta, haz clic en el texto azul bajo la columna PROMPTS correspondiente a la entidad para la cual deseas diseñarla. En la ventana emergente, podrás crear diferentes variaciones del prompt:

entity-prompts-in-dialogflow

De este modo la creación de un aviso para cada una de las entidades asegurará que tu chatbot identifique lo que falta y lo pida.

Por ejemplo, si un usuario dice simplemente “Quiero hacer una reserva” el bot hará una pregunta para cada una de las entidades.

Pero si el usuario dice “Resérvame una mesa para 4 personas mañana, a las 7 de la tarde” el bot sólo pedirá el nombre y el número de teléfono ya que ya habría previamente identificado las otras 3 entidades requeridas desde la primera entrada del usuario.

Asegúrate de GUARDAR todos los cambios en la esquina superior derecha!

🔺Crea Entidades Personalizadas

¿Y si nuestro restaurante tiene más de una ubicación?

Claro, este bot es capaz de hacer una reserva. Para ello es necesario saber cuál de los restaurantes el usuario planea visitar.

En este caso, podemos crear una ENTIDAD PERSONALIZADA para la ubicación del restaurante.

Por lo tanto, asegúrate de guardar todos los cambios en la sección Intención (Intents) y haz clic en la opción «ENTITIES» (Entidades) en el menú de la izquierda.

create-custom-entity

Haz clic para crear tu primera entidad.

Primero, Dialogflow te pedirá que definas el nombre de la entidad y creará sus parámetros.

Con respecto a este ejemplo de intención, decidí definir dos restaurantes diferentes que serán clasificados bajo la misma entidad.

custom-entity-restaurnat-location

Después de hacer clic en “Click here to edit entry” (Haga clic aquí para editar la entrada), Dialogflow te pedirá que introduzcas el “Reference Value” (Valor de Referencia) y un “Sinónimo” de ese valor.

custom entity params and sysnonyms

Dado que mi entidad es «Restaurant_Location», los valores de referencia que caen bajo esta entidad son los nombres de nuestras localizaciones de restaurantes: NAP Mar y NAP Antic.

defining-parameters-for-custom-entities

Sin embargo, digamos que no todos estos clientes ficticios conocen el nombre específico de una localización en particular. Por lo tanto, para facilitar la tarea, creé una lista de sinónimos. Sinónimos que los clientes pueden utilizar para describir estas ubicaciones:

custom-entity-parameters-synonyms

Si quieres estar 100% seguro de que el bot capte la ubicación sin importar el error tipográfico que se produzca, activa FUZZY MATCHING en las opciones bajo el título de la entidad. De esta manera, si alguien escribe «Balard» en lugar de «Baluard» el bot sabrá que el usuario está hablando de la ubicación del NAP Antic.

custom-entity-fuzzy-matching

Presiona SAVE (Guardar) para almacenar la entidad y vamos a probarla!

Primero, para asegurarnos de que tu chatbot reconoce la entidad, intentamos añadir una frase de entrenamiento incluyendo la ubicación.

Como puedes ver, gracias a los sinónimos que definimos, el agente sabe que la palabra «playa» se refiere a una de las localizaciones del restaurante y por lo tanto la identifica como ubicación del restaurante:

custom-entity-training-test

De la misma manera identifica el nombre real de nuestra sucursal como ubicación:

custom-entity-training-test-2

Veamos si he entrenado al robot adecuadamente…

En el vídeo, se puede ver que a partir de una frase bastante desordenada el bot recuperó con éxito las 4 entidades mencionadas. A continuación, procedió a preguntar sobre las que todavía estaban desaparecidas.

🔺Diseñar Respuestas de Intención

Por último, pero no menos importante, necesitábamos definir una lista de respuestas que los usuarios recibieran. En este caso, las respuestas incluyen una recapitulación de todos los valores de entidad introducidos que confirman la reserva:

dialogflow-chatbot-agent-responses

Mira el procesamiento y la respuesta de la prueba a continuación:


Cómo Integrar Dialogflow con Landbot


Landbot se hizo un nombre por sí mismo al permitir a los profesionales sin conocimientos técnicos construir una interfaz conversacional sin código.

Sin embargo, hasta ahora, estas interfaces conversacionales necesitaban estar basadas en reglas, confiando en la lógica condicional y el reconocimiento de palabras clave para la hiper-personalización.

No hay nada malo en ello…

Sin embargo, si tienes una interfaz como WhatsApp que no permite realmente obtener respuestas enriquecidas, el diseño de la conversación se convierte en un poco más difícil.

Anteriormente, he comentado una serie de consejos y trucos para el diseño de conversaciones de WhatsApp cuando se trabaja con un bot basado en reglas.

Pero todos los trucos tienen sus límites.

Ahora, gracias a la integración de Dialogflow, puedes aprovechar todas las características sin código de Landbot mientras utilizas NLP.

Así que, ¡vamos a ver cómo podemos integrar un agente de Dialogflow en el constructor de chatbot de Landbot!

1. Crea un Bloque de Dialogflow en Landbot


Dibuja una flecha desde el punto de salida verde para crear un nuevo bloque como de costumbre. A continuación, busca y selecciona la integración de Dialogflow.

Hay tres secciones principales dentro del bloque Dialogflow.

2. Sección I – Bloque de Dialogflow: Activar Project JSON Key


La primera sección es la clave de la integración. Requiere que actives la clave JSON de Google Project que corresponde a un único agente de Dialogflow.

Landbot-dialogflow-integration-JSON-key

Para poder hacerlo, es necesario descargar esa clave desde Dialogflow.

Aquí mostramos cómo!

Haz clic para acceder a la configuración del agente que deseas conectar con Landbot. En nuestro caso ese sería nuestro Asistente de Reservas (Reservations Assistant).

Get-JSON-File-Landbot-Dialogflow-integraiton

A continuación, haz clic en el enlace del campo «Cuenta de Servicio» (Service Account)

Se abrirá una nueva pestaña.

Haz clic en los tres puntos de “Actions» (Acciones) y selecciona “Create key” (Crear clave).

download-agent-JSON-key-from-dialogflow

A continuación, confirma que deseas crear un archivo JSON.

confirm-JSON-file

El archivo se descargará en tu PC:

json-file-download-confirmation

Finalmente, una vez que todo esto esté hecho, vuelve a tu constructor de Landbot e introduce la clave JSON.

landbot-dialogflow-integration-json-key-upload

Abajo verás un campo llamado “Dialogflow Session Identifier” (Identificador de Sesión de Dialogflow) con la variable @id. Este es un identificador de conversación único para que Dialogflow sea capaz de distinguir entre las conversaciones. No hay necesidad de preocuparse por eso.

3. Sección II – Bloque de Dialogflow: Configurar la Solicitud


A continuación, definirás la información que se deseas enviar a Dialogflow.

chatbot-using-dialogflow-in-landbot-setup-request

  • Texto de la Intención. Campo obligatorio que debe contener la variable que captura la entrada de lenguaje natural del usuario.
  • Contexto de Entrada. Campo opcional para ayudar a reducir su intención. El contexto necesita ser definido en Dialogflow también para funcionar.
  • Vida Útil. Sólo se requiere si se define el Contexto de Entrada. Le dice al chatbot cuánto tiempo debe recordar un determinado contexto. En Dialogflow la configuración predeterminada de la vida útil es de 5 respuestas o 20 minutos.
  • Idioma. Inglés por defecto. Modifícalo tan solo si has definido un idioma diferente en tu agente de Dialogflow.
  • Zona Horaria. Campo opcional. Si no está definido en Landbot, el bot utilizará la zona horaria preestablecida en Dialogflow.

Para los propósitos de nuestro ejemplo, el único campo en «Set the Request» (Configurar la Solicitud) que necesitamos definir es el “Input Text” (Texto de Entrada).

Pasamos directamente del mensaje de bienvenida de respuesta al bloque Dialogflow.

Por lo tanto, nuestro texto de entrada será la respuesta que se almacena en la variable por defecto @welcome. (Puedes verificarlo haciendo clic en los tres puntos de la esquina derecha del bloque de bienvenida).

4. Sección III – Bloque de Dialogflow: Guardar la Respuesta


Finalmente, en la última sección del bloque de integración de Dialogflow, necesitamos definir qué datos queremos extraer del motor de NLU para Landbot.

  • Entidades. Un campo en el que se necesita definir qué valores de entidad se quieren recibir del análisis de entrada de lenguaje natural de los usuarios de Dialogflow.
  • Respuesta. Un campo obligatorio donde se necesita elegir una variable para representar las respuestas de Dialogflow en la interfaz Landbot.
  • Context de Salida. Un campo opcional sólo necesario si has definido un contexto de salida en Dialogflow.
  • Payloads (Carga útil). Requiere conocimientos básicos de codificación. Cuando los datos se transmiten a través de Internet, cada unidad enviada comprende tanto la información de cabecera como los datos reales que se envían (conocidos como payload). Las cabeceras y los metadatos se envían sólo para permitir la entrega del payload.

Diseñé la intención de reserva para obtener los siguientes datos: fecha, hora, número de huéspedes, ubicación, nombre y número de teléfono. Por lo tanto, estas serán las mismas entidades a procesar en el constructor de Landbot.

associate-entities-with-variables

Para que esto funcione, el nombre del parámetro que se introduce en la sección debe ser el mismo que el nombre del parámetro que has definido en el Dialogflow.

parameter-name

Ahora, simplemente asocia cada parámetro con una variable (crea la tuya propia o usa una de las preestablecidas por Landbot).

Siguiente… ¿Recuerdas cómo creamos las respuestas de Dialogflow? ¿O los avisos de datos que definimos para obtener toda la información que necesitamos del cliente?

dialogflow-chatbot-agent-responses

Configurar la respuesta…

Esta parte, te permitirá crear una variable para representar las respuestas de Dialogflow (ya sean respuestas finales o avisos) y, de esta forma, mostrarlas en tu interfaz.

Nombré la variable – simplemente – @response_1

response-variable

En la mayoría de los casos, no necesitarás el contexto de salida o payloads. Por lo tanto puedes ignorar los campos y hacer clic en GUARDAR.

5. Crea el Flujo para cada Salida


Ahora es el momento de conectar el bloque de integración de Dialogflow con el resto del mundo. Como puedes ver, el bloque tiene tres salidas diferentes: Verde, Amarillo, y Rosa.

integrate-dialogflow-in-landbot
  • Salida Verde = Correcto

La salida verde es la ruta que el bot tomará cuando la entrada de lenguaje natural que enviaste a Dialogflow coincida, con éxito, con una intención. En caso de que hayas solicitado entidades, el bot tomará esta ruta cuando todas las entidades requeridas hayan sido obtenidas. La salida verde correcta permite al bot proceder con el flujo de conversación.

  • Salida Amarilla = Incompleta

Tu bot viajará por la ruta amarilla en caso de que Dialogflow haya recogido algunas pero no todas las entidades requeridas. Por lo tanto, después de coincidir con éxito con la intención, devolverá la conversación de nuevo a Dialogflow permitiéndole preguntar los mensajes prediseñados.

  • Salida Rosa = Fallo

El bot toma esta ruta en caso de que Dialogflow no consiga hacer coincidir la intención con la entrada de lenguaje natural. Por lo tanto, la ruta de conversación retrocederá por defecto y permitirá al usuario intentarlo de nuevo.

¿Qué significa esto en la práctica?

Arrastra una flecha de cada salida para crear Pregunta: Bloque de texto que permite la entrada de lenguaje natural por parte del usuario.

Nota: Si estás creando un flujo NLP para la web y quieres hacer más obvio el final de la conversación, selecciona «Enviar un mensaje» que hará que el campo de entrada del usuario no aparezca en absoluto. Naturalmente, esto no cambiará nada en interfaces como WhatsApp o Facebook Messenger, en las que el campo de entrada es una parte natural de la interfaz.

Sin embargo, en lugar de preguntar en el campo «Texto de la pregunta», introduce la variable de respuesta del flujo de diálogo creado en el bloque anterior. Luego, cambia la variable de respuesta de @text a @welcome ya que es la entrada configurada para enviar a Dialogflow en el bloque principal:

De esta manera, cuando el chatbot sigue la ruta:

  • Verde @response_1 corresponderá a la respuesta de intención final
  • Amarilla @response_1 corresponderá a uno de los avisos predefinidos
  • Rosa @response_1 corresponderá a una de las respuestas definidas en la intención «Default Fallback»

Gracias a la integración de la NLP (Natural Language Processing), los clientes pueden completar la reserva de una forma que les resulte natural.

Por ejemplo, pueden proporcionar información poco a poco:

O toda a la vez:

El bot sabrá qué hacer!


Ventajas de Construir un Chatbot de Landbot Usando Dialogflow


Ahora que has visto cómo crear un chatbot en Landbot usando la integración de Dialogflow, veamos más de cerca los beneficios de esta conexión.

Recolección de Datos Mejorada


En primer lugar, el uso de Dialogflow permite a los Landbotters recolectar datos de manera más eficiente.

Para ser más precisos, cuando tu bot basado en reglas pregunta “¿Cuál es su nombre?” y el cliente escribe “Mi nombre es John Smith” el conjunto se guarda bajo la variable @nombre en tu CRM.

Sin embargo, si ejecutas la misma pregunta a través de Dialogflow, el agente podrá seleccionar la entidad de nombre y enviar sólo “John Smith” de vuelta a Landbot para poder así ser almacenado bajo la variable @name.

Control & Eficiencia


El problema habitual de los bots de NLP es que a menudo dejan a los usuarios demasiada libertad. Esto crea un problema ya que los usuarios terminan confundidos sobre lo que pueden y no pueden pedir. Así como sobre la manera apropiada de pedirlo.

Con Landbot, puedes crear una experiencia de NLP dentro de la estructura de un bot basado en reglas.

structured nlp chatbot using dialogflow in landbot

Esto sólo estructura el viaje del cliente para evitar dudas y confusiones.

Aunque también hace que la creación de agentes de NLP sea mucho más fácil, al poder descomponer conversaciones que de otra manera serían complejas en intentos más simples, mejorando así la atención al cliente.

Para ser más específico, puede que hayas notado que mi bot de reservas anterior no dio muchas opciones al usuario al preguntarle «¿Le gustaría hacer una reservación?». De esta manera, está bastante claro lo que el bot puede y no puede hacer.

Pero! Siempre hay que tener en cuenta las excepciones, habrá gente que responda «No, …… » todo lo que he tenido que hacer era crear un intento de «No-Reserva» y traicionarlo con frases como ««No» «Nop» «No ahora»» y proporcionar una respuesta apropiada:

no-reservation

NLP y la Interfaz Visual Sin-Código en UNO


Por último, pero no menos importante, Landbot te permite diseñar un bot de NLP dentro de una interfaz visual limpia y fácil de usar.

Por lo tanto, puedes usar Dialogflow sólo en lo que es mejor, la parte de comprensión del lenguaje natural. De esta forma, puedes dejar cosas como las integraciones y la configuración del ‘frontend’ a Landbot donde puedes hacerlo con unos pocos arrastrar-y-soltar.

landbot-builder-interface-and-intergrations


Regístrate, inicia sesión o haz un upgrade para crear tu primera experiencia con Landbot o un chatbot de WhatsApp usando Dialogflow hoy!


Daniel Ferrandiz
daniel.ferrandiz@landbot.io