Chatbot, toma de contacto con Dialogflow

Comenzando con nuestro chatbot

– ¿Sabes lo que es la prueba de Turing?
– Sí. Sé lo que es. Es cuando un humano interactúa con una computadora. Y si no se da cuenta de que es una computadora la prueba es exitosa.
– ¿Qué implica el que sea exitosa?
– Que la computadora tiene inteligencia artificial.

El texto anterior corresponde a una de las conversaciones de la película Ex Machina.

Quiero aprovechar la temática de la película para empezar con una de mis muchas tareas pendientes y que poco a poco voy realizando, en esta ocasión le toca a la INTELIGENCIA ARTIFICIAL.

Para comenzar me gustaría indicar que todas las definiciones y conocimientos aquí expuestos están sacados de la página oficial de dialogflow, y que esta guía únicamente intenta resumir y marcar un guión que a mi personalmente me sirve para tener mas claro este tremenda herramienta.

Una vez aclarado el origen de la información, lo primero que necesitamos es tener una cuenta de Google para poder usar Dialogflow y de esta forma empezar a dar forma a nuestro chatbot.

Con nuestra cuenta de Google y haciendo click aqui accederemos a la web de Dialogflow, desde donde tendremos que acceder a la consola.

Una vez dentro crearemos un agente, pero antes de continuar, ¿que es un agente?.

¿Que es un agente?

Los agentes se describen mejor como módulos NLU (Natural Language Understanding). Estos se pueden incluir en su aplicación, producto o servicio y transformar las solicitudes de los usuarios naturales en datos procesables.

Esta transformación ocurre cuando la entrada de un usuario coincide con una de las intenciones dentro de su agente. Los intentos son los componentes predefinidos o definidos por el desarrollador de los agentes que procesan la solicitud de un usuario.

Los agentes también pueden diseñarse para gestionar un flujo de conversación de una manera específica. Esto puede hacerse con la ayuda de contextos, prioridades de intención, llenado de espacios, responsabilidades y cumplimiento a través de webhook.

 

En esta pantalla indicaremos el nombre del Agente, el idioma por defecto, la zona horaria y el proyecto al que vincularemos Dialogflow si existe o creara un nuevo proyecto. Para realizar este ejemplo he usado los siguientes datos:

  • Agent Name: Curso01
  • Default Language: Spain – es
  • Default Time Zone: Europe / Madrid
  • Google Project: Create a new Google Project

Cuando se crea el agente por defecto se crean dos intents por defecto, ¿pero que son los intents?

¿Que es un intent?

Un intent representa un mapeo entre lo que dice un usuario y qué acción debe tomar su software.

Las interfaces de intención tienen las siguientes secciones:

  • Frases de entrenamiento
  • Acción
  • Respuesta
  • Contextos

Ahora sabemos que son los intents y podemos comprobar el contenido de los intents que se crean por defecto. El primer intent que se crea por defecto es Fallback y se usa para obtener frases de respuesta por parte del bot cuando algo no lo entiende o lo desconoce y el segundo intent es Wellcome, que es un intent para dar la bienvenida.

A continuación vamos a ver la estructura de un intent

 ¿Que es el contexto?

Los contextos representan el contexto actual de la solicitud de un usuario. Esto es útil para diferenciar frases que pueden ser vagas o tener diferentes significados según las preferencias del usuario, la ubicación geográfica, la página actual en una aplicación o el tema de conversación.

Por ejemplo, si un usuario está escuchando música y encuentra una banda que atrae su interés, podría decir algo como: “Quiero escuchar más de ellos”. Como desarrollador, puede incluir el nombre de la banda en el contexto de la solicitud, de modo que el agente pueda usarla en otros aspectos.

O digamos que usted es un fabricante de dispositivos domésticos inteligentes, y tiene una aplicación que controla de forma remota las luces y los electrodomésticos. Un usuario puede decir, “Encienda la luz del porche delantero”, seguido de “Apagarlo”. Al establecer un contexto, la aplicación comprenderá que la segunda frase se refiere a la luz de la primera solicitud. Más tarde, si el usuario dice “Encienda la cafetera” y luego “Desactívela”, se producirá una acción diferente a la anterior debido al nuevo contexto.