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, según el 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. Interpretar y procesar el lenguaje natural requiere un analizador de lenguaje muy sólido. Dialogflow se encarga de esto, por lo que puedes proporcionar una experiencia conversacional de usuario final de alta calidad.

Agentes

Un agente de Dialogflow es un agente virtual que maneja conversaciones con tus usuarios finales. Es un módulo de comprensión del lenguaje natural que comprende 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. Un agente de Dialogflow se crea y diseña a fin de manejar los tipos de conversaciones requeridas para tu sistema.

Un agente de Dialogflow es similar a un agente de un centro de llamadas humano. Lo entrenas para que se encargue de las situaciones de conversación esperadas; el entrenamiento no tiene que ser demasiado explícito.

Intents

Un intent clasifica la intención del usuario final para un turno de conversación. Para cada agente defines muchos intents; tus intents combinados pueden manejar una conversación completa. Cuando un usuario final escribe o dice algo, lo que se denomina expresión de usuario final, Dialogflow hace coincidir la expresión del usuario final con el mejor intent en tu agente. La coincidencia de un intent también se conoce como clasificación de intent.

Por ejemplo, podrías crear un agente meteorológico que reconozca y responda a las preguntas de los usuarios finales sobre el clima. 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 haría coincidir esa expresión del usuario final con el 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 la 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 hace una coincidencia con el intent. No tienes que definir todos los ejemplos posibles, ya que el aprendizaje automático incorporado de Dialogflow expande tu lista con otras frases similares.
  • Acción: puedes definir una acción para cada intent. Cuando un intent coincide, Dialogflow proporciona la acción a tu sistema, y puedes usar la acción para activar ciertas acciones definidas en tu sistema.
  • Parámetros: cuando un intent coincide en el entorno de ejecución, Dialogflow proporciona los valores extraídos de la expresión del usuario final como parámetros. Cada parámetro tiene un tipo, llamado tipo de entidad, que dicta 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 para mostrar al usuario final. Pueden proporcionar respuestas al usuario final, solicitar más información al usuario final o finalizar la conversación.

En el siguiente diagrama, se muestra el flujo básico para la coincidencia de intents y respuesta al usuario final:

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

Entidades

Cada parámetro de intent tiene un tipo, denominado tipo de entidad, que 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 coincidir con muchos tipos comunes de datos. Por ejemplo, hay entidades del sistema que coinciden 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 vegetal que coincida con los tipos de vegetales disponibles para la compra con un agente de supermercado.

Contextos

Los contextos de Dialogflow son similares al contexto del lenguaje natural. Si una persona le dice "es de color naranja", necesita contexto para saber qué es de ese color. Del mismo modo, para que Dialogflow maneje una expresión de usuario final como esa, debe proporcionarse un contexto con el fin de que coincida de forma correcta con un intent.

Mediante los contextos, puedes controlar el flujo de una conversación. Si quieres configurar contextos para un intent, debes establecer contextos de entrada y salida, que se identifican mediante nombres de strings. Cuando coincide un intent, se activan los contextos de salida configurados para ese intent. Mientras existan contextos activos, es más probable que Dialogflow coincida con intents configurados con contextos de entrada que correspondan a los contextos activos en ese momento.

En el siguiente diagrama, se muestra un ejemplo en el que se usa un contexto de 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 hace coincidir esta expresión del usuario final con el intent CheckingInfo. Este intent tiene un contexto de salida checking, por lo que ese contexto se activa.
  3. El agente solicita al usuario final el tipo de información que desea obtener sobre su cuenta corriente.
  4. El usuario final responde “mi saldo”.
  5. Dialogflow hace coincidir esta expresión del usuario final con el intent CheckingBalance. Este intent tiene un contexto de entrada checking, que debe estar activo para que coincida con este intent. También puede existir un intent SavingsBalance similar para que coincida con la misma expresión del usuario final cuando un contexto savings está activo.
  6. Después de que tu sistema realiza las consultas de base de datos necesarias, el agente responde con el saldo de la cuenta corriente.

Intents de respuesta

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. Un intent de seguimiento solo coincide cuando el intent superior coincide en el turno anterior de conversación. También puedes crear varios niveles de intents de seguimiento anidados.

Dialogflow proporciona muchos intents de seguimiento predefinidos para respuestas comunes de 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 (consulta 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, 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 a muchas plataformas de conversación populares como Google Assistant, Slack y Facebook Messenger. Si deseas compilar un agente para una de estas plataformas, debes usar una de las muchas opciones de integraciones. No tienes que manejar las interacciones directas con el usuario final, por lo que puedes enfocarte en crear tu 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

De forma predeterminada, tu agente responde a un intent coincidente con una respuesta estática. Si usas una de las opciones de integración, puedes proporcionar una respuesta más dinámica mediante la entrega. Cuando habilitas la entrega para un intent, Dialogflow responde a ese intent con una llamada a un servicio que hayas definido. Por ejemplo, si un usuario final desea programar un corte de cabello el viernes, el servicio puede verificar la base de datos y responderle al usuario final con información acerca de la disponibilidad para 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 un intent sin entregas habilitadas tiene una coincidencia, Dialogflow usa la respuesta estática que definiste para ese intent.

Cuando un intent con entregas tiene una coincidencia, Dialogflow envía una solicitud a tu servicio de webhook con información sobre el intent coincidente. Tu sistema puede realizar cualquier acción requerida 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 dice 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 acciones según sea necesario, como consultas a las bases de datos o llamadas externas a la API.
  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, debes escribir el código que interactúa directamente con el usuario final. También debes interactuar directamente con la API de Dialogflow para cada turno de conversación a fin de enviar expresiones de usuario final y recibir coincidencias de intent. En el siguiente diagrama, se muestra el flujo de procesamiento en el momento en el que se interactúa con la API.

Diagrama del flujo para la API
  1. El usuario final escribe o dice una expresión.
  2. Tu servicio le envía esta expresión del usuario final a Dialogflow en un mensaje de solicitud de intent de detección.
  3. Dialogflow le envía un mensaje de respuesta de intent de detección 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. Tu servicio realiza acciones según sea necesario, como consultas a la base de datos o llamadas a la API externas.
  5. Tu servicio le envía una respuesta al usuario final.
  6. El usuario final ve o escucha la respuesta.