Responde preguntas basadas en conversaciones de chat con la app de chat de IA de Gemini

En este instructivo, se muestra cómo crear una app de Google Chat que responda preguntas basadas en conversaciones en espacios de Chat con IA generativa potenciada por Vertex AI con Gemini. La app de Chat usa la API de Google Workspace Events y Pub/Sub para reconocer y responder preguntas publicadas en espacios de Chat en tiempo real, incluso cuando no se mencionan.

La app de Chat usa todos los mensajes enviados en el espacio como fuente de datos y base de conocimiento: cuando alguien hace una pregunta, la app de Chat busca respuestas compartidas anteriormente y, luego, comparte una. Si no se encuentra una respuesta, dice que no se puede responder. En cada respuesta, los usuarios pueden hacer clic en un botón de acción accesorio para @mencionar a un administrador de espacios y solicitar una respuesta. Cuando se usa la IA de Gemini, la app de Google Chat adapta y hace crecer su base de conocimiento a medida que se entrena de forma continua en conversaciones en los espacios a los que se agrega.

A continuación, te mostramos cómo funciona la app de Chat en un espacio de integración y asistencia para empleados:

  • Si mencionas la app de asistente de conocimiento de IA, se agrega a un espacio.
    Figura 1: Charlie agrega la app de chat del asistente de conocimiento de IA a un espacio de Chat.
  • Dana hace una pregunta.
    Figura 2: Dana pregunta si la empresa ofrece capacitación para hablar en público.
  • La app de Chat del asistente de conocimiento de IA responde la pregunta.
    Figura 3: La app de chat del asistente de conocimiento de IA le solicita a Vertex AI con Gemini que responda la pregunta de Dana en función del historial de conversaciones del espacio de Chat y, luego, comparte la respuesta.

Requisitos previos

Objetivos

  • Compila una app de Chat que use IA generativa para responder preguntas basadas en el conocimiento compartido en las conversaciones del espacio de Chat.
  • Con la IA generativa, puedes hacer lo siguiente:
    • Detecta y responde las preguntas de los empleados.
    • Aprende continuamente de conversaciones en curso en un espacio de Chat.
  • Detecta y responde mensajes en un espacio de Chat en tiempo real, incluso cuando la app de Chat no se envía directamente.
  • Para conservar los mensajes, escribe en una base de datos de Firestore y lee desde ella.
  • Menciona a los administradores del espacio cuando no se encuentre una respuesta a una pregunta para facilitar la colaboración en un espacio de Chat.

Arquitectura

En el siguiente diagrama, se muestra la arquitectura de los recursos de Google Workspace y Google Cloud que usa la app de Chat del asistente de conocimiento de IA.

Diagrama de arquitectura de la app de chat del asistente de conocimiento de IA

La app de Chat del asistente de conocimiento de IA funciona de la siguiente manera:

  • Un usuario agrega la app de Chat del asistente de conocimiento de IA a un espacio de Chat:

    1. La app de Chat le solicita al usuario que la agregó al espacio de Chat que configure la autenticación y la autorización.

    2. La app de Chat recupera los mensajes del espacio llamando al método spaces.messages.list en la API de Chat y, luego, almacena los mensajes recuperados en una base de datos de Firestore.

    3. La app de Chat llama al método subscriptions.create en la API de Google Workspace Events para comenzar a detectar eventos, como mensajes en el espacio. El extremo de notificación de la suscripción es un tema de Pub/Sub que usa Eventarc para reenviar el evento a la app de Chat.

    4. La app de Chat publica un mensaje de introducción en el espacio.

  • Un usuario en el espacio de Chat publica un mensaje:

    1. La app de Chat recibe el mensaje en tiempo real del tema de Pub/Sub.

    2. La app de Chat agrega el mensaje a la base de datos de Firestore.

      Si un usuario edita o borra el mensaje más adelante, la app de Chat recibe el evento actualizado o borrado en tiempo real y, luego, actualiza o borra el mensaje en la base de datos de Firestore.

    3. La app de Chat envía el mensaje a Vertex AI con Gemini:

      1. La instrucción le indica a Vertex AI con Gemini que verifique si el mensaje incluye una pregunta. Si es así, Gemini responde la pregunta según el historial de mensajes del espacio de Chat que se guarda en Firestore, y la app de Google Chat envía el mensaje al espacio de Chat. De lo contrario, no respondas.

      2. Si Vertex AI con Gemini responde la pregunta, la app de Chat publica la respuesta llamando al método spaces.messages.create en la API de Chat con la autenticación de apps.

        Si Vertex AI con Gemini no puede responder la pregunta, la app de Chat publica un mensaje en el que se indica que no puede encontrar una respuesta a esa pregunta en el historial del espacio de Chat.

        Los mensajes siempre incluyen un botón de acción de accesorio en el que los usuarios pueden hacer clic, lo que hace que la app de Chat @mencione a un administrador de espacio para pedirle que responda.

  • La app de Chat recibe una notificación de ciclo de vida de la API de Google Workspace Events que indica que la suscripción al espacio de Chat está a punto de vencer:

    1. La app de Chat envía una solicitud para renovar la suscripción llamando al método subscriptions.patch en la API de Google Workspace Events.
  • La app de Chat se quita de un espacio de Chat en los siguientes casos:

    1. La app de Chat borra la suscripción llamando al método subscriptions.delete en la API de Google Workspace Events.

    2. La app de Chat borra los datos del espacio de Chat de Firestore.

Revisa los productos que usa la app de chat del asistente de conocimiento de IA

La app de chat del asistente de conocimiento de IA usa los siguientes productos de Google Workspace y Google Cloud:

  • API de Vertex AI con Gemini: Una plataforma de IA generativa potenciada por Gemini. La app de chat del asistente de conocimiento de IA usa la API de Vertex AI con Gemini para reconocer, comprender y responder las preguntas de los empleados.
  • API de Chat: Una API para desarrollar apps de Google Chat que reciben y responden eventos de interacción de Chat, como mensajes. La app de Chat del asistente de conocimiento de IA usa la API de Chat para hacer lo siguiente:
    • Recibir y responder eventos de interacción que envía Chat
    • Muestra una lista de los mensajes enviados en un espacio.
    • Publica respuestas a las preguntas de los usuarios en un espacio.
    • Configura atributos que determinen cómo aparece en Chat, como el nombre y la imagen de avatar.
  • API de Google Workspace Events: Esta API te permite suscribirte a eventos y administrar notificaciones de cambios en todas las aplicaciones de Google Workspace. La app de Chat del asistente de conocimiento de IA usa la API de Google Workspace Events para detectar mensajes publicados en un espacio de Chat, de modo que pueda detectar y responder preguntas, incluso cuando no se las menciona.
  • Firestore: Una base de datos de documentos sin servidores. La app de chat del asistente de conocimiento de IA usa Firestore para almacenar datos sobre los mensajes enviados en un espacio de Chat.
  • Pub/Sub: Pub/Sub es un servicio de mensajería asíncrona y escalable que separa los servicios que producen mensajes de los que los procesan. La app de Chat del asistente de conocimiento de IA usa Pub/Sub para recibir eventos de suscripción de los espacios de Chat.
  • Eventarc: Eventarc te permite compilar arquitecturas basadas en eventos sin tener que implementar, personalizar ni mantener la infraestructura subyacente. La app de Chat del asistente de conocimiento de IA usa Eventarc para enrutar eventos de Pub/Sub a un espacio de Chat y la función de Cloud que recibe y procesa los eventos de suscripción.
  • Cloud Functions: Un servicio de procesamiento ligero y sin servidores que te permite crear funciones independientes y de un solo propósito que pueden responder a eventos de interacción y suscripción de Chat sin tener que administrar un servidor o un entorno de ejecución. La app de chat del asistente de conocimiento de IA usa dos Cloud Functions con los siguientes nombres:
    • app: Aloja el extremo HTTP al que Chat envía eventos de interacción y como una plataforma de procesamiento para ejecutar lógica que procese y responda a estos eventos.
    • eventsApp: Recibe y procesa eventos del espacio de Chat, como mensajes de una suscripción a Pub/Sub.
    Cloud Functions usa los siguientes productos de Google Cloud para compilar y alquilar recursos de procesamiento:
    • Cloud Build: Es una plataforma completamente administrada de integración, entrega y, también, implementación continuas que ejecuta compilaciones automatizadas.
    • Cloud Run: Es un entorno completamente administrado para ejecutar apps alojadas en contenedores.

Prepare el entorno

En esta sección, se muestra cómo crear y configurar un proyecto de Google Cloud para la app de Chat.

Crea un proyecto de Google Cloud

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Menú > IAM y administración > Crear un proyecto.

    Ir a Crear un proyecto

  2. En el campo Nombre del proyecto, ingresa un nombre descriptivo para tu proyecto.

    Opcional: Para editar el ID del proyecto, haz clic en Editar. El ID del proyecto no se puede cambiar después de que se crea el proyecto; por lo tanto, elige uno que cumpla con tus necesidades durante todo el ciclo de vida del proyecto.

  3. En el campo Ubicación, haz clic en Explorar para mostrar las posibles ubicaciones de tu proyecto. Luego, haga clic en Seleccionar.
  4. Haz clic en Crear. La consola de Google Cloud navega a la página Panel y se crea tu proyecto en pocos minutos.

gcloud CLI

En uno de los siguientes entornos de desarrollo, accede a Google Cloud CLI (gcloud):

  • Cloud Shell: Para usar una terminal en línea con la CLI de gcloud ya configurada, activa Cloud Shell.
    Activar Cloud Shell
  • Shell local: Para usar un entorno de desarrollo local, instala e inicializa la CLI de gcloud.
    Para crear un proyecto de Cloud, usa el comando gcloud projects create:
    gcloud projects create PROJECT_ID
    Para reemplazar PROJECT_ID, establece el ID del proyecto que deseas crear.

Habilita la facturación para el proyecto de Cloud

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Facturación. Haz clic en Menú > Facturación > Mis proyectos.

    Ir a Facturación de Mis proyectos

  2. En Selecciona una organización, elige la organización asociada con tu proyecto de Google Cloud.
  3. En la fila del proyecto, abre el menú Acciones (), haz clic en Cambiar facturación y elige la cuenta de Facturación de Cloud.
  4. Haz clic en Establecer cuenta.

gcloud CLI

  1. Para obtener una lista de las cuentas de facturación disponibles, ejecuta el siguiente comando:
    gcloud billing accounts list
  2. Vincula una cuenta de facturación con un proyecto de Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Reemplaza lo siguiente:

    • PROJECT_ID es el ID del proyecto del proyecto de Cloud para el que deseas habilitar la facturación.
    • BILLING_ACCOUNT_ID es el ID de la cuenta de facturación que se vinculará con el proyecto de Google Cloud.

Habilitación de las API

Consola de Google Cloud

  1. En la consola de Google Cloud, habilita la API de Google Chat, la API de Vertex AI, la API de Cloud Functions, la API de Firestore, la API de Cloud Build, la API de Pub/Sub, la API de Eventos de Google Workspace, la API de Eventarc y la API de Cloud Run Admin.

    Habilitar las API

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

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

gcloud CLI

  1. Si es necesario, establece el proyecto de Cloud actual en el que creaste:

    gcloud config set project PROJECT_ID

    Reemplaza PROJECT_ID por el ID del proyecto de Cloud que creaste.

  2. Habilita la API de Google Chat, la API de Vertex AI, la API de Cloud Functions, la API de Firestore, la API de Cloud Build, la API de Pub/Sub, la API de Eventos de Google Workspace, la API de Eventarc y la API de Cloud Run Admin:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com

Configura la autenticación y la autorización

La autenticación y la autorización permiten que la app de Chat acceda a los recursos en Google Workspace y Google Cloud.

En este instructivo, publicarás la app de Google Chat de forma interna, por lo que está bien usar información de marcador de posición. Antes de publicar la app de Google Chat de forma externa, reemplaza la información de los marcadores de posición por información real para la pantalla de consentimiento.

  1. En la consola de Google Cloud, ve al menú > APIs y servicios > Pantalla de consentimiento de OAuth.

    Ir a la pantalla de consentimiento de OAuth

  2. En Tipo de usuario, selecciona Interno y, luego, haz clic en Crear.

  3. En Nombre de la app, escribe AI knowledge assistant.

  4. En Correo electrónico de asistencia al usuario, selecciona tu dirección de correo electrónico o un Grupo de Google apropiado.

  5. En Información de contacto del desarrollador, ingresa tu dirección de correo electrónico.

  6. Haga clic en Guardar y continuar.

  7. Haz clic en Agregar o quitar alcances. Aparecerá un panel con una lista de permisos para cada API que habilitaste en tu proyecto de Cloud.

  8. En Agregar permisos de forma manual, pega el siguiente alcance:

    • https://www.googleapis.com/auth/chat.messages
  9. Haz clic en Agregar a la tabla.

  10. Haz clic en Actualizar.

  11. Haga clic en Guardar y continuar.

  12. Revisa el resumen del registro de la app y, luego, haz clic en Volver al panel.

Crea credenciales de ID de cliente de OAuth

  1. En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales > ID de cliente de OAuth.

  3. Haz clic en Tipo de aplicación > Aplicación web.

  4. En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.

  5. En URI de redireccionamiento autorizados, haz clic en Agregar URI.

  6. En URIs 1, escribe lo siguiente:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    Reemplaza lo siguiente:

    • REGION: Es la región de Cloud Function, como us-central1. Más adelante, cuando crees las dos funciones de Cloud Functions, deberás establecer su región en este valor.
    • PROJECT_ID: El ID del proyecto del proyecto de Cloud que creaste.
  7. Haz clic en Crear.

  8. En la ventana Cliente de OAuth creado, haz clic en Descargar JSON.

  9. Guarda el archivo descargado como client_secrets.json. Luego, cuando crees las dos Cloud Functions, incluirás el archivo client_secrets.json en cada implementación.

  10. Haz clic en Aceptar.

Cree el tema de Pub/Sub

El tema de Pub/Sub funciona con la API de Google Workspace Events para suscribirse a eventos en un espacio de Chat, como mensajes, y notificar a la app de Chat en tiempo real.

A continuación, te mostramos cómo crear el tema de Pub/Sub:

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Menú > Pub/Sub.

    Ir a Pub/Sub

  2. Haz clic en Crear tema.

  3. En ID del tema, escribe events-api.

  4. Anula la selección de Agregar una suscripción predeterminada.

  5. En Encriptación, selecciona Clave de encriptación administrada por Google.

  6. Haz clic en Crear. Aparecerá el tema de Pub/Sub.

  7. Para que este tema de Pub/Sub y la API de Google Workspace Events funcionen juntos, otorga al usuario de IAM de Chat permiso para publicar en el tema de Pub/Sub:

    1. En el panel events-api, en PERMISSIONS, haz clic en Add Principal.

    2. En Agregar principales, en Principales nuevas, escribe chat-api-push@system.gserviceaccount.com.

    3. En Asignar roles, en Selecciona un rol, selecciona Pub/Sub > Publicador de Pub/Sub.

    4. Haz clic en Guardar.

gcloud CLI

  1. Crea un tema de Pub/Sub con el ID de tema events-api:

    gcloud pubsub topics create events-api
  2. Otorga permiso al usuario de IAM de Chat para publicar en el tema de Pub/Sub:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

Crea la base de datos de Firestore

La base de datos de Firestore conserva y recupera datos de los espacios de Chat, como los mensajes. No debes definir el modelo de datos, que se establece de forma implícita en el código de muestra con los archivos model/message.js y services/firestore-service.js.

La base de datos de la app de Chat del asistente de conocimiento de IA usa un modelo de datos NoSQL basado en documentos de organizados en colecciones . Para obtener más información, consulta Modelo de datos de Firestore.

El siguiente diagrama es una descripción general del modelo de datos de la app de Chat del asistente de conocimiento de IA:

Modelo de datos de la base de datos de Firestore.

La raíz contiene dos colecciones:

  1. spaces, en el que cada documento representa un espacio de Chat al que se agrega la app de Chat. Cada mensaje está representado por un documento en la subcolección messages.

  2. users, en el que cada documento representa a un usuario que agregó la app de Chat a un espacio de Chat.

Consulta las definiciones de colecciones, documentos y campos

spaces

Un espacio de Chat que incluye la app de chat de Knowledge Assist de IA.

Campos
Document IDString
Es el ID único de un espacio específico. Es una parte del nombre del recurso del espacio en la API de Chat.
messagesSubcollection of Documents (messages)
Mensajes enviados en el espacio de Chat Corresponde con el Document ID de un message en Firebase.
spaceNameString
Es el nombre único del espacio en la API de Chat. Corresponde al nombre del recurso del espacio en la API de Chat.

messages

Mensajes enviados en el espacio de Chat

Campos
Document IDString
Es el ID único de un mensaje específico.
nameString
Es el nombre único de un mensaje en la API de Chat. Corresponde al nombre de recurso del mensaje en la API de Chat.
textString
El cuerpo de texto del mensaje.
timeString (Timestamp format)
Es la hora en la que se creó el mensaje.

users

Usuarios que agregaron la app de Chat del asistente de conocimiento de IA a un espacio de Chat

Campos
Document IDString
Es el ID único de un usuario específico.
accessTokenString
El token de acceso otorgado durante la autorización del usuario de OAuth 2.0 que se usa para llamar a las APIs de Google Workspace.
refreshTokenString
El token de actualización otorgado durante la autorización del usuario de OAuth 2.0.

Sigue estos pasos para crear la base de datos de Firestore:

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Menú > Firestore.

    Ir a Firestore

  2. Haz clic en Crear base de datos.

  3. En Elige tu modo de Firestore, haz clic en Modo nativo.

  4. Haz clic en Continuar.

  5. Configura la base de datos:

    1. En Asigna un nombre a tu base de datos, deja el ID de base de datos como (default).

    2. En Tipo de ubicación, selecciona Región.

    3. En Región, especifica una región para la base de datos, como us-central1. Para obtener el mejor rendimiento, selecciona la misma ubicación o una cercana que la de las funciones de Cloud Functions de la app de Chat.

  6. Haz clic en Crear base de datos.

gcloud CLI

  • Crea una base de datos de Firestore en modo nativo:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    Reemplaza LOCATION por el nombre de una región de Firestore, como us-central1. Para obtener el mejor rendimiento, selecciona la misma ubicación o una cercana a la de Cloud Functions de la app de Chat.

Crea y, luego, implementa la app de Chat

Ahora que creaste y configuraste tu proyecto de Google Cloud, está todo listo para compilar y, luego, implementar la app de Chat. En esta sección, harás lo siguiente:

  1. Crea e implementa dos Cloud Functions. Uno para responder a los eventos de interacción de Chat y otro para responder a los eventos de Pub/Sub.
  2. Crea e implementa una app de Chat en la página de configuración de la API de Google Chat.

Crea e implementa las funciones de Cloud

En esta sección, crearás y, luego, implementarás dos Cloud Functions llamadas:

  • app: Aloja y ejecuta el código de la app de Chat que responde a los eventos recibidos de Chat como solicitudes HTTP.
  • eventsApp: Recibe y procesa eventos de espacios de Chat, como mensajes de Pub/Sub.

En conjunto, estas funciones de Cloud Functions conforman la lógica de la aplicación del asistente de conocimiento de IA de la app de Chat.

De manera opcional, antes de crear la función de Cloud Functions, tómate un momento para revisar y familiarizarte con el código de muestra alojado en GitHub.

Ver en GitHub

Crea e implementa app

Consola de Google Cloud

  1. Descarga el código de GitHub como un archivo ZIP.

    Descargar el archivo ZIP

  2. Extraiga el archivo ZIP que se descargó.

    La carpeta extraída contiene todo el repositorio de muestras de Google Workspace.

  3. En la carpeta extraída, navega al directorio google-chat-samples-main/node/ai-knowledge-assistant.

  4. En el directorio google-chat-samples/node/ai-knowledge-assistant, agrega el archivo client_secrets.json que descargaste cuando creaste credenciales de ID de cliente de OAuth para autenticación y autorización.

  5. Comprime el contenido de la carpeta ai-knowledge-assistant en un archivo ZIP.

    El directorio raíz del archivo ZIP debe contener los siguientes archivos y carpetas:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • client_secrets.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. En la consola de Google Cloud, ve a Menú > Cloud Functions.

    Ir a Cloud Functions

    Asegúrate de que el proyecto de Google Cloud para tu app de Chat esté seleccionado.

  7. Haz clic en Crear función.

  8. En la página Crear función, configura tu función:

    1. En Entorno, selecciona Función de Cloud Run.
    2. En Nombre de la función, escribe app.
    3. En Región, selecciona una región, como us-central1. Esta región debe coincidir con la que estableciste en el URI de redireccionamiento autorizado cuando creaste las credenciales de ID de cliente de OAuth para la autenticación y autorización.
    4. En Tipo de activador, selecciona HTTPS.
    5. En Autenticación, selecciona Permitir invocaciones no autenticadas.
    6. Haz clic en Siguiente.
  9. En Entorno de ejecución, selecciona Node.js 20.

  10. En Punto de entrada, borra el texto predeterminado y, luego, ingresa app.

  11. En Código fuente, selecciona Carga de ZIP.

  12. En Bucket de destino, crea o selecciona un bucket:

    1. Haz clic en Explorar.
    2. Elige un bucket.
    3. Haz clic en Seleccionar.

    Google Cloud sube el archivo ZIP y extrae los archivos de componentes en este bucket. Luego, Cloud Functions copia los archivos de componentes en la función de Cloud Functions.

  13. En Archivo ZIP, sube el archivo ZIP que descargaste de GitHub, extrajiste y recomprimiste:

    1. Haz clic en Explorar.
    2. Navega hasta el archivo ZIP y selecciónalo.
    3. Haz clic en Abrir.
  14. Haz clic en Implementar.

    Se abrirá la página Detalles de Cloud Functions y tu función aparecerá con dos indicadores de progreso: uno para la compilación y otro para el servicio. Cuando ambos indicadores de progreso desaparezcan y se reemplacen por una marca de verificación, la función se habrá implementado y estará lista.

  15. Edita el código de muestra para establecer constantes:

    1. En la página Detalles de la función de Cloud, haz clic en Editar.
    2. Haz clic en Siguiente.
    3. En Código fuente, selecciona Editor directo.
    4. En el editor directo, abre y edita el archivo env.js:
      1. Establece el valor de project en el ID de tu proyecto de Cloud.
      2. Establece el valor de location en la región de Cloud Function, como us-central1.
  16. Haz clic en Implementar.

gcloud CLI

  1. Clona el código desde GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Cambia al directorio que contiene el código de esta app de Chat de asistente de conocimiento de IA:

    cd google-chat-samples/node/ai-knowledge-assistant
  3. En el directorio google-chat-samples/node/ai-knowledge-assistant, agrega el archivo client_secrets.json que descargaste cuando creaste credenciales de ID de cliente de OAuth para autenticación y autorización.

  4. Edita el archivo env.js para establecer las variables de entorno:

    1. Establece el valor de project como el ID de tu proyecto de Cloud.
    2. Establece el valor de location en la región de Cloud Function, como us-central1.
  5. Implementa la Cloud Function en Google Cloud:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated

    Reemplaza REGION por el valor de la región de Cloud Function para que coincida con el que se estableció en el archivo env.js, como us-central1.

Crea e implementa eventsApp

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Menú > Cloud Functions.

    Ir a Cloud Functions

    Asegúrate de que el proyecto de Google Cloud para tu app de Chat esté seleccionado.

  2. Haz clic en Crear función.

  3. En la página Crear función, configura tu función:

    1. En Entorno, selecciona Función de Cloud Run.
    2. En Nombre de la función, escribe eventsApp.
    3. En Región, selecciona una región, como us-central1. Esta región debe coincidir con la que estableciste en el URI de redireccionamiento autorizado cuando creaste las credenciales de ID de cliente de OAuth para la autenticación y autorización.
    4. En Tipo de activador, selecciona Cloud Pub/Sub.
    5. En Tema de Cloud Pub/Sub, selecciona el nombre del tema de Pub/Sub que creaste, que tiene el formato projects/PROJECT/topics/events-api, en el que PROJECT es el ID de tu proyecto de Cloud.
    6. Si ves un mensaje que comienza a Service account(s) might not have enough permissions to deploy the function with the selected trigger., haz clic en Otorgar todo.
    7. Haz clic en Siguiente.
  4. En Entorno de ejecución, selecciona Node.js 20.

  5. En Punto de entrada, borra el texto predeterminado y, luego, ingresa eventsApp.

  6. En Código fuente, selecciona ZIP de Cloud Storage.

  7. En Ubicación de Cloud Storage, haz clic en Explorar.

  8. Selecciona el bucket al que subiste el archivo ZIP cuando creaste la función app de Cloud Functions.

  9. Haz clic en el archivo ZIP que subiste.

  10. Haz clic en Seleccionar.

  11. Haz clic en Implementar.

    Se abrirá la página Detalles de Cloud Functions y tu función aparecerá con tres indicadores de progreso: uno para la compilación, uno para el servicio y uno para el activador. Cuando desaparezcan los tres indicadores de progreso y se reemplacen por una marca de verificación, tu función se habrá implementado y estará lista.

  12. Edita el código de muestra para establecer constantes:

    1. En la página Detalles de la función de Cloud, haz clic en Editar.
    2. Haz clic en Siguiente.
    3. En Código fuente, selecciona Editor directo.
    4. En el editor directo, abre y edita el archivo env.js:
      1. Establece el valor de project en el ID de tu proyecto de Cloud.
      2. Establece el valor de location en la región de Cloud Function, como us-central1.
  13. Haz clic en Implementar.

gcloud CLI

  1. En la CLI de gcloud, si aún no estás allí, cambia al directorio que contiene el código de esta app de Chat del asistente de conocimiento de IA que clonaste anteriormente desde GitHub:

    cd google-chat-samples/node/ai-knowledge-assistant
  2. En el directorio google-chat-samples/node/ai-knowledge-assistant, agrega el archivo client_secrets.json que descargaste cuando creaste credenciales de ID de cliente de OAuth para la autenticación y autorización.

  3. Edita el archivo env.js para establecer las variables de entorno:

    1. Configura el valor de project con el ID de tu proyecto de Cloud.
    2. Establece el valor de location en la región de Cloud Function, como us-central1.
  4. Implementa la Cloud Function en Google Cloud:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api

    Reemplaza REGION por el valor de la región de Cloud Function para que coincida con el que se estableció en el archivo env.js, como us-central1.

Copiar la URL del activador de Cloud Functions app

Pega la URL del activador de la Cloud Function de app en la siguiente sección cuando configures la app de Chat en la consola de Google Cloud.

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Menú > Cloud Functions.

    Ir a Cloud Functions

  2. En la columna Nombre de la lista de Cloud Functions, haz clic en app.

  3. Haz clic en Activar.

  4. Copia la URL.

gcloud CLI

  1. Describe la Cloud Function app:

    gcloud functions describe app
  2. Copia la propiedad url.

Configura la app de Chat en la consola de Google Cloud

En esta sección, se muestra cómo configurar la API de Chat en la consola de Google Cloud con información sobre tu app de Chat, incluido el nombre de la app de Chat y la URL activadora de la Cloud Function de la app de Chat a la que envía eventos de interacción de Chat.

  1. En la consola de Google Cloud, haz clic en Menú > Más productos > Google Workspace > Biblioteca de productos > API de Google Chat > Administrar > Configuración.

    Ir a la configuración de la API de Chat

  2. En Nombre de la app, escribe AI knowledge assistant.

  3. En URL del avatar, escribe https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.

  4. En Description, escribe Answers questions with AI.

  5. Haz clic en el botón de activación Enable Interactive features.

  6. En Funcionalidad, selecciona Unirse a espacios y conversaciones grupales.

  7. En Configuración de la conexión, selecciona URL del extremo HTTP.

  8. En URL del extremo HTTP, pega la URL del activador de la Cloud Function app con el formato https://REGION-PROJECT_ID.cloudfunctions.net/app, en el que REGION es la región de la función de Cloud Functions, como us-central1 y PROJECT_ID es el ID del proyecto de Cloud que creaste.

  9. En Visibilidad, selecciona Hacer que esta app de Chat esté disponible para personas y grupos específicos de tu dominio de Workspace y, luego, ingresa tu dirección de correo electrónico.

  10. De manera opcional, en Registros, selecciona Registrar errores en Logging.

  11. Haz clic en Guardar. Aparecerá un mensaje que indica que se guardó la configuración, lo que significa que la app de Chat está lista para probarse.

Prueba la app de Chat

Para probar la app de Chat del asistente de conocimiento basado en IA en un espacio de Chat con mensajes, haz preguntas que la app pueda responder.

Estas son algunas formas de probar la app de chat del asistente de conocimiento de IA:

  • Agregar la app de Chat del asistente de conocimiento de IA a un espacio de Chat existente y hacer preguntas relevantes para ese espacio
  • Crea un espacio de Chat y publica algunos mensajes para usarlos como fuente de datos. Los mensajes se pueden obtener de Gemini con una instrucción como Answer 20 common onboarding questions employees ask their teams.. También puedes pegar algunos párrafos de la guía de descripción general de cómo desarrollar con Chat y, luego, hacer preguntas al respecto.

En este instructivo, crearemos un espacio de Chat y pegaremos algunos párrafos de la guía de descripción general para desarrollar con Chat.

  1. Abre Google Chat.

    Ve a Google Chat

  2. Crea un espacio de Chat:

    1. Haz clic en New Chat > Crear un espacio.

    2. En Nombre del espacio, escribe Testing AI knowledge assistant app.

    3. En ¿Para qué sirve este espacio?, selecciona Colaboración.

    4. En Configuración de acceso, elige quién puede acceder al espacio.

    5. Haz clic en Crear.

  3. Agrega mensajes para usarlos como fuente de datos:

    1. En un navegador web, visita la guía de descripción general para desarrollar con Chat.

    2. Copia y pega el contenido de la guía en el espacio de Chat que creaste.

  4. Agrega la app de Chat del asistente de conocimiento de IA:

    1. En la barra para redactar mensajes, escribe @AI knowledge assistant y, en el menú de sugerencias que aparece, selecciona la app de Chat del asistente de conocimiento de IA y presiona enter.

    2. Aparecerá un mensaje que te preguntará si quieres agregar la app de Chat del asistente de conocimiento de IA al espacio. Haz clic en Agregar al espacio.

    3. Si es la primera vez que agregas la app de Chat a un espacio, debes configurar la autenticación y autorización para la app de Chat:

      1. Haz clic en Configurar.
      2. Se abrirá una ventana o pestaña nueva del navegador en la que se te solicitará que elijas una Cuenta de Google. Elige la cuenta con la que estás realizando la prueba.
      3. Revisa los permisos que solicita la app de Chat del asistente de conocimiento de IA. Para otorgarlos, haz clic en Permitir.
      4. Aparecerá un mensaje que dice You may close this page now.. Cierra la ventana o pestaña del navegador y regresa al espacio de Chat.
  5. Realiza una pregunta:

    1. En la barra para redactar mensajes, ingresa una pregunta como What are Google Chat apps?

    2. La app de Chat del asistente de conocimiento de IA responde.

    3. De forma opcional, si la respuesta no es precisa o no es suficiente, para ayudar a mejorar el historial de conversaciones de la IA, haz clic en Obtener ayuda. La app de Chat del asistente de conocimiento de IA menciona a un administrador de espacio y le pide que responda la pregunta. La próxima vez, la app de Chat del asistente de conocimiento de IA sabrá la respuesta.

Consideraciones, opciones de arquitectura alternativa y próximos pasos

En esta sección, se revisan otras formas en que se puede compilar la app de Chat del asistente de conocimiento de IA.

Firestore, Cloud Storage o la llamada a List Messages en la API de Chat

En este instructivo, se recomienda almacenar datos de espacios de Chat, como los mensajes, en una base de datos de Firestore, ya que mejora el rendimiento en comparación con llamar al método list en el recurso Message con la API de Chat cada vez que la app de Chat responde una pregunta. Además, llamar a list messages de forma reiterada puede hacer que la app de Chat alcance los límites de cuota de la API.

Sin embargo, si el historial de conversaciones de un espacio de chat se vuelve demasiado largo, el uso de Firestore puede resultar costoso.

Cloud Storage es una alternativa a Firestore. Cada espacio en el que está activa la app de Chat del asistente de conocimiento de IA obtiene su propio objeto, y cada objeto es un archivo de texto que contiene todos los mensajes del espacio. La ventaja de este enfoque es que todo el contenido del archivo de texto se puede enviar a Vertex AI con Gemini de una sola vez, pero el inconveniente es que requiere más trabajo actualizar el historial de conversaciones porque no puedes agregar a un objeto en Cloud Storage, solo reemplazarlo. Este enfoque no tiene sentido si actualizas el historial de mensajes con regularidad, pero sería una buena opción si actualizas el historial de mensajes por lotes de forma periódica, por ejemplo, una vez a la semana.

Solucionar problemas

Cuando una app de Google Chat o una tarjeta muestran un error, la interfaz de Chat muestra un mensaje que dice "Se produjo un error". o "No se puede procesar tu solicitud". A veces, la IU de Chat no muestra ningún mensaje de error, pero la app o la tarjeta de Chat producen un resultado inesperado. Por ejemplo, es posible que no aparezca un mensaje de la tarjeta.

Aunque es posible que no se muestre un mensaje de error en la IU de Chat, los mensajes de error descriptivos y los datos de registro están disponibles para ayudarte a corregir errores cuando se activa el registro de errores de las apps de Chat. Si necesitas ayuda para ver, depurar y corregir errores, consulta Cómo solucionar problemas y corregir errores de Google Chat.

Limpia

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

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

    Ir a Resource Manager

  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.