15/06/2021 | Consejos tecnológicos,Desarrollo de aplicaciones,Desarrollo de software,Tecnologías

Dialogflow | Cómo crear un chatbot con Dialogflow | Guía práctica

DialogFlow es una plataforma que nos permite crear chatbots o bots conversacionales configurables encima de su maravillosa IA de procesamiento de lenguaje natural. Esto nos dará el poder de jugar con un IA entrenada con prácticamente “todos los datos del mundo” sin necesidad de gastar el tiempo y dinero que esto conlleva, y adaptándola a nuestras necesidades.

Hoy cubriremos una mínima parte de lo que se puede hacer con esta herramienta, pero nos dará una idea del potencial que tiene y en próximos blogs podremos utilizarla más a fondo.

En esta guía vamos a crear un chatbot básico para pedir cita en un peluquería.

Cómo crear un chatbot con Dialogflow: 4 conceptos principales 

Para la creación del chatbot debemos conocer algunos conceptos para entender cómo implementarlo:

  • Intenciones (Intents): Son los objetivos que tiene nuestro usuario al hablar con el chatbot. Se pueden simplificar en las frases que el usuario escribirá en el chat para conseguir su objetivo. En nuestro caso, por ejemplo: “Quiero reservar hora para mañana en la peluquería”.
  • Entidades (Entities): Son los datos que queremos conseguir del usuario o con los que realizaremos ciertas acciones. Para nosotros: 
    • El día de la cita
    • La hora de la cita
  • Contexto (Context): Se utiliza para guardar información entre intentos para poder hacer un lenguaje más natural.
  • Cumplimiento (Fulfillment): Es una función opcional que nos permitirá obtener, modificar y validar datos del endpoint deseado directamente desde el chatbot.

Crear un agente con el chatbot DialogFlow

Para comenzar, nos vamos a la web de DialogFlow, nos registramos con nuestra cuenta de google y creamos un nuevo agente. Al hacer esto, se nos solicitará el nombre del agente, idioma, zona horaria y si queremos asociarlo a algún proyecto existente, como por ejemplo, un proyecto de Firebase.

En este caso nos interesa un proyecto nuevo, ya que no queremos integrar aún, pero sed libres y juntadlo con vuestras bases de datos si queréis ir más allá. En cuanto al idioma os recomiendo que elijáis uno con el que estéis familiarizados.

Al crear nuestro agente, por defecto, tenemos definidas intenciones de error y de saludo, por tanto, nos pondremos directamente a crear la intención de reservar cita.

Creación de intenciones

Nos dirigimos al apartado “Intents” y creamos nuestra primera intención que llamaremos “Reservar cita”.

En este caso no necesitamos contexto, únicamente añadir algunas frases de entrenamiento, estas son las frases que diría nuestro usuario para reservar la cita, como por ejemplo:

  • Quiero hacer una reserva
  • Quiero hacer una reserva para mañana
  • Querría hacer una reserva para mañana a la 1

Por tanto, introducimos estas frases como frases de entrenamiento. Al hacerlo, veremos que nos aparecen seleccionadas ciertas partes de la frase con un tipo de entidad, en estos casos deberemos eliminar las entidades que no nos interese guardar y quedarnos con las que son importantes. Aquí va un ejemplo:

Con la frase “Querría hacer una reserva para mañana a la 1” se detectan dos parámetros, un número y una fecha. En este caso, la fecha nos interesa porque nos aporta la hora de la cita, pero el número no nos aporta nada de información, por tanto, lo eliminamos de la lista. 

Una vez definidas las frases de entrenamiento, pasamos a “acciones y parámetros” donde podremos indicar cuáles de las variables obtenidas son obligatorias, y en caso de no haberlos obtenido con las frases del usuario, crear nuevas preguntas para obtener esa información.

Nosotros vamos a marcar la fecha como parámetro obligatorio. Para ello, marcamos la casilla de “Required”.

Y como por ejemplo con la frase ya añadida “Quiero hacer una reserva” no tenemos aún la información de la fecha, vamos definir nuevas preguntas para que el usuario nos la facilite. Para esto, hacemos click en “Define prompts” y escribimos una o varias preguntas para obtener el dato que necesitamos.

En este punto, ya podemos hacer click en “Save” y esperar a que nos aparezca el mensaje de que nuestro chatbot está entrenado. Una vez hecho esto, puedes probarlo en la barra de texto que aparece arriba a la derecha y comprobar que si, por ejemplo, tu primera frase es “Quiero hacer una reserva” el bot te contestará con la pregunta para obtener la fecha. Sin embargo, si le decimos “Querría hacer una reserva para mañana a la 1” ya tendría toda la información necesaria. En caso de que la segunda opción ocurriese, sería interesante darle feedback al usuario de que ha hecho bien su reserva y para ello, vamos a crear una respuesta para cuando todas las variables necesarias hayan sido obtenidas.

Creación de respuestas en chatbot con DialogFlow

Nos vamos al apartado “Responses” y creamos una respuesta final. Podemos, incluso, mostrar los valores obtenidos en la charla poniendo “$nombre-de-variable”, en nuestro caso el mensaje quedaría así: “Se ha realizado la reserva para la fecha $date-time”.

Como podéis ver, es muy sencillo crear un chatbot en DialogFlow. Para finalizar, vamos a ver cómo crear un parámetro personalizado. En este caso, una lista de nombres de peluquerías. Este parámetro no es otra cosa que una entidad, así que, vamos a ello.

Creación de una entidad

Nos vamos al apartado “Entities” y creamos una nueva entidad, como decíamos, vamos a crear una lista de dos locales y a cada uno de los locales le vamos a poner posibles sinónimos por los que los usuarios pudieran hacerles referencias, quedando algo como esto.

Con esto, y marcando la casilla “fuzzy match”, nuestros usuarios podrán referirse a uno de los dos locales de diferentes formas como: “la peluquería moderna” o “en la que trabaja Manuel”.

Ahora volvemos a la intención de reservar y añadimos el local como parámetro obligatorio, y creamos algunas frases para que nos solicite el local, como ya hemos hecho en el apartado anterior, y testeamos nuestro chatbot.

Una vez que quedemos satisfechos con el resultado, podemos pasar a la publicación.

Publicar un chatbot con DialogFlow

Nos vamos al apartado “Integrations” y veremos que tenemos gran cantidad de opciones para integrar nuestro bot, desde Slack hasta Telegram pasando por Hangouts, Messenger, Twitter e incluso llamadas telefónicas. Por simplicidad, activamos la demo web y vamos al link que nos proporciona. Allí podremos testear nuestra ¡obra maestra!

Usar DialogFlow con un experto

Como habéis comprobado, crear un chatbot con DialogFlow es muy sencillo. Todavía nos falta solo la integración con servicios reales de donde obtener y guardar los datos.

 ¿Sigues teniendo dudas sobre cómo sacarle el máximo partido a tu proyecto usando DialogFlow

En Tribalyte Technologies somos expertos desarrolladores de software a medida y, por supuesto, de chatbots con DialogFlow. Consulta nuestros casos de éxito y contáctanos ahora mismo sin compromiso para cualquier necesidad. Podemos ayudarte.

Compartir en:

Relacionados