Ha llegado el momento de aprender a desarrollar un chatbot utilizando Dialogflow, la herramienta de Inteligencia Artificial de Google. Con este post, aprenderás a desarrollar en esta plataforma. Doy por hecho, que si ya te has puesto manos a la obra, es porque previamente has leído el post sobre cómo diseñar un chatbot utilizando Dialogflow.

[cta]

Ahora bien, antes de comenzar, necesitas tener una cuenta en esta plataforma. Cuando ya estés logueado, lo primero que tienes que hacer es crear un nuevo “AGENTE”, dale un nombre, selecciona el IDIOMA… y pulsa “CREATE”.

Una vez que lo hemos creado (lo he llamado “SEGURITO Bot de Seguros”), nos encontramos en la pantalla con 3 zonas:

  • El menú lateral para que podamos ir seleccionando entre intenciones/ entidades/entrenamiento/integraciones/etc.
  • La pantalla principal: donde por defecto tenemos seleccionada la opción INTENTS.
  • La opción lateral de probar el bot en tiempo real.

PASO 1: Creamos nuestra primera intención

Por defecto, aparecemos en la ventana de “intenciones” donde tenemos un botón para CREAR NUEVA INTENCIÓN y las intenciones creadas por defecto (como teníamos en WATSON, la intención por defecto “what-else” es decir, para aquellos casos en los que la herramienta no entiende qué le decimos). Le damos a “CREATE INTENT” y creamos la intención 1 “I1_Seguros_Contratados”.

Antes de GUARDAR, tal y como vemos en la imagen superior, hemos:

  • Indicado el nombre del Intent.
  • Introducido varias alternativas que pensamos que un cliente puede decir para indicarnos que quiere saber cuántos seguros tiene contratados.
  • Dada de alta un par de respuestas a proporcionar.

Recordemos que la respuesta deberá estar adaptada al cliente que use el chatbot, por tanto, el sistema de NLU, Dialogflow de Google en este caso, no nos podrá dar la respuesta que necesitamos para ese cliente. Pero, SÍ nos ayudará a identificar qué quiso decir el cliente para que nuestra lógica del bot conociendo quién es el cliente y qué es lo que quiere, pregunta a la base de datos correcta la respuesta que estamos buscando.

Ahora, es el momento de ponerlo a prueba indicando “saber mis seguros contratados” en el modo de testeo, y como era de esperar, nos identifica 😊

Tabla de contenidos

PASO 2: Creamos nuestra segunda intención, el precio del seguro actual

Volvemos a hacer la configuración anterior, pero ahora, tengamos en cuenta que íbamos a preguntarle por el seguro por el que quiere saber el precio, así que nos topamos con una nueva sección de “parámetros” donde tenemos que haber dado de alta previamente la entidad a utilizar. En este caso, daremos de alta la entidad tipo de seguro “E1_Tipo_Seguro”.

Así que, nos vamos al apartado entidades “Entities” a dar de alta la nueva entidad y sus posibles valores.

PASO 3: Creamos nuestra primera entidad: Tipos de seguros

Desde el apartado “Entities” damos de alta una nueva entidad, para lo que:

  • Indicamos el nombre de la entidad.
  • Los posibles valores, que se corresponden con los tipos de seguros que tiene nuestra aseguradora: seguro de hogar, salud, coche, vida.
  • Posibles alternativas con las que un cliente nos pueda indicar uno de los seguros anteriores. Por ejemplo, que en lugar de seguro de hogar nos indique, seguro de mi casa.

PASO 4: Terminamos de configurar la intención precio del seguro

Con esta intención, acabaremos indicando el seguro del que quiere conocer el precio. Con la configuración que vamos a desarrollar ahora, podremos:

  • Identificar que el cliente está interesado en conocer el precio (intención) del seguro de salud (entidad).
  • Saber que el cliente nos ha despertado la intención conocer precio pero el tipo de seguro (entidad) con lo que configuramos como respuesta una nueva pregunta del estilo “¿de qué seguro?”

Además, para cuando el usuario no nos indica el tipo de seguro, damos de alta estas dos nuevas preguntas (“prompts”):

PRUEBA 4.A

¿Qué pasa si le digo “Me gustaría saber el precio de mi seguro”?

Como vemos a continuación, el sistema nos pregunta por el tipo de seguro del que queremos saber el precio:

PRUEBA 4.B

¿Qué pasa si le digo “Me gustaría saber el precio que pago por el seguro de mi coche”?

Como queríamos comprobar, inicialmente no nos ha entendido, así que hemos procedido a darle de alta expresiones similares para que identifique la intención junto a la entidad. Veamos lo que hemos dado de alta y el resultado:

PRUEBA 4.C.

¿Qué creéis que pasa si le pregunto por cuánto pagaré el año que viene por mi seguro?

Me identifica lo más parecido, que no deja de ser la intención 2, porque no le he entrenado para darle respuesta — aunque la respuesta fuese “no estoy seguro de cuánto pagarás” — si me pregunta por el precio futuro.

Y hasta aquí por hoy con el manual de diseño y desarrollo de un chatbot utilizando Dialogflow (ex API.AI) de Google. No era mi intención 😉 dejarlo aquí, pero otro día seguiremos por donde lo dejamos, y abordaremos los contextos.

Y recordad, el sistema de Inteligencia Artificial:

  • Nos ayudará a identificar las intenciones que hemos dado de alta — las que no hemos dado de alta, es poco probable que el sistema se las invente por mucho que estos sistemas nos los facilite Google, Microsoft o IBM.
  • Pero adicionalmente, tendremos que desarrollar nuestro código para que, una vez identificada la intención, sepamos qué hacer. De hecho, aquí os dejo con un diagrama explicativo del funcionamiento del bot — que saco de la web de Dialogflow — donde se indica el funcionamiento del motor de NLU.

Básicamente, el diagrama marca en color naranja el funcionamiento Dialogflow que no es otro que identificar la intención del texto que le des como input para luego pasar a una caja de “CODE” -que es nuestro código como desarrolladores- y que es el que decidirá si hay que consultar APIs externas o consultas bases de datos internas para poder dar una respuesta.

Por Nutella Developer

Senior Chatbot Developer en Chatbot Chocolate. 👉🏻 “Escribiendo para que disfrutes del poder del chocolate”.

Deja una respuesta

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