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 Eventos de Google Workspace y Pub/Sub para reconocer y responder preguntas publicadas en los espacios de Chat en tiempo real, incluso cuando no se menciona.

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 las respuestas que se compartieron anteriormente y, luego, comparte una. Si no se encuentra ninguna respuesta, significa que no se puede responder. En cada respuesta, los usuarios pueden hacer clic en un botón de acción de accesorios para @mencionar a un administrador del espacio y solicitar una respuesta. Con Gemini AI, la app de Google Chat se adapta y amplía su base de conocimiento a medida que se entrena de forma continua con conversaciones en los espacios a los que se la agregó.

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

  • Cuando se menciona la app de asistente de conocimiento sobre IA, se agrega a un espacio.
    Figura 1: Carlos agrega la app de Chat del asistente de conocimiento sobre IA a un espacio de Chat.
  • Daniela hace una pregunta.
    Figura 2: Daniela pregunta si la empresa ofrece capacitación para hablar en público.
  • La app de Chat del asistente de conocimiento sobre IA responde la pregunta.
    Figura 3: La app de Chat del asistente de conocimiento sobre IA le indica a Vertex AI a 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 de un espacio de Chat.
  • Con la IA generativa:
    • Detecta y responde las preguntas de los empleados.
    • Aprende de forma continua de las conversaciones en curso en un espacio de Chat.
  • Escucha y responde mensajes en un espacio de Chat en tiempo real, incluso cuando la app de Chat no se envía directamente.
  • Conserva los mensajes a través de la escritura y la lectura de una base de datos de Firestore.
  • Para facilitar la colaboración en un espacio de Chat, menciona a los administradores del espacio cuando no se encuentre respuesta a una pregunta.

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 la IA.

Diagrama de la arquitectura de la app de Chat del asistente de conocimiento sobre IA

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

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

    1. La app de Chat 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 mediante una llamada al método spaces.messages.list en la API de Chat y, luego, los almacena 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 escuchar 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 del 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, luego, un usuario edita o borra el mensaje, 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 guardó en Firestore y, luego, la app de Google Chat envía el mensaje al espacio de Chat. Si no es así, no respondas.

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

        Si Vertex AI con Gemini no puede responder la pregunta, la app de Chat publica un mensaje que 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 con @ a un administrador del 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á por vencer:

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

    1. Para borrar la suscripción, la app de Chat llama 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 sobre IA

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

  • API de Vertex AI con Gemini: Una plataforma de IA generativa impulsada por Gemini. La app de Chat del asistente de conocimiento sobre IA usa la API de Vertex AI con Gemini para reconocer, comprender y responder las preguntas de los empleados.
  • API de Chat: Es una API para desarrollar apps de Google Chat que reciben y responden a eventos de interacción de Chat, como mensajes. La app de Chat del asistente de conocimiento sobre IA usa la API de Chat para lo siguiente:
    • Recibe y responde los eventos de interacción que envía Chat.
    • Enumera mensajes enviados en un espacio.
    • Publica respuestas a preguntas de los usuarios en un espacio.
    • Configura los atributos que determinan 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 las aplicaciones de Google Workspace. La app de Chat del asistente de conocimiento de IA usa la API de Google Workspace Events para escuchar mensajes publicados en un espacio de Chat, de modo que pueda detectar y responder preguntas, incluso cuando no se 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 escalable y asíncrono 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 controladas por 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 a la Cloud Function que recibe y procesa los eventos de suscripción.
  • Cloud Functions: Un servicio ligero de procesamiento sin servidores que te permite crear funciones independientes de un solo propósito que pueden responder a los 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 la IA usa dos funciones de Cloud Functions llamadas las siguientes:
    • app: Aloja el extremo HTTP al que Chat envía los eventos de interacción y como plataforma de procesamiento para ejecutar una lógica que procesa y responde a estos eventos.
    • eventsApp: Recibe y procesa eventos de espacios de Chat, como mensajes de una suscripción de Pub/Sub.
    Cloud Functions usa los siguientes productos de Google Cloud para compilar y alojar recursos de procesamiento:
    • Cloud Build: Una plataforma de integración, implementación y entrega continuas completamente administrada 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, por lo que debes elegir un ID que satisfaga tus necesidades durante todo el ciclo de vida del proyecto.

  3. En el campo Ubicación, haz clic en Explorar para mostrar las ubicaciones posibles del proyecto. Luego, haga clic en Seleccionar.
  4. Haz clic en Crear. La consola de Google Cloud navega a la página Panel y tu proyecto se crea en unos 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 initialize la CLI de gcloud.
    Para crear un proyecto de Cloud, usa el comando “gcloud projects create”:
    gcloud projects create PROJECT_ID
    Reemplaza PROJECT_ID mediante la configuración del 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 enumerar las cuentas de facturación disponibles, ejecuta
    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 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.

Habilita las APIs

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.

    Habilita las APIs

  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, configura el proyecto de Cloud actual como 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 del marcador de posición. Antes de publicar la app de Google Chat de forma externa, reemplaza la información del marcador de posición por información real para la pantalla de consentimiento.

  1. En la consola de Google Cloud, ve a 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 del usuario, selecciona tu dirección de correo electrónico o un Grupo de Google adecuado.

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

  6. Haz clic en Save and Continue.

  7. Haz clic en Add or Remove Scopes. Aparecerá un panel con una lista de permisos para cada API que hayas habilitado 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 Add to Table.

  10. Haz clic en Update.

  11. Haz clic en Save and Continue.

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

Crear 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 la Cloud Function, como us-central1. Más adelante, cuando crees las dos funciones de Cloud Functions, deberás configurar su región en este valor.
    • PROJECT_ID: Es el ID del proyecto de Cloud que creaste.
  7. Haz clic en Crear.

  8. En la ventana Se creó el cliente de OAuth, haz clic en Descargar JSON.

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

  10. Haz clic en OK.

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 los 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 en conjunto, 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 Agregar principal.

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

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

    4. Haz clic en Guardar.

gcloud CLI

  1. Crea un tema de Pub/Sub con el ID del 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

Que la base de datos de Firestore persista y recupere datos de espacios de Chat, como 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 organizados en colecciones . Para obtener más información, consulta el modelo de datos de Firestore.

En el siguiente diagrama, se brinda una descripción general del modelo de datos de la app de Chat del asistente de conocimiento sobre IA:

Modelo de datos de la base de datos de Firestore.

La raíz contiene dos colecciones:

  1. spaces, donde cada documento representa un espacio de Chat al que se agrega la app de Chat. Cada mensaje se representa con un documento de la subcolección messages.

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

Ver definiciones de campos, colecciones y documentos

spaces

Un espacio de Chat que incluya la app de Chat del asistente de conocimiento sobre IA.

Campos
Document IDString
Es el ID único de un espacio específico. Una parte del nombre del recurso del espacio en la API de Chat
messagesSubcollection of Documents (messages)
Mensajes que se envían en el espacio de Chat Corresponde al Document ID de un message en Firebase.
spaceNameString
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
El nombre único de un mensaje en la API de Chat. Corresponde al nombre del recurso del mensaje en la API de Chat.
textString
El cuerpo del texto del mensaje.
timeString (Timestamp format)
La hora en la que se creó el mensaje.

users

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

Campos
Document IDString
Es el ID único de un usuario específico.
accessTokenString
El token de acceso que se otorgó durante la autorización del usuario de OAuth 2.0 y que se usó 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.

A continuación, te mostramos cómo 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 Selecciona 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 la base de datos, deja el ID de la 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 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 que la de Cloud Functions de la app de Chat.

Crea e implementa la app de Chat

Ahora que se creó y configuró el 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. Crear e implementar dos Cloud Functions Una para responder a eventos de interacción de Chat y otra para responder a 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 Functions

En esta sección, crearás e implementarás dos funciones de 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 del espacio de Chat, como mensajes de Pub/Sub.

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

De manera opcional, antes de crear las funciones de Cloud Functions, tómate un momento para revisar el código de muestra alojado en GitHub y familiarizarte con él.

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 las credenciales de ID de cliente de OAuth para la autenticación y la 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 2a gen..
    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 configuraste en el URI de redireccionamiento autorizado cuando creaste las credenciales del ID de cliente de OAuth para la autenticación y la 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 archivos 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 componentes en este bucket. Luego, Cloud Functions copia los archivos de componentes en Cloud Function.

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

    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 desaparecen y se reemplazan por una marca de verificación, la función está implementada y lista.

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

    1. En la página Detalles de Cloud Function, 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. Configura el valor de project con el ID de tu proyecto de Cloud.
      2. Configura el valor de location como la región de Cloud Functions, 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 del asistente de conocimiento de la 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 las credenciales de ID de cliente de OAuth para la autenticación y la autorización.

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

    1. Configura el valor de project con el ID de tu proyecto de Cloud.
    2. Configura el valor de location como la región de Cloud Functions, 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 Functions para que coincida con el conjunto del 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 2a gen..
    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 configuraste en el URI de redireccionamiento autorizado cuando creaste las credenciales del ID de cliente de OAuth para la autenticación y la 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 del 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 todos.
    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 Source code (Código fuente), selecciona Zip de Cloud Storage.

  7. En la 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 otro para el activador. Cuando los tres indicadores de progreso desaparecen y se reemplazan por una marca de verificación, la función está implementada y lista.

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

    1. En la página Detalles de Cloud Function, 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. Configura el valor de project con el ID de tu proyecto de Cloud.
      2. Configura el valor de location como la región de Cloud Functions, como us-central1.
  13. Haz clic en Implementar.

gcloud CLI

  1. En gcloud CLI, si aún no lo hiciste, cambia al directorio que contiene el código de esta app de Chat del asistente de conocimiento de la IA que clonaste anteriormente de 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 las credenciales de ID de cliente de OAuth para la autenticación y la autorización.

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

    1. Configura el valor de project con el ID de tu proyecto de Cloud.
    2. Configura el valor de location como la región de Cloud Functions, 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 Functions para que coincida con el conjunto del archivo env.js, como us-central1.

Copia la URL del activador de Cloud Function app

Pega la URL del activador de Cloud Functions 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 y la URL del activador de la función de Cloud Functions 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 Descripción, escribe Answers questions with AI.

  5. Haz clic en el botón Enable Interactive features para que se active.

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

  7. En Configuración de la conexión, selecciona URL de la app.

  8. En URL de la app, pega la URL del activador de la Cloud Function app con el formato https://REGION-PROJECT_ID.cloudfunctions.net/app, donde REGION es la región de la función, 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 forma opcional, en Registros, selecciona Registrar errores en Logging.

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

Prueba la app de Chat

Prueba la app de Chat del asistente de conocimiento sobre IA en un espacio de Chat con mensajes mediante preguntas que la app de Chat del asistente de conocimiento de IA pueda responder.

A continuación, se incluyen algunas formas de probar la app de Chat del asistente de conocimiento sobre IA:

  • Agregar la app de Chat del asistente de conocimiento sobre IA a un espacio de Chat existente y hacer preguntas relevantes para ese espacio
  • Crear un espacio de Chat y publicar 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 Descripción general del desarrollo 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 Descripción general del desarrollo con Chat.

  1. Abre Google Chat.

    Ir a Google Chat

  2. Sigue estos pasos para crear 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é es este espacio?, selecciona Colaboración.

    4. En Configuración de acceso, elige quiénes pueden 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 Descripción general del desarrollo 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 sobre IA:

    1. En la barra para escribir mensajes, escribe @AI knowledge assistant. 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 en el que se te preguntará si quieres agregar la app de Chat del asistente de conocimiento sobre 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 nueva ventana o pestaña del navegador en la que se te pedirá que elijas una Cuenta de Google. Elige la cuenta con la que quieres hacer la prueba.
      3. Revisa los permisos que solicita la app de Chat del asistente de conocimiento de la 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 escribir un mensaje, escribe una pregunta como What are Google Chat apps?.

    2. Las respuestas de la app de Chat del asistente de conocimiento sobre la IA

    3. De manera opcional, si la respuesta no es precisa o 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 y le pide que responda. La próxima vez, la app de Chat del asistente de conocimiento sobre la IA sabrá la respuesta.

Consideraciones, opciones de arquitectura alternativa y próximos pasos

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

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

En este instructivo, se recomienda almacenar los datos de espacios de Chat, como mensajes, en una base de datos de Firestore, ya que esto 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 repetida 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, usar 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 la IA obtiene su propio objeto, y cada objeto es un archivo de texto que contiene todos los mensajes en el espacio. La ventaja de este enfoque es que todo el contenido del archivo de texto se puede ingresar a Vertex AI con Gemini a la vez, pero la desventaja es que se requiere más trabajo para actualizar el historial de la conversación porque no puedes adjuntarlo a un objeto en Cloud Storage, solo debes reemplazarlo. Este enfoque no tiene sentido si actualizas con regularidad el historial de mensajes, pero sería una buena opción si actualizas el historial de mensajes por lotes periódicamente, por ejemplo, una vez por semana.

Solucionar problemas

Cuando una app de Google Chat o una tarjeta devuelve un error, la interfaz de Chat muestra un mensaje que dice “Se produjo un error” o “No se pudo 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 tarjeta.

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

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en este instructivo, te recomendamos que borres 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.