Crea un complemento de Google Chat con Dialogflow ES

En esta página, se explica cómo compilar una app de Google Chat como complemento de Google Workspace que usa Dialogflow ES para comprender el lenguaje natural y responder con él. También puedes usar Dialogflow CX, que tiene una integración directa con Google Chat, para compilar una app de Google Chat basada en Dialogflow CX siguiendo la guía de Google Chat de Dialogflow CX.

Objetivos

  • Configura el entorno.
  • Crea e implementa un agente de Dialogflow ES.
  • Crea e implementa una app de chat potenciada por el agente de Dialogflow ES.
  • Prueba la app de Chat.

Requisitos previos

Arquitectura

En el siguiente diagrama, se muestra la arquitectura de una app de chat creada con Dialogflow:

Arquitectura de una app de chat implementada con Dialogflow.

En el diagrama anterior, un usuario que interactúa con una app de chat de Dialogflow tiene el siguiente flujo de información:

  1. Un usuario envía un mensaje en Chat a una app de Chat, ya sea en un mensaje directo o en un espacio de Chat.
  2. Un agente virtual de Dialogflow, que reside en , recibe y procesa el mensaje para producir una respuesta.
  3. De manera opcional, con un webhook de Dialogflow, el agente de Dialogflow puede interactuar con servicios externos de terceros, como un sistema de administración de proyectos o una herramienta de tickets.
  4. El agente de Dialogflow envía una respuesta al servicio de la app de Chat en Chat.
  5. La respuesta se entrega al espacio de Chat.

Configura el entorno

Antes de usar las APIs de Google, debes activarlas en un proyecto de Google Cloud. Puedes activar una o más APIs en un solo proyecto de Google Cloud.
  1. En la Consola de APIs de Google, habilita la API de Google Chat y la API de Dialogflow.

    Habilitar las API

  2. Confirma que habilitarás las APIs en el proyecto de Cloud correcto y, luego, haz clic en Siguiente.

  3. Confirma que habilitarás las APIs correctas y, luego, haz clic en Habilitar.

Crea un agente de Dialogflow ES

Si no tienes un agente de Dialogflow ES existente, sigue estos pasos:

  1. Ve a la consola de Dialogflow ES.
  2. Haz clic en Create Agent.
  3. Asigna un nombre, selecciona un idioma predeterminado y una zona horaria.
  4. Asócialo a tu proyecto de Cloud.
  5. Haz clic en Crear.
  6. Crea tus intents y entidades según sea necesario para el flujo conversacional de tu app de Chat. Puedes comenzar con un intent de saludo.
  7. Toma nota del ID del proyecto.

Para obtener una guía detallada, consulta Cómo compilar un agente.

Crea una app de chat y conéctala con el agente de Dialogflow

Después de crear un agente de Dialogflow ES, sigue estos pasos para convertirlo en una app de chat:

  1. En la consola de APIs de Google, ve a la API de Google Chat. Busca “API de Google Chat”, haz clic en API de Google Chat y, luego, en Administrar.

    Ir a la API de Chat

  2. Haz clic en Configuración y configura la app de Chat:

    1. En Nombre de la app, ingresa Dialogflow App.
    2. En URL del avatar, ingresa https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png.
    3. En Descripción, ingresa Responds to real human conversation.
    4. En Funcionalidad, selecciona Unirse a espacios y conversaciones grupales.
    5. En Configuración de conexión, selecciona Dialogflow.
    6. En Configuración de Dialogflow, selecciona Dialogflow ES.
    7. Hacer que esta app de Chat esté disponible para personas y grupos específicos de tu dominio y, luego, ingresar tu dirección de correo electrónico
    8. En Registros, selecciona Registrar errores en Logging.
  3. Haz clic en Guardar.

La app de Chat está lista para recibir y responder mensajes en Chat.

Prueba la app de Chat

Prueba la app de Chat de Dialogflow ES enviándole mensajes en Google Chat.

  1. Abre Google Chat con la cuenta de Google Workspace que proporcionaste cuando te agregaste como verificador de confianza.

    Ir a Google Chat

  2. Haz clic en Nuevo chat.
  3. En el campo Agrega 1 o más personas, escribe el nombre de tu app de Chat.
  4. Selecciona tu app de Chat en los resultados. Se abrirá un mensaje directo.

  5. En el nuevo mensaje directo con la app, escribe Hello y presiona enter.

    La app de chat de Dialogflow responde con un mensaje de saludo.

Respuestas de texto

Las respuestas de texto se envían a Google Chat como mensajes de texto. Con este formato, puedes poner el texto en negrita o cursiva si lo ajustas con ciertos símbolos (Markdown ligero).

La respuesta del mensaje de texto tiene el mismo aspecto que la respuesta de texto predeterminada en la consola de Dialogflow. Sin embargo, la respuesta de la API sin procesar se verá un poco diferente. También establece la configuración de la plataforma en GOOGLE_HANGOUTS, que podría ser interesante cuando se compilan los agentes para varias integraciones.

"fulfillmentMessages": [
{
   "text": {
   "text": [
        "This is a test."
   ]
},
  "platform": "GOOGLE_HANGOUTS"
},

Tarjetas

Las respuestas con tarjeta se envían a Google Chat como mensajes con tarjeta.

Imágenes

Las respuestas de imágenes se envían a Google Chat como widgets de imágenes de Google Chat.

Carga útil personalizada

Para enviar otros tipos de mensajes de Google Chat, puedes usar una carga útil personalizada.

La carga útil personalizada de Google Chat te permite crear tarjetas más avanzadas. Una tarjeta puede tener una o varias secciones. Cada sección puede tener un encabezado. Puedes consultar la guía de referencia de las tarjetas de complementos de Google Workspace que extienden Chat para ver algunas de las combinaciones que puedes crear. Sin embargo, si usas cargas útiles personalizadas significa que tendrás que proporcionar el formato JSON.

A continuación, se muestra un ejemplo de una carga útil personalizada para crear un mensaje con una tarjeta:

{ "hangouts": { "hostAppDataAction": { "chatDataAction": {
  "createMessageAction": { "message": { "cardsV2": [{
    "cardId": "pizza",
    "card": {
      "header": {
        "title": "Pizza Delivery Customer Support",
        "subtitle": "pizzadelivery@example.com",
        "imageUrl": "https://goo.gl/aeDtrS"
      },
      "sections": [{ "widgets": [{ "textParagraph": {
        "text": " Your pizza is here!"
      }}]}]
    }
  }]}}
}}}}

Límites y consideraciones

  • Cuando usas complementos de Google Workspace con Dialogflow, los objetos de eventos de chat tienen las siguientes limitaciones y consideraciones:
    • Eventos de la página principal de la app: Aún no está disponible la compatibilidad con los eventos de APP_HOME.
    • Entrada de consulta de Dialogflow: El texto que se envía como entrada de consulta al agente de Dialogflow depende del tipo de evento:
      • MESSAGE: Es el valor del campo argumentText del mensaje de chat.
      • APP_COMMAND: La cadena "APP_COMMAND_PAYLOAD".
      • ADDED_TO_SPACE: Se envía un evento de bienvenida predeterminado.
      • REMOVED_FROM_SPACE: La cadena "REMOVED_FROM_SPACE_PAYLOAD".
      • CARD_CLICKED: La cadena "BUTTON_CLICKED_PAYLOAD".
      • WIDGET_UPDATED: Es la cadena "WIDGET_UPDATED_PAYLOAD" (que se usa para la función de autocompletar).
    • Carga útil completa del evento: La carga útil JSON completa del evento de interacción de chat se envía a Dialogflow en el campo WebhookRequest.payload. Puedes acceder a esta información en tu webhook de Dialogflow. Para obtener más información, consulta la documentación de la solicitud de webhook de Dialogflow ES.
  • Consideraciones para responder a comandos y recibir datos de tarjetas o diálogos:
  • No se admiten las vistas previas de vínculos.
  • Si el agente de Dialogflow responde con un solo mensaje, este se envía a Google Chat de forma síncrona. Si el agente de Dialogflow responde con varios mensajes, todos se envían a Chat de forma asíncrona llamando al método create del recurso spaces.messages en la API de Chat una vez por cada mensaje.
  • Cuando usas la integración de Dialogflow ES con Chat, el agente de Dialogflow y la app de Chat deben configurarse en el mismo proyecto de Google Cloud.

Solucionar problemas

Para depurar tu app de Chat, comienza por revisar los registros de errores. Como esta app usa Dialogflow, tienes varios recursos de registro y solución de problemas disponibles:

Limpia

Para evitar que se apliquen cargos a tu cuenta por los recursos que usaste en este instructivo, te recomendamos que borres el proyecto de Cloud.

  1. En la consola de APIs de Google, ve a la página Administrar recursos. Haz clic en Menú > IAM y administración > Administrar recursos.

    Ir al administrador de recursos

  2. En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar .
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.
  • Dialogflow CX es otra forma de usar Dialogflow con una app de Chat.