CONSEJO-CHATBOT

Después de haber visto la parte básica de las intenciones y luego las entidades, ahora vamos a pasar a una parte interesante que son los contextos de la conversación.

En una comunicación entre dos personas, el Contexto es el conjunto de circunstancias en las cuales se produce la Comunicación (lugar y tiempo, cultura del Emisor y el Receptor, etc.), para no perder el contexto en una conversación siempre es importante tener información de la frase anterior para seguir teniendo una comprensión en el mensaje.

Por ejemplo, imaginemos una conversación donde exista un contexto:

  • Persona: Hola Nicolás, ¿sabes cuál es el clima en Lima, Perú?
  • Nicolás: Claro que sí, el clima es de 25 grados centígrados.
  • Persona: ¿Y en New York?
  • Nicolás: Es de 12 grados centígrados.

Como verán en esta conversación existe un contexto que Nicolás tuvo que tener para poder contestar la segunda pregunta sobre el clima en New York. Si esta primera pregunta no hubiese existido, no se sabría que deseaba saber la persona. Por ejemplo, si hago la pregunta a Nicolás sin un contexto antes no se sabría que responder.

  • Persona: ¿Ah y en New York?.
  • Nicolás: ¿Disculpa?

No existe contexto es por eso que no se puede saber la intención de la persona.

Ya con este preámbulo, vayamos a configurar esto en Dialogflow, iniciemos creando una intención que se llame: Intent_contexto_1

Ahora, en la parte de contexto vemos dos campos, que dicen “Add input Context” y “Add output Context”.

  • Add input context: En este campo se va a colocar el contexto de donde se está recibiendo la primera parte de la conversación o los contextos anteriores.
  • Add output context: En este campo se va a colocar el contexto a donde se enviará las respuestas siguientes.

De esta forma es como se enlaza la conversación y no se pierda el contexto. En dialogflow existen dos maneras de hacerlo, una que te ayuda la misma herramienta y la otra que sería de forma manual. Nosotros nos centraremos en la primera.

Tabla de contenidos

Crear contexto con Follow intent

Dialogflow te ayuda a crear los contextos en las conversaciones mediante los “Follow Intent”. En este caso ya tenemos creado una intención, ahora nos vamos a ir y coloquemos el cursor del mouse encima de la intención, y nos saldrá la opción para poder crear una intención de seguimiento:

1Jg4AzX9C6ptr2SFX2m72Qw

1qqcULfZkGsP3HHAUcPN1lg

Vamos a crear un caso de uso para que tenga mejor entendimiento.

El caso de uso dice así: Una persona ingresara al bot y le consultará a Nicolás si puede hacer una reserva en el hotel, Nicolás le preguntará si es socio del hotel y si ya se había hospedado antes.

Manos a la obra.

En la primera intención colocaremos las frases del cliente y en la respuesta colocaremos las preguntas que el bot le hará.

1wnVCx Sh HzkTTseMfAT3A

Perfecto, lo que estamos haciendo es colocar ciertas preguntas donde lo mas probable es que el cliente nos responda SI o nos responda NO.

Entonces comenzaremos a crear el hilo de la conversación, para esto nos vamos a la ayuda ya mencionada antes de dialogflow.

1G1zV gVWE2D uQE8IJBz g

Y vamos a presionar en primera instancia el que dice “YES”.

Y automáticamente como verán se genera una intención debajo de la intención principal.

1C5V7MMWNFa42I9GOzoyILA

Tal y como mencioné antes, esto es una ayuda que nos da dialogflow para generar contextos en la conversación, veamos que generó internamente.

Si vemos la intención principal, se generó un alias en el contexto de salida, esto indica que esta enviando esta información al siguiente contexto.

1zbSQcIX3kll4NdJtY4PVNAIntencion Principal

Y si vamos a la intención que se creó, veremos que esta recibiendo este mismo alias pero en el campo de entrada.

1w9u1MVgRUZsQOdI 1qhOrAIntencion de Segundo Nivel

De esta forma es como se va armando el contexto de la conversación, si vemos el nuevo contexto que creó el dialogflow para respuestas “YES”, se verá que la herramienta te ayuda a armar las frases.

1McEbvVisXPTJuv61C82hgQ

Pero sigamos con el caso de uso.

Al responder SI el usuario, entonces lo enviaremos a la siguiente pregunta, para esto generamos una nueva intención debajo de la ultima que se creo y quedaría mas o menos así:

1O2dz8EvOypTkRvyuGTPClg

Al hacer esto, veremos que las tres intenciones ya se encuentran enlazadas por los alias que genera la misma aplicacion.

1 RJfWuts1Vm wKFAQ130lQIntencion de segundo nivel

1Y6eS6onhd56UroM5KrzIngIntencion de tercer nivel.

Perfecto, ahora probemos para ver como quedó:

1suWxTk3dj86vylD r528VQ

1 pqvRToPO3XX0jGZVJpACQ

De esta manera, pueden ir creando un modelo conversacional de manera fácil y sencilla con la ayuda de dialogflow. En el ejemplo anterior si no existe un contexto creado y nosotros le ponemos al bot solamente la palabra SÍ, el bot no entenderá.

1dC2kkljXTr8OkNR1cnSY8g

Crear contexto de forma manual.

Así como Dialogflow te ayuda creando los contextos de manera automática, hay veces que esta situación no te podrá ayudar y tienes que crearlo de manera manual, para este caso usaremos el ejemplo del clima.

Crearemos una intención y lo configuraremos de la siguiente manera. En este caso, usaremos una entidad de sys.any.

1L3 BP2CKZpM8zLCfVIo rQ

Hasta este punto no hay ningún problema, si probamos nos saldrá la información.

1EitjJUG8FqGwbbAhpJ4X4w

Ahora, que pasaría si yo después le pregunto: “¿Y en Santa Cruz?”

1jBjSX2cCT2RqEwFBeiJ ag

El bot no va a entender por que esta frase no esta dentro de un contexto. Pero vamos a amarrarlo. En la intención vamos a colocar un alias dentro del campo de “Add output context” y lo llamaremos contexto_clima.

1PeJAaLDeVkgNIVBMvwfmRQ

Y vamos a crear otra intención más que se llamará: Intent_seguimiento_clima, donde lo configuraremos de la siguiente manera:

1G0vlYPQQ4UviSVK6wG8c9g

Y en la parte de contextos, recibimos la entrada contexto_clima.

1yB9zWWl4DV c4 8GYOrTsw

Vayamos a probar.

1KcU5wLWUzBBT1udqkTVZSQ

Como verán, también se encuentra funcionando las entidades y se pudo amarrar de manera correcta y manual los contextos en la conversación.

Ahora, dentro del mundo de contextos, también existe un concepto más que se llama Lifespan.

El lifespan es un número que se encuentra al costado de los alias del contexto, donde nos va a indicar la cantidad de veces que nosotros podemos configurar el contexto para que no se pierda. Según la documentación de dialogflow la cantidad de veces que se puede esperar para no perder un contexto es de 5 o en el intervalo de 20 minutos. Si pasa esto, entonces el contexto desaparecerá y el bot ya no entenderá si deseas seguir una conversación.

Ok, si no se entendió, mejor pasamos a un ejemplo.

Vamos a seguir con nuestro ejemplo de las ciudades y en el contexto de la intención principal, vamos a colocar el lifespan que sea 2.

1RRD0gS7p8Ak81 LtUGhsEg

Lo que estamos diciendo al bot que en una conversación y en este contexto, solo reciba como máximo dos frases mas fuera de contexto para que no se pierda. Hagamos el ejemplo:

1mewFCv5UP r5tkBIX4Ij5g

Ahora a partir de acá, el bot solo aceptara dos frases mas fuera del contexto antes de perderlo.

Probemos 1 vez.

Probemos 2 veces.

1uFoRjQss fn

Si ahora yo consulto y regreso a la conversación del contexto, ya se habrá perdido por que ya seria una tercera vez y yo configure el contexto que solo reciba dos veces.

1dS8orQ8NEBczE8NXDDs89Q

Ahora, si lo configuro y coloco el lifespan en 4, veremos que pasa:

Hago la pregunta.

12XIvk EL8M5gEHjMet8WOw

Pruebo 1 vez.

1MBb96NPvGVtQa3CWzfO0Vg

Pruebo 2 veces.

1dgKgXahvK0sjMfQYgoAlBQ

En el ejemplo anterior cuando configure en 2 el lifespan y en una tercera frase, se había perdido el contexto, ahora el lifespan esta configurado a 4, entonces si regreso al contexto de la conversación, el bot responderá sin problemas.

1OOXePOjohLWrAw M1IdDA

De esta manera es como funciona el concepto de lifespan.

Con lo mencionado, espero poder ayudado a entender un poco mas la parte de contextos de Dialogflow, se extendió un poco el artículo.

En la próxima parte, hablaré de eventos en dialogflow. Esta parte es un poco mas técnica pero muy útil si se desea consultar las intenciones desde fuera de la herramienta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *