Conceptos básicos de Dialogflow

En esta página, se describen los conceptos básicos del uso de Dialogflow. Debes leer esta página antes de continuar con otros documentos o guías de inicio rápido.

Ayuda a los usuarios a interactuar con la tecnología.

Las interfaces informáticas tradicionales requieren entradas predecibles y estructuradas para funcionar de manera correcta, lo que hace que el uso de estas interfaces no sea natural y, a veces, sea difícil. Si los usuarios finales no pueden comprender estas entradas estructuradas con facilidad, se les dificulta decidir qué hacer. Lo ideal es que tus interfaces puedan inferir lo que desean los usuarios finales a partir del lenguaje natural que usen.

Por ejemplo, considera una solicitud de usuario sencilla, como: “¿Cuál es el pronóstico para hoy?” Otros usuarios finales también pueden preguntar lo siguiente:

  • “¿Cuál es el clima en este momento?”
  • “¿Qué temperatura hará mañana en San Francisco?”
  • “¿Cómo estará el clima el 21?”

Incluso con estas preguntas sencillas, puedes ver que las experiencias de conversación son difíciles de implementar. Para interpretar y procesar el lenguaje natural, se necesita un analizador de lenguaje muy sólido. Dialogflow hace este trabajo por ti para puedas proporcionar una experiencia conversacional de alta calidad a los usuarios finales.

Agentes

Un agente de Dialogflow es un agente virtual que maneja conversaciones con los usuarios finales. Es un módulo de comprensión del lenguaje natural que entiende los matices del lenguaje humano. Dialogflow traduce el texto o el audio del usuario final durante una conversación a datos estructurados que tus apps y servicios pueden comprender. Cada agente de Dialogflow debe diseñarse y crearse para manejar los tipos de conversaciones que requiera el sistema en el que se va a usar.

Un agente de Dialogflow es similar a un agente humano en un centro de llamadas. Al igual que el agente humano, necesita que lo entrenes para manejar las situaciones de conversación previstas, pero no hace falta que el entrenamiento sea demasiado explícito.

Intents

Un intent clasifica la intención del usuario final para un turno de conversación. Puedes definir varios intents para cada agente, de manera que, en conjunto, estos intents permitan manejar una conversación completa. Cuando un usuario final escribe o dice algo (lo que se denomina expresión de usuario final), Dialogflow trata de identificar el intent más adecuado de tu agente para esa expresión del usuario final. La búsqueda de intents coincidentes también se conoce como clasificación de intent.

Por ejemplo, podrías crear un agente meteorológico que reconozca preguntas de los usuarios finales sobre el clima y las responda. Podrías definir un intent para las preguntas sobre el pronóstico del tiempo. Si un usuario final dice “¿Cuál es el pronóstico?”, Dialogflow determinaría que esa expresión del usuario final corresponde al intent del pronóstico. También puedes definir tu intent con el fin de extraer información útil de la expresión del usuario final, como una hora o ubicación para el pronóstico del tiempo deseado. Estos datos extraídos son importantes a fin de que tu sistema realice una consulta sobre el clima para el usuario final.

Agente que extrae datos de una expresión del usuario final que solicita el clima

Un intent básico contiene los siguientes elementos:

  • Frases de entrenamiento: Estas son frases de ejemplo de algo que podrían decir los usuarios finales. Cuando una expresión de usuario final se parece a una de estas frases, Dialogflow identifica la coincidencia con el intent. No es necesario que definas todos los ejemplos posibles, ya que el aprendizaje automático integrado de Dialogflow expande tu lista con otras frases similares.
  • Acción: Puedes definir una acción para cada intent. Cuando se identifica una coincidencia con un intent, Dialogflow proporciona la acción al sistema, y puedes usarla para activar determinadas acciones definidas en tu sistema.
  • Parámetros: Cuando se identifica una coincidencia con un intent en el entorno de ejecución, Dialogflow proporciona los valores extraídos de la expresión del usuario final en forma de parámetros. Cada parámetro tiene un tipo que se denomina tipo de entidad, el cual determina cómo se extraen los datos. A diferencia de la entrada sin procesar del usuario final, los parámetros son datos estructurados que se pueden usar con facilidad para realizar alguna lógica o generar respuestas.
  • Respuestas: Debes definir las respuestas de texto, de voz o visuales que se le mostrarán al usuario final. Estas pueden responder una pregunta del usuario final, solicitarle más información o finalizar la conversación.

En el siguiente diagrama, se muestra el flujo básico para identificar coincidencias de intents y responderle al usuario final:

Intent y agente que manejan una expresión de usuario final

Entidades

Cada parámetro de intent pertenece a un tipo, el cual se denomina tipo de entidad. Esto determina de forma exacta cómo se extraen los datos de una expresión de usuario final.

Dialogflow proporciona entidades del sistema predefinidas que pueden detectar coincidencias con muchos tipos comunes de datos. Por ejemplo, hay entidades del sistema que detectan coincidencias con fechas, horas, colores, direcciones de correo electrónico, etcétera. También puedes crear tus propias entidades personalizadas para detectar coincidencias en datos personalizados. Por ejemplo, podrías definir una entidad verdura que detecte coincidencias con los tipos de verduras que se pueden comprar mediante un agente de supermercado.

Contextos

El concepto de contexto en Dialogflow es similar al que se usa en el lenguaje natural. Si una persona te dice “son naranjas”, necesitas contexto para entender a qué se refiere. Del mismo modo, para que Dialogflow maneje una expresión de usuario final como esa, se debe proporcionar un contexto que le permita identificar el intent correspondiente.

Con los contextos, puedes controlar el flujo de una conversación. Si quieres configurar contextos para un intent, debes establecer contextos de entrada y salida, los cuales se identifican mediante nombres de strings. Cuando se detecta una coincidencia con un intent, se activan los contextos de salida configurados para ese intent. Mientras existan contextos activos, Dialogflow será más propenso a detectar coincidencias con intents configurados con contextos de entrada que correspondan a los contextos activos en ese momento.

En el siguiente diagrama, se muestra un ejemplo del uso del contexto para un agente bancario.

Diagrama de la interacción de un usuario con intents y contexto.
  1. El usuario final solicita información sobre su cuenta corriente.
  2. Dialogflow identifica una coincidencia entre esta expresión del usuario final y el intent CheckingInfo (información de cuenta corriente). Este intent tiene como salida el contexto checking (cuenta corriente), por lo que se activa ese contexto.
  3. El agente le pregunta al usuario final qué tipo de información desea obtener sobre la cuenta corriente.
  4. El usuario final responde “el saldo”.
  5. Dialogflow identifica una coincidencia entre esta expresión del usuario final y el intent CheckingBalance (saldo de cuenta corriente). Este intent tiene como entrada el contexto checking (cuenta corriente), el cual debe estar activo para que se detecte la coincidencia. Puede que también exista un intent similar SavingsBalance (saldo de cuenta de ahorro) que corresponde a la misma expresión del usuario final cuando está activo un contexto savings (cuenta de ahorro).
  6. Una vez que el sistema realiza las consultas necesarias en la base de datos, el agente responde con el saldo de la cuenta corriente.

Intents de seguimiento

Puedes usar los intents de seguimiento a fin de establecer contextos para pares de intents de forma automática. Un intent de seguimiento es un elemento secundario del intent superior asociado. Cuando creas un intent de seguimiento, se agrega de forma automática un contexto de salida al intent superior y se agrega un contexto de entrada con el mismo nombre al intent de seguimiento. Se detecta una coincidencia con un intent de seguimiento solo si hay coincidencia con su intent superior en el turno anterior de la conversación. También puedes crear varios niveles de intents de seguimiento anidados.

Dialogflow proporciona muchos intents de seguimiento predefinidos para respuestas comunes de los usuarios finales, como “sí”, “no” o “cancelar”. También puedes crear tus propios intents de seguimiento para manejar respuestas personalizadas.

Consola de Dialogflow

Dialogflow proporciona una interfaz de usuario web llamada consola de Dialogflow (consultar la documentación, abrir consola). Puedes usar esta consola para crear, compilar y probar agentes.

La consola de Dialogflow es diferente a Google Cloud Platform (GCP) Console (consultar la documentación, abrir consola). La consola de Dialogflow se usa para administrar los agentes de Dialogflow, mientras que GCP Console se usa en la configuración de Dialogflow específica de GCP (por ejemplo, la facturación) y otros recursos de GCP.

Por lo general, debes usar la consola de Dialogflow si quieres compilar agentes, pero también puedes usar la API de Dialogflow a fin de compilar agentes para situaciones avanzadas.

Interacciones del usuario con integraciones

Dialogflow se integra en muchas plataformas de conversación populares, como Asistente de Google, Slack y Facebook Messenger. Si deseas compilar un agente para una de estas plataformas, debes usar alguna de las muchas opciones de integración. Como no tienes que manejar las interacciones directas con el usuario final, puedes enfocarte en la creación del agente. El manejo de las interacciones con los usuarios finales varía según la plataforma de la integración, así que debes consultar la documentación correspondiente a tu caso para obtener más detalles.

Entregas para integraciones

Si usas una de las opciones de integración y tu agente necesita más que respuestas de intent estáticas, tendrás que usar entregas para conectar tu servicio con el agente. Conectar el servicio te permite realizar acciones en función de las expresiones del usuario final y enviarle respuestas dinámicas a este. Por ejemplo, si un usuario final desea programar una cita para cortarse el cabello el viernes, el servicio puede revisar en la base de datos y responderle al usuario final con información sobre los horarios disponibles el viernes.

Cada intent tiene una configuración que permite la entrega. Si un intent requiere alguna acción por parte del sistema o una respuesta dinámica, debes habilitar la entrega para ese intent. Cuando se detecta una coincidencia con un intent que no tiene habilitadas las entregas, Dialogflow usa la respuesta estática que definiste para ese intent.

Cuando se detecta una coincidencia con un intent que tiene habilitadas las entregas, Dialogflow envía una solicitud a tu servicio de webhook con información sobre el intent coincidente. Tu sistema puede realizar las acciones necesarias y responder a Dialogflow con información sobre cómo proceder. En el siguiente diagrama, se muestra el flujo de procesamiento de las entregas.

Diagrama que muestra el flujo de las entregas
  1. El usuario final escribe o verbaliza una expresión.
  2. Dialogflow hace coincidir la expresión del usuario final con un intent y extrae los parámetros.
  3. Dialogflow envía un mensaje de solicitud de webhook a tu servicio de webhook. Este mensaje contiene información sobre el intent coincidente, la acción, los parámetros y la respuesta definida para ese intent.
  4. El servicio realiza las acciones necesarias (por ejemplo, consultar la base de datos o hacer llamadas a API externas).
  5. El servicio envía un mensaje de respuesta de webhook a Dialogflow. Este mensaje contiene la respuesta que se debe enviar al usuario final.
  6. Dialogflow envía la respuesta al usuario final.
  7. El usuario final ve o escucha la respuesta.

Interacciones del usuario con la API

Si no usas una de las opciones de la integración, tendrás que escribir código para interactuar directamente con el usuario final. También tendrás que interactuar con la API de Dialogflow de forma directa en cada turno de la conversación a fin de enviar las expresiones del usuario final y recibir los intents correspondientes. En el siguiente diagrama, se muestra el flujo de procesamiento para los casos de interacción con la API.

Diagrama del flujo para la API
  1. El usuario final escribe o verbaliza una expresión.
  2. Tu servicio le envía esta expresión del usuario final a Dialogflow en un mensaje de solicitud de detección de intent.
  3. Dialogflow le envía un mensaje de respuesta de detección de intent a tu servicio. Este mensaje contiene información sobre el intent coincidente, la acción, los parámetros y la respuesta definida para ese intent.
  4. El servicio realiza las acciones necesarias (por ejemplo, consultar la base de datos o hacer llamadas a API externas).
  5. Tu servicio le envía una respuesta al usuario final.
  6. El usuario final ve o escucha la respuesta.