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:
-
Figura 2: Dana pregunta si la empresa ofrece capacitación para hablar en público. -
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
Una cuenta de Google Workspace para empresas o empresas con acceso a Google Chat
Acceso a servicios de Google Cloud para hacer lo siguiente:
- Crea un proyecto de Google Cloud.
- Vincula una cuenta de facturación de Google Cloud al proyecto de Cloud. Para saber si tienes acceso, consulta Permisos necesarios para habilitar la facturación.
- Usa invocaciones de Google Cloud Function no autenticadas, que puedes verificar determinando si tu organización de Google Cloud usa el uso compartido restringido del dominio.
Si es necesario, solicita acceso o permiso a tu administrador de Google Cloud.
Si usas Google Cloud CLI, un entorno de desarrollo de Node.js configurado para funcionar con gcloud CLI Consulta Configura un entorno de desarrollo de Node.js.
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.
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:
La app de Chat le solicita al usuario que la agregó al espacio de Chat que configure la autenticación y la autorización.
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.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.La app de Chat publica un mensaje de introducción en el espacio.
Un usuario en el espacio de Chat publica un mensaje:
La app de Chat recibe el mensaje en tiempo real del tema de Pub/Sub.
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.
La app de Chat envía el mensaje a Vertex AI con Gemini:
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.
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:
- 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 envía una solicitud para renovar la suscripción llamando al método
La app de Chat se quita de un espacio de Chat en los siguientes casos:
La app de Chat borra la suscripción llamando al método
subscriptions.delete
en la API de Google Workspace Events.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 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
- En la consola de Google Cloud, ve a Menú > IAM y administración > Crear un proyecto.
-
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.
- En el campo Ubicación, haz clic en Explorar para mostrar las posibles ubicaciones de tu proyecto. Luego, haga clic en Seleccionar.
- 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 comandogcloud projects create
: Para reemplazar PROJECT_ID, establece el ID del proyecto que deseas crear.gcloud projects create PROJECT_ID
Habilita la facturación para el proyecto de Cloud
Consola de Google Cloud
- En la consola de Google Cloud, ve a Facturación. Haz clic en Menú > Facturación > Mis proyectos.
- En Selecciona una organización, elige la organización asociada con tu proyecto de Google Cloud.
- En la fila del proyecto, abre el menú Acciones ( ), haz clic en Cambiar facturación y elige la cuenta de Facturación de Cloud.
- Haz clic en Establecer cuenta.
gcloud CLI
- Para obtener una lista de las cuentas de facturación disponibles, ejecuta el siguiente comando:
gcloud billing accounts list
- 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
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.
Confirma que estás habilitando las APIs en el proyecto de Cloud correcto y, luego, haz clic en Siguiente.
Confirma que estás habilitando las APIs correctas y, luego, haz clic en Habilitar.
gcloud CLI
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.
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.
Configura la pantalla de consentimiento de OAuth, especifica los permisos y registra tu app
En la consola de Google Cloud, ve al menú > APIs y servicios > Pantalla de consentimiento de OAuth.
En Tipo de usuario, selecciona Interno y, luego, haz clic en Crear.
En Nombre de la app, escribe
AI knowledge assistant
.En Correo electrónico de asistencia al usuario, selecciona tu dirección de correo electrónico o un Grupo de Google apropiado.
En Información de contacto del desarrollador, ingresa tu dirección de correo electrónico.
Haga clic en Guardar y continuar.
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.
En Agregar permisos de forma manual, pega el siguiente alcance:
https://www.googleapis.com/auth/chat.messages
Haz clic en Agregar a la tabla.
Haz clic en Actualizar.
Haga clic en Guardar y continuar.
Revisa el resumen del registro de la app y, luego, haz clic en Volver al panel.
Crea credenciales de ID de cliente de OAuth
En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.
Haz clic en Crear credenciales > ID de cliente de OAuth.
Haz clic en Tipo de aplicación > Aplicación web.
En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
En URI de redireccionamiento autorizados, haz clic en Agregar URI.
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.
- REGION: Es la región de Cloud Function, como
Haz clic en Crear.
En la ventana Cliente de OAuth creado, haz clic en Descargar JSON.
Guarda el archivo descargado como
client_secrets.json
. Luego, cuando crees las dos Cloud Functions, incluirás el archivoclient_secrets.json
en cada implementación.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
En la consola de Google Cloud, ve a Menú > Pub/Sub.
Haz clic en Crear tema.
En ID del tema, escribe
events-api
.Anula la selección de Agregar una suscripción predeterminada.
En Encriptación, selecciona Clave de encriptación administrada por Google.
Haz clic en Crear. Aparecerá el tema de Pub/Sub.
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:
En el panel events-api, en PERMISSIONS, haz clic en Add Principal.
En Agregar principales, en Principales nuevas, escribe
chat-api-push@system.gserviceaccount.com
.En Asignar roles, en Selecciona un rol, selecciona Pub/Sub > Publicador de Pub/Sub.
Haz clic en Guardar.
gcloud CLI
Crea un tema de Pub/Sub con el ID de tema
events-api
:gcloud pubsub topics create events-api
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 Modelo de datos de Firestore.
organizados en colecciones . Para obtener más información, consultaEl siguiente diagrama es una descripción general del modelo de datos de la app de Chat del asistente de conocimiento de IA:
La raíz contiene dos colecciones:
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ónmessages
.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 ID | String Es el ID único de un espacio específico. Es una parte del nombre del recurso del espacio en la API de Chat. |
messages | Subcollection of Documents ( Mensajes enviados en el espacio de Chat Corresponde con el Document ID de un message en Firebase. |
spaceName | String 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 ID | String Es el ID único de un mensaje específico. |
name | String Es el nombre único de un mensaje en la API de Chat. Corresponde al nombre de recurso del mensaje en la API de Chat. |
text | String El cuerpo de texto del mensaje. |
time | String (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 ID | String Es el ID único de un usuario específico. |
accessToken | String 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. |
refreshToken | String 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
En la consola de Google Cloud, ve a Menú > Firestore.
Haz clic en Crear base de datos.
En Elige tu modo de Firestore, haz clic en Modo nativo.
Haz clic en Continuar.
Configura la base de datos:
En Asigna un nombre a tu base de datos, deja el ID de base de datos como
(default)
.En Tipo de ubicación, selecciona Región.
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.
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:
- 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.
- 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.
Crea e implementa app
Consola de Google Cloud
Descarga el código de GitHub como un archivo ZIP.
Extraiga el archivo ZIP que se descargó.
La carpeta extraída contiene todo el repositorio de muestras de Google Workspace.
En la carpeta extraída, navega al directorio
google-chat-samples-main/node/ai-knowledge-assistant
.En el directorio
google-chat-samples/node/ai-knowledge-assistant
, agrega el archivoclient_secrets.json
que descargaste cuando creaste credenciales de ID de cliente de OAuth para autenticación y autorización.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/
En la consola de Google Cloud, ve a Menú > Cloud Functions.
Asegúrate de que el proyecto de Google Cloud para tu app de Chat esté seleccionado.
Haz clic en
Crear función.En la página Crear función, configura tu función:
- En Entorno, selecciona Función de Cloud Run.
- En Nombre de la función, escribe
app
. - 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. - En Tipo de activador, selecciona HTTPS.
- En Autenticación, selecciona Permitir invocaciones no autenticadas.
- Haz clic en Siguiente.
En Entorno de ejecución, selecciona Node.js 20.
En Punto de entrada, borra el texto predeterminado y, luego, ingresa
app
.En Código fuente, selecciona Carga de ZIP.
En Bucket de destino, crea o selecciona un bucket:
- Haz clic en Explorar.
- Elige un bucket.
- 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.
En Archivo ZIP, sube el archivo ZIP que descargaste de GitHub, extrajiste y recomprimiste:
- Haz clic en Explorar.
- Navega hasta el archivo ZIP y selecciónalo.
- Haz clic en Abrir.
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.
Edita el código de muestra para establecer constantes:
- En la página Detalles de la función de Cloud, haz clic en Editar.
- Haz clic en Siguiente.
- En Código fuente, selecciona Editor directo.
- En el editor directo, abre y edita el archivo
env.js
:- Establece el valor de project en el ID de tu proyecto de Cloud.
- Establece el valor de location en la región de Cloud Function, como
us-central1
.
Haz clic en Implementar.
gcloud CLI
Clona el código desde GitHub:
git clone https://github.com/googleworkspace/google-chat-samples.git
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
En el directorio
google-chat-samples/node/ai-knowledge-assistant
, agrega el archivoclient_secrets.json
que descargaste cuando creaste credenciales de ID de cliente de OAuth para autenticación y autorización.Edita el archivo
env.js
para establecer las variables de entorno:- Establece el valor de project como el ID de tu proyecto de Cloud.
- Establece el valor de location en la región de Cloud Function, como
us-central1
.
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
, comous-central1
.
Crea e implementa eventsApp
Consola de Google Cloud
En la consola de Google Cloud, ve a Menú > Cloud Functions.
Asegúrate de que el proyecto de Google Cloud para tu app de Chat esté seleccionado.
Haz clic en
Crear función.En la página Crear función, configura tu función:
- En Entorno, selecciona Función de Cloud Run.
- En Nombre de la función, escribe
eventsApp
. - 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. - En Tipo de activador, selecciona Cloud Pub/Sub.
- 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. - 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. - Haz clic en Siguiente.
En Entorno de ejecución, selecciona Node.js 20.
En Punto de entrada, borra el texto predeterminado y, luego, ingresa
eventsApp
.En Código fuente, selecciona ZIP de Cloud Storage.
En Ubicación de Cloud Storage, haz clic en Explorar.
Selecciona el bucket al que subiste el archivo ZIP cuando creaste la función
app
de Cloud Functions.Haz clic en el archivo ZIP que subiste.
Haz clic en Seleccionar.
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.
Edita el código de muestra para establecer constantes:
- En la página Detalles de la función de Cloud, haz clic en Editar.
- Haz clic en Siguiente.
- En Código fuente, selecciona Editor directo.
- En el editor directo, abre y edita el archivo
env.js
:- Establece el valor de project en el ID de tu proyecto de Cloud.
- Establece el valor de location en la región de Cloud Function, como
us-central1
.
Haz clic en Implementar.
gcloud CLI
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
En el directorio
google-chat-samples/node/ai-knowledge-assistant
, agrega el archivoclient_secrets.json
que descargaste cuando creaste credenciales de ID de cliente de OAuth para la autenticación y autorización.Edita el archivo
env.js
para establecer las variables de entorno:- Configura el valor de project con el ID de tu proyecto de Cloud.
- Establece el valor de location en la región de Cloud Function, como
us-central1
.
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
, comous-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
En la consola de Google Cloud, ve a Menú > Cloud Functions.
En la columna Nombre de la lista de Cloud Functions, haz clic en
app
.Haz clic en Activar.
Copia la URL.
gcloud CLI
Describe la Cloud Function
app
:gcloud functions describe app
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.
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.
En Nombre de la app, escribe
AI knowledge assistant
.En URL del avatar, escribe
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg
.En Description, escribe
Answers questions with AI
.Haz clic en el botón de activación Enable Interactive features.
En Funcionalidad, selecciona Unirse a espacios y conversaciones grupales.
En Configuración de la conexión, selecciona URL del extremo HTTP.
En URL del extremo HTTP, pega la URL del activador de la Cloud Function
app
con el formatohttps://
REGION-
PROJECT_ID.cloudfunctions.net/app
, en el que REGION es la región de la función de Cloud Functions, comous-central1
y PROJECT_ID es el ID del proyecto de Cloud que creaste.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.
De manera opcional, en Registros, selecciona Registrar errores en Logging.
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.
Abre Google Chat.
Crea un espacio de Chat:
Haz clic en > Crear un espacio.
New ChatEn Nombre del espacio, escribe
Testing AI knowledge assistant app
.En ¿Para qué sirve este espacio?, selecciona Colaboración.
En Configuración de acceso, elige quién puede acceder al espacio.
Haz clic en Crear.
Agrega mensajes para usarlos como fuente de datos:
En un navegador web, visita la guía de descripción general para desarrollar con Chat.
Copia y pega el contenido de la guía en el espacio de Chat que creaste.
Agrega la app de Chat del asistente de conocimiento de IA:
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 presionaenter
.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.
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:
- Haz clic en Configurar.
- 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.
- Revisa los permisos que solicita la app de Chat del asistente de conocimiento de IA. Para otorgarlos, haz clic en Permitir.
- 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.
Realiza una pregunta:
En la barra para redactar mensajes, ingresa una pregunta como
What are Google Chat apps?
La app de Chat del asistente de conocimiento de IA responde.
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.
- En la consola de Google Cloud, ve a la página Administrar recursos. Haz clic en Menú > IAM y administración > Administrar recursos.
- En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar .
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.
Temas relacionados
- Administra proyectos con Google Chat, Vertex AI y Firestore
- Responde a incidentes con Google Chat, Vertex AI y Apps Script