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:
-
Figura 2: Daniela pregunta si la empresa ofrece capacitación para hablar en público. -
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
Una cuenta de Google Workspace con acceso a Google Chat
Acceso a los servicios de Google Cloud para hacer lo siguiente:
- Crea un proyecto de Google Cloud.
- Vincular una cuenta de Facturación de Google Cloud al proyecto de Cloud A fin de saber si tienes acceso, consulta Permisos necesarios para habilitar la facturación.
- Usa las invocaciones de funciones de Google Cloud no autenticadas, que puedes verificar si determinas si tu organización de Google Cloud usa 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 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.
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:
La app de Chat 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 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.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.La app de Chat publica un mensaje de introducción en el espacio.
Un usuario del 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, 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.
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 guardó en Firestore y, luego, la app de Google Chat envía el mensaje al espacio de Chat. Si no es así, no respondas.
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:
- 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 envía una solicitud para renovar la suscripción mediante una llamada al método
La app de Chat se quita de un espacio de Chat:
Para borrar la suscripción, la app de Chat llama 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 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 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
- 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, por lo que debes elegir un ID que satisfaga tus necesidades durante todo el ciclo de vida del proyecto.
- En el campo Ubicación, haz clic en Explorar para mostrar las ubicaciones posibles del proyecto. Luego, haga clic en Seleccionar.
- 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
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 enumerar las cuentas de facturación disponibles, ejecuta
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 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
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, 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.
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.
Configura la pantalla de consentimiento de OAuth, especifica los permisos y registra tu app
En la consola de Google Cloud, ve a 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 del usuario, selecciona tu dirección de correo electrónico o un Grupo de Google adecuado.
En Información de contacto del desarrollador, ingresa tu dirección de correo electrónico.
Haz clic en Guardar y continuar.
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.
En Agregar permisos de forma manual, pega el siguiente alcance:
https://www.googleapis.com/auth/chat.messages
Haz clic en Add to Table.
Haga clic en Update.
Haz clic en Guardar y continuar.
Revisa el resumen de registro de la app y, luego, haz clic en Volver al panel.
Crear 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 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.
- REGION: Es la región de la Cloud Function, como
Haz clic en Crear.
En la ventana Se creó el cliente de OAuth, haz clic en Descargar JSON.
Guarda el archivo descargado como
client_secrets.json
. Más adelante, cuando crees las dos Cloud Functions, incluirás el archivoclient_secrets.json
en cada implementación.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
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 en conjunto, 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 Agregar principal.
En Agregar principales, en Principales nuevas, escribe
chat-api-push@system.gserviceaccount.com
.En Asignar roles, en Selecciona un rol, elige Pub/Sub > Publicador de Pub/Sub.
Haz clic en Guardar.
gcloud CLI
Crea un tema de Pub/Sub con el ID del 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
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 modelo de datos de Firestore.
organizados en colecciones . Para obtener más información, consulta elEn el siguiente diagrama, se brinda una descripción general del modelo de datos de la app de Chat del asistente de conocimiento sobre IA:
La raíz contiene dos colecciones:
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ónmessages
.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 ID | String Es el ID único de un espacio específico. Una parte del nombre del recurso del espacio en la API de Chat |
messages | Subcollection of Documents ( Mensajes que se envían en el espacio de Chat Corresponde al Document ID de un message en Firebase. |
spaceName | String 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 El nombre único de un mensaje en la API de Chat. Corresponde al nombre del recurso del mensaje en la API de Chat. |
text | String El cuerpo del texto del mensaje. |
time | String (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 ID | String Es el ID único de un usuario específico. |
accessToken | String 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. |
refreshToken | String 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
En la consola de Google Cloud, ve a Menú > Firestore.
Haz clic en Crear base de datos.
En Selecciona tu modo de Firestore, haz clic en Modo nativo.
Haz clic en Continuar.
Configura la base de datos:
En Asigna un nombre a la base de datos, deja el ID de la 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 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 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:
- 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.
- 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.
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 las credenciales de ID de cliente de OAuth para la autenticación y la 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 2a gen..
- 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 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. - 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 archivos 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 componentes en este bucket. Luego, Cloud Functions copia los archivos de componentes en Cloud Function.
En Archivo ZIP, sube el archivo ZIP que descargaste de GitHub, que extrajiste y volviste a comprimir:
- 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 desaparecen y se reemplazan por una marca de verificación, la función está implementada y lista.
Edita el código de muestra para establecer constantes:
- En la página Detalles de Cloud Function, 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
:- Configura el valor de project con el ID de tu proyecto de Cloud.
- Configura el valor de location como la región de Cloud Functions, 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 del asistente de conocimiento de la 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 las credenciales de ID de cliente de OAuth para la autenticación y la autorización.Edita el archivo
env.js
para establecer variables de entorno:- Configura el valor de project con el ID de tu proyecto de Cloud.
- Configura el valor de location como la región de Cloud Functions, 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 Functions para que coincida con el conjunto del 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 2a gen..
- 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 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. - 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 del 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 todos. - 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 Source code (Código fuente), selecciona Zip de Cloud Storage.
En la 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 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.
Edita el código de muestra para establecer constantes:
- En la página Detalles de Cloud Function, 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
:- Configura el valor de project con el ID de tu proyecto de Cloud.
- Configura el valor de location como la región de Cloud Functions, como
us-central1
.
Haz clic en Implementar.
gcloud CLI
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
En el directorio
google-chat-samples/node/ai-knowledge-assistant
, agrega el archivoclient_secrets.json
que descargaste cuando creaste las credenciales de ID de cliente de OAuth para la autenticación y la autorización.Edita el archivo
env.js
para establecer variables de entorno:- Configura el valor de project con el ID de tu proyecto de Cloud.
- Configura el valor de location como la región de Cloud Functions, 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 Functions para que coincida con el conjunto del archivo
env.js
, comous-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
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 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.
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 Descripción, escribe
Answers questions with AI
.Haz clic en el botón Enable Interactive features para que se active.
En Funcionalidad, selecciona Unirse a espacios y conversaciones grupales.
En Configuración de la conexión, selecciona URL de la app.
En URL de la app, pega la URL del activador de la Cloud Function
app
con el formatohttps://
REGION-
PROJECT_ID.cloudfunctions.net/app
, donde REGION es la región de la función, 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 forma opcional, en Registros, selecciona Registrar errores en Logging.
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.
Abre Google Chat.
Sigue estos pasos para crear un espacio de Chat:
Haz clic en > Crear un espacio.
New ChatEn Nombre del espacio, escribe
Testing AI knowledge assistant app
.En ¿Para qué es este espacio?, selecciona Colaboración.
En Configuración de acceso, elige quiénes pueden acceder al espacio.
Haz clic en Crear.
Agrega mensajes para usarlos como fuente de datos:
En un navegador web, visita la guía Descripción general del desarrollo 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 sobre IA:
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 presionaenter
.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.
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 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.
- Revisa los permisos que solicita la app de Chat del asistente de conocimiento de la 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 escribir un mensaje, escribe una pregunta como
What are Google Chat apps?
.Las respuestas de la app de Chat del asistente de conocimiento sobre la IA
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 o una tarjeta de Google Chat devuelve un error, la interfaz de Chat muestra un mensaje que dice "Se produjo un error". o "No se pudo procesar la 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 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.
- 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