DIALOGFLOW

En esta parte del pequeño tutorial que estoy haciendo veremos las entidades de Dialogflow y como se comportan.

En la parte 1 del tutorial, vimos algo muy básico de como crear una intención y configurar las frases de entrada y las respuestas del bot. Hasta ahí, ya podemos dar inicio a crear asistentes virtuales con casos de uso básicos de preguntas y respuesta, solo es cuestión de configurar bien las intenciones y te aseguro que tendrás algo muy profesional.

Pero ahora vamos a complicar un poco más el caso de uso. Imaginemos que vamos a crear un bot para un clínica y configuraremos una cita de un paciente.

Inicamos creando el bot que es algo que ya vimos, y le ponemos Intent_Cita

En la parte inferior le saldra botones para agregar las frases, parametros, etc. Solo ponemos “Add…” a todo y listo!.

Manos a la obra!

Nuestro caso de uso dice: Un paciente se conectará con nuestro agente Nicolas y le dirá que desea una cita para el día 10 de noviembre, el agente le preguntará la hora de la cita y luego para culminar le preguntará si desea pagar en efectivo o con tarjeta de crédito, luego se registrará la cita y agradecerá al paciente por la llamada.

Perfecto en primera instancia lo que debemos de hacer es colocar la frase con la que el usuario probablemente indicara que quiere una cita.

Por ejemplo: “Buenas, quiero una cita para el dia 10 de noviembre.”

Al momento de colocar la frase y presionar Enter, nos dimos con la sorpresa que Dialogflow entendió lo que deseabas poner, y eso es lo maravilloso de esta tecnología, pero vamos a ver que entendio.

Si vemos, agregó dos entidades de manera automática como una ayuda para nosotros, estas entidades son del mismo sistema, el cual asume que una parte de la frase hace referencia a una fecha y la otra parte hace referencia a una hora especifica.

En este caso una nos va a ayudar y la otra no, asi que eliminamos la que esta sombreando la palabra “una” por que dentro de nuestro contexto la palabra “una” la hacemos referencia a cantidad, mas no a la hora.

Si desean conocer más sobre las entidades del sistema visiten esta página: https://dialogflow.com/docs/reference/system-entities

Para eliminar presionamos en la palabra “una” y le damos el boton de “x”.

Y listo, nos deberia estar quedando así:

Perfecto, ya tenemos la primera frase del cliente y nos mencionó cuando desea la cita.

A esto podemos agregarle mas frases, por ejemplo:

Como verán el sistema sigue entendiendo que pertenece a la misma entidad “Date” del sistema, así que estamos bien hasta ahí.

Ahora vamos por la segunda parte, el sistema le tiene que preguntar al paciente a que hora desea la cita.

Para esto vamos a colocar nuevamente frases en la herramienta, simulando una respuesta a la pregunta del agente, por ejemplo:

Es importante mencionar que no debemos confundirnos en colocar preguntas del agente en las frases, estas frases solo son de entrada al chatbot simulando lo que podría estar escribiendo el usuario. Recalco por que espero no ser el único que se confundía en esto.

Ahora, lo que se tiene que hacer es poder insertar las preguntas que el robot dará a cada tipo de entidad que se ingresa. En este caso sabemos que el paciente indicará que desea una cita en cierta fecha, luego el bot le preguntará la hora de la cita, para hacer esto lo insertamos en la sección de parámetros.

En estos momentos deberían de tener algo así:

Entonces nos vamos a la entidad donde debemos de colocar la pregunta. Si seguimos los colores de la frase con la del parametro veremos que es el segundo parametro llamado “Time”.

Luego, en este parametro le vamos a decir que es requerido, y presionamos en el boton “Define prompts” y colocamos las preguntas que deseamos, algo así:

Perfecto, si todo esta de manera correcta, vamos a ver como va Nicolas hasta el momento. Guardamos el agente y probamos.

Vamos a colocar el siguiente ejemplo:

Al colocar esta frase y presionamos Enter, vamos a ver que sucede:

Excelente el bot me esta preguntando la hora de acuerdo a lo configurado, ahora voy a poner que quiero la cita para las 4 de la tarde.

Perfecto, el bot ya esta registrando las fechas y la hora y la respuesta, la coloque dentro de Response.

Ahora, estoy seguro que alguien se preguntará, donde se registro la fecha y la hora si no hemos hecho nada mas que configurar preguntas y respuestas.

Bueno, hasta este momento lo unico que va a hacer el sistema es guardar esos datos en el tiempo que dura la intención. Podemos ver estos valores en la consola de la derecha.

Acá vemos que realmente el sistema ha guardado la información, que el paciente ha mencionado en los parámetros correspondientes, entonces vamos por buen camino!.

Estoy seguro que en este momento podría tener otra pregunta que me diga: Cómo hago para guardar estos datos en mi base de datos o conectarme a una api de mi sistema de citas?. Para esto, voy a hacer otra parte mas adelante donde les enseñaré como trabajar con los webhook de google y podemos guardar la información en una base de datos, primero vayamos paso a paso.

Seguimos…

Para poder terminar nuestro caso de uso, nos faltaría agregar como desea pagar el paciente la cita. Como dialogflow no tiene este tipo de entidad (hasta donde yo sé), tenemos que crear una entidad personalizada, para esto nos vamos al panel izquierdo y nos vamos a la opción de entidades (Entities).

Presionamos el botón de Crear Entidad.

Vamos a crear una entidad que se llama TipoPago y colocaremos dos entradas que son las que posiblemente el paciente nos mencione. Efectivo y Tarjeta de Crédito y al costado, las posibles frases que una persona puede decir para dar entender el tipo de pago que va a realizar.

Presionamos grabar y con esto regresamos a nuestra Intención cita para terminar de configurar.

Ya en nuestra intención, vamos a colocar una frase de como el cliente podria responder a la pregunta de como pagará la cita. Colocaremos “Pagaré con efectivo.”

Perfecto, dialogflow ya entendio que existe una nueva entidad y ya la encontró. Entonces de aca ya es facil por que ya sabemos que debemos colocar que el parametro de la entidad es obligatorio y colocar una pregunta.

listo!, grabamos la intención y vamos a probar que tal quedó…

Seguimos el flujo hasta la última pregunta.

Y vemos que si funciona, entonces colocaremos que vamos a pagar con tarjeta de credito.

Y listo! tenemos todos los datos de la cita para que podamos registarla en nuestra base de datos.

Con esto ya culminamos la parte de entidades, podemos tener los casos de uso que deseamos y podemos manejarlo de la misma forma, por ejemplo agregar una ciudad, o hacer un caso de uso de una empresa de delivery, etc.

En la siguiente parte, tocare la parte de contexto en dialogflow.

Tip Adicional

Al momento de agregar una frase podemos definir si la frase tendrá un contexto directo con la entidad o dejamos que Dialogflow nos apoye con una frase ingresada. Esto se diferencia mediante “” o el “@”. Mas o menos asi:

y si probamos, veremos el resultado:

Según la documentación de Dialogflow, se recomienda usar las frases que contengan el “”, ya que de esta manera se puede ayudar a que robot pueda entender mucho mas las intenciones del usuario y pueda aprender.

Un comentario en «Entendiendo Dialogflow de manera definitiva — Parte 2 (Entidades)»
  1. Buen día, me gustaría saber si es posible dar un formato de tabla para poner información en un chat buscador en el chat de hangouts, el backend se desarrolla en python y se utiliza la herramienta dialogflow.

Deja una respuesta

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