Obtén acceso a más de 700 labs y cursos

Compila una aplicación de chat basada en LLM y RAG con AlloyDB y Vertex AI

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Intermedio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

Descripción general

Una de las mejores herramientas para mejorar la calidad de las respuestas de los modelos de lenguaje grandes (LLM) es la generación mejorada por recuperación (RAG). RAG es el patrón de recuperación de algunos datos no públicos y de uso de esos datos para mejorar la instrucción que envías al LLM. La RAG permite que el LLM genere respuestas más exactas en función de los datos incluidos en la instrucción.

Usarás AlloyDB, la base de datos escalable y de alto rendimiento de Google Cloud compatible con PostgreSQL, para almacenar y buscar por un tipo especial de datos vectoriales llamados embeddings de vectores. Los embeddings de vectores se pueden recuperar con una búsqueda semántica, que permite recuperar los datos disponibles que se ajusten mejor a la consulta en lenguaje natural de un usuario. Luego, los datos recuperados se pasan al LLM en la instrucción.

Para recuperar datos de la base de datos, usarás MCP Toolbox, un servidor de middleware que expone las operaciones de la base de datos como un conjunto de herramientas. El agente se conecta a Toolbox para ejecutar estas herramientas. Esto proporciona una forma segura, modular y escalable de administrar las interacciones con la base de datos.

También usarás Vertex AI, la plataforma de desarrollo de IA unificada y completamente administrada de Google Cloud para crear y usar IA generativa. Tu aplicación usa Gemini Pro, un modelo de base multimodal que admite agregar imágenes, audios, videos y archivos PDF en instrucciones de texto o chat, y admite la comprensión con contexto extenso.

arquitectura de la app del agente

Qué aprenderás

En este lab, aprenderás lo siguiente:

  • Cómo la RAG mejora las capacidades del LLM con la recuperación de información pertinente de una base de conocimiento
  • Cómo se puede usar AlloyDB para buscar información pertinente con la búsqueda semántica
  • Cómo se puede usar Vertex AI y los modelos de base de Google para proporcionar funciones de IA generativa potentes a las aplicaciones

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Nota: Lee estas instrucciones.

Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

En este lab práctico de Qwiklabs, se te proporcionarán credenciales temporales nuevas para acceder a Google Cloud y realizar las actividades en un entorno de nube real, no en uno de simulación o demostración.

Requisitos

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
  • Tiempo para completar el lab
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses para el lab. Nota: Si usas una Pixelbook, abre una ventana de incógnito para ejecutar el lab.

Cómo iniciar tu lab y acceder a la consola

  1. Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago. A la izquierda, verás un panel con las credenciales temporales que debes usar para este lab.

    Panel de credenciales

  2. Copia el nombre de usuario y, luego, haz clic en Abrir la consola de Google. El lab inicia los recursos y abre otra pestaña que muestra la página Elige una cuenta.

    Sugerencia: Abre las pestañas en ventanas separadas, una junto a la otra.
  3. En la página Elige una cuenta, haz clic en Usar otra cuenta. Se abrirá la página de acceso.

    Cuadro de diálogo Elige una cuenta el que se destaca la opción Usar otra cuenta

  4. Pega el nombre de usuario que copiaste del panel Detalles de la conexión. Luego, copia y pega la contraseña.

Nota: Debes usar las credenciales del panel Detalles de la conexión. No uses tus credenciales de Google Cloud Skills Boost. Si tienes una cuenta propia de Google Cloud, no la utilices para este lab para no incurrir en cargos.
  1. Haz clic para avanzar por las páginas siguientes:
  • Acepta los Términos y Condiciones.
  • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
  • No te registres para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Menú de la consola de Cloud

Activa Google Cloud Shell

Google Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud.

Google Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. En la consola de Cloud, en la barra de herramientas superior derecha, haz clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell destacado

  2. Haz clic en Continuar.

El aprovisionamiento y la conexión al entorno demorarán unos minutos. Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. Por ejemplo:

ID del proyecto destacado en la terminal de Cloud Shell

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con el completado de línea de comando.

  • Puedes solicitar el nombre de la cuenta activa con este comando:
gcloud auth list

Resultado:

Credentialed accounts: - @.com (active)

Resultado de ejemplo:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Puedes solicitar el ID del proyecto con este comando:
gcloud config list project

Resultado:

[core] project =

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: La documentación completa de gcloud está disponible en la guía de descripción general de gcloud CLI .

Tarea 1: Inicializa el entorno

En esta tarea, instalarás Python, MCP Toolbox y el cliente de PostgreSQL.

Conéctate a la VM de la app a través de SSH

Se creó una máquina virtual (VM). Esta VM aloja la aplicación y MCP Toolbox.

  1. Para conectarte a la VM, ejecuta el siguiente comando en Cloud Shell:

    gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}}

    Si se te solicita autorización, haz clic en Autorizar.

  2. Para cada pregunta que haga el comando gcloud compute ssh, haz clic en Intro o Retorno para especificar la entrada predeterminada.

    Un momento después, accederás a la VM.

Instala Python y Git

  1. Para instalar Python y Git, ejecuta los siguientes comandos en la VM:

    sudo apt update sudo apt install -y python3.11-venv git python3 -m venv .venv source ~/.venv/bin/activate pip install --upgrade pip

    Cuando se complete la instalación, te quedarás en el entorno virtual de Python, con la instrucción (.venv).

    Si el tiempo de espera de la sesión de SSH de la VM se agota o la pestaña se cierra, puedes volver a conectarte a la VM a través de SSH y usar el comando source ~/.venv/bin/activate para reiniciar el entorno virtual de Python.

  2. Para confirmar la versión de Python, ejecuta el siguiente comando:

    python -V

    Tu respuesta debería verse similar a lo siguiente:

    (.venv) student@app-vm:~$ python -V Python 3.11.2 (.venv) student@app-vm:~$

Instala el cliente de PostgreSQL

  1. Para instalar el cliente de PostgreSQL, ejecuta los siguientes comandos en la sesión de la VM:

    sudo apt install -y postgresql-client Nota: Es posible que el cliente ya esté instalado.

Descarga la demostración y MCP Toolbox

  1. Para clonar el código de esta demostración, ejecuta los siguientes comandos:

    cd ~ git clone https://github.com/GoogleCloudPlatform/cymbal-air-toolbox-demo.git cd cymbal-air-toolbox-demo
  2. Para descargar el objeto binario de MCP Toolbox, ejecuta los siguientes comandos:

    export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}" curl -O https://storage.googleapis.com/genai-toolbox/v$MCP_TOOLBOX_VERSION/linux/amd64/toolbox chmod +x toolbox

Tarea 2: Crea la base de datos de vectores

En esta tarea, usarás el cliente de PostgreSQL para crear la base de datos de vectores.

Crea la base de datos de vectores

Ya se creó una instancia de AlloyDB.

  1. Para crear una base de datos nueva, ejecuta el siguiente comando:

    export PROJECT_ID=$(gcloud config get-value project) export REGION={{{project_0.default_region | REGION }}} export ADBCLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}} export ADBINSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | INSTANCE}}} export INSTANCE_IP=$(gcloud alloydb instances describe $ADBINSTANCE --cluster=$ADBCLUSTER --region=$REGION --format="value(ipAddress)") export PGUSER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}} export PGPASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}} export PGDATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}} psql "host=$INSTANCE_IP user=$PGUSER dbname=postgres" -c "CREATE DATABASE $PGDATABASE"

    psql responde con CREATE DATABASE.

    Para que la base de datos admita las búsquedas semánticas, las entidades deben estar representadas por embeddings de vectores.

  2. Para habilitar los embeddings de vectores en esta base de datos, ejecuta el siguiente comando:

    psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "CREATE EXTENSION vector"

    psql responde con CREATE EXTENSION.

Haz clic en Revisar mi progreso para verificar el objetivo.

Crear la base de datos de AlloyDB y habilitar la extensión de vector

Tarea 3: Completa la base de datos de ejemplo

En esta tarea, usarás MCP Toolbox para completar la base de datos de vectores en AlloyDB con datos de muestra. Estos datos se usan para la aplicación de chat.

Examina los modelos de datos

  1. Para ver el modelo de datos, ejecuta el siguiente comando:

    cd ~/cymbal-air-toolbox-demo cat models/models.py

    Aquí se muestran los modelos de datos de Python. El modelo incluye aeropuertos, vuelos, comodidades en las terminales, políticas y boletos.

  2. Para ver un ejemplo de los datos del aeropuerto, ejecuta los siguientes comandos:

    head -1 data/airport_dataset.csv; grep SFO data/airport_dataset.csv

    Estos comandos muestran el encabezado CSV que especifica los nombres de columnas para el conjunto de datos del aeropuerto, seguido de la fila del Aeropuerto Internacional de San Francisco (SFO). Los datos del modelo del aeropuerto se pueden recuperar según el código de la Asociación Internacional de Transporte Aéreo (IATA) o por el nombre del país, la ciudad o el aeropuerto. Puedes usar la búsqueda de palabras clave para encontrar filas en esta tabla, por lo que no hay embeddings de vectores para estos datos.

  3. Para ver un ejemplo de los datos del vuelo, ejecuta los siguientes comandos:

    head -1 data/flights_dataset.csv; grep -m10 "SFO" data/flights_dataset.csv

    Estos comandos muestran el encabezado CSV que especifica los nombres de las columnas del conjunto de datos de los vuelos, seguido de las primeras 10 filas de vuelos hacia o desde SFO. Los datos del modelo de vuelos se pueden recuperar según la aerolínea y el número de vuelo, o por los códigos de los aeropuertos de salida y llegada.

  4. Para ver un ejemplo de los datos de las comodidades, ejecuta el siguiente comando:

    head -2 data/amenity_dataset.csv

    Este comando muestra el encabezado CSV que especifica los nombres de las columnas del conjunto de datos de comodidades, seguido de la primera comodidad.

    Notarás que la primera comodidad tiene varios valores simples, como nombre, descripción, ubicación, terminal, categoría y horario de atención. El siguiente valor es content, que incorpora el nombre, la descripción y la ubicación. El último valor es embedding, el embedding de vector de la fila.

    El embedding es un array de 768 números que se usa cuando se realiza una búsqueda semántica. Estos embeddings se calculan con un modelo de IA proporcionado por Vertex AI. Cuando un usuario ingresa una consulta, se puede crear un embedding de vector a partir de la consulta, y se pueden recuperar datos con embeddings de vectores que se asemejen al embedding de la búsqueda.

    Los datos de políticas también usan embeddings de vectores de una manera similar.

    Nota: El cálculo de los embeddings lleva un tiempo, por lo que estos ya se proporcionaron. La secuencia de comandos run_generate_embeddings.py se puede examinar para ver cómo se generan los embeddings.

Inicia Toolbox

  1. Para configurar las variables de entorno necesarias para MCP Toolbox, ejecuta los siguientes comandos:

    export ALLOYDB_POSTGRES_PROJECT=$(gcloud config get-value project) export ALLOYDB_POSTGRES_REGION={{{project_0.default_region | REGION }}} export ALLOYDB_POSTGRES_CLUSTER={{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}} export ALLOYDB_POSTGRES_INSTANCE={{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}} export ALLOYDB_POSTGRES_DATABASE={{{project_0.startup_script.gcp_alloydb_database | DATABASE}}} export ALLOYDB_POSTGRES_USER={{{project_0.startup_script.gcp_alloydb_user | PG_USER}}} export ALLOYDB_POSTGRES_PASSWORD={{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}} export ALLOYDB_POSTGRES_IP_TYPE=private

    Estas variables de entorno de MCP Toolbox son similares a las que se usaron para el cliente de PostgreSQL.

    El siguiente paso es ejecutar MCP Toolbox.

  2. Para ejecutar MCP Toolbox en segundo plano para la inicialización de datos, ejecuta el siguiente comando:

    cd ~/cymbal-air-toolbox-demo ./toolbox --prebuilt alloydb-postgres &

    El signo et (&) hace que Toolbox se ejecute en segundo plano, por lo que puedes realizar la inicialización de la base de datos en la misma sesión de SSH.

Completa la base de datos

  1. Para instalar las dependencias de Python de la app de demo, ejecuta el siguiente comando:

    source ~/.venv/bin/activate pip install -r requirements.txt
  2. Para ejecutar la secuencia de comandos de la base de datos, usa los siguientes comandos:

    export PYTHONPATH=~/cymbal-air-toolbox-demo python data/run_database_init.py

    El primer comando agrega una ruta a los módulos de Python, y la secuencia de comandos de inicialización completa la base de datos.

  3. Para verificar los datos que se propagaron, ejecuta el siguiente comando:

    psql "host=$INSTANCE_IP user=$PGUSER dbname=$PGDATABASE" -c "SELECT COUNT(*) FROM airports"

    El comando de PostgreSQL devuelve la cantidad de aeropuertos en la tabla de aeropuertos.

  4. Para finalizar el proceso de Toolbox en segundo plano, ejecuta el siguiente comando:

    pkill toolbox
Completar la base de datos con el conjunto de datos de muestra

Tarea 4: Crea una cuenta de servicio para MCP Toolbox

En esta tarea, crearás una cuenta de servicio para MCP Toolbox.

En nuestra app de chat, MCP Toolbox es responsable de extraer información pertinente de la base de datos. Extrae la información necesaria de la base de datos según la solicitud de una aplicación de IA. Esta cuenta de servicio se usa como la identidad del servicio de MCP Toolbox que se ejecuta en Cloud Run.

Crea la cuenta de servicio

El usuario de SSH no tiene permiso para que la instancia del proyecto le otorgue a la cuenta de servicio el rol correcto. Debes crear la cuenta de servicio con una nueva pestaña de Cloud Shell.

  1. En Cloud Shell, para abrir una pestaña nueva de Cloud Shell, haz clic en Abrir una pestaña nueva (+).

  2. Para crear una cuenta de servicio, ejecuta el siguiente comando en la pestaña nueva:

    gcloud iam service-accounts create toolbox-identity

    Se crea esta cuenta de servicio.

    Nota: Si se muestra un error que indica que no tienes una cuenta activa seleccionada, es posible que solo se trate de una demora en la propagación. Ejecuta el comando de nuevo.
  3. Para otorgar a la cuenta de servicio los privilegios necesarios, ejecuta el siguiente comando:

    export PROJECT_ID=$(gcloud config get-value project) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/alloydb.client" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageConsumer" gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor"

    A esta cuenta de servicio se le otorgan los siguientes roles:

    • roles/alloydb.client permite que Toolbox acceda a las bases de datos de AlloyDB.
    • roles/serviceusage.serviceUsageConsumer permite que Toolbox consuma servicios.
    • roles/secretmanager.secretAccessor permite que Toolbox recupere los secretos almacenados en Secret Manager.
  4. Para cerrar la nueva pestaña, ejecuta el siguiente comando:

    exit
Crear la identidad de recuperación de la cuenta de servicio

Tarea 5: Registra la pantalla de consentimiento de OAuth

En esta tarea, registrarás la pantalla de consentimiento de OAuth que se presenta a los usuarios que ingresan a la cuenta.

Cuando usas OAuth 2.0 para la autorización, Google muestra una pantalla de consentimiento para registrar la autorización del usuario para compartir datos con la aplicación.

  1. En la consola de Google Cloud, selecciona el menú de navegación (Ícono del menú de navegación) y, luego, APIs y servicios > Pantalla de consentimiento de OAuth.

  2. Haz clic en Comenzar.

  3. En Nombre de la app, ingresa Cymbal Air.

  4. Haz clic en Correo electrónico de asistencia al usuario, luego en el correo electrónico del estudiante y, después, en Siguiente.

  5. En Público, selecciona Interno y, luego, haz clic en Siguiente.

    Los usuarios con acceso al proyecto deberían poder acceder a la app.

  6. En el panel izquierdo de las instrucciones del lab, copia el Nombre de usuario.

    Copiar nombre de usuario

  7. En Información de contacto, pega el nombre de usuario copiado.

  8. Haz clic en Siguiente.

  9. Haz clic en la casilla de verificación para aceptar la Política de Datos del Usuario, luego haz clic en Continuar y, después, en Crear.

    La pantalla de consentimiento ya está configurada.

Tarea 6: Crea un ID de cliente para la aplicación

En esta tarea, crearás un ID de cliente para la aplicación.

La aplicación requiere un ID de cliente para usar el servicio de OAuth de Google. Debes configurar los orígenes permitidos que pueden hacer esta solicitud y un URI de redireccionamiento al que se redirecciona la app web después de que el usuario acepta acceder.

  1. En la consola de Google Cloud, selecciona el menú de navegación (Ícono del menú de navegación) y, luego, APIs y servicios > Credenciales.

  2. Haz clic en + Crear credenciales y, luego, en ID de cliente de OAuth.

    Un ID de cliente se usa para identificar una sola app para los servidores de OAuth de Google.

  3. En Tipo de aplicación, selecciona Aplicación web.

  4. En Nombre, ingresa Cymbal Air.

    Puedes generar el origen de JavaScript y el URI de redireccionamiento con Cloud Shell.

  5. En Cloud Shell, para abrir una pestaña nueva de Cloud Shell, haz clic en Abrir una pestaña nueva (+).

  6. Para obtener el URI de origen y de redireccionamiento, ejecuta los siguientes comandos en la nueva pestaña:

    echo "origin:"; echo "https://8080-$WEB_HOST"; echo "redirect:"; echo "https://8080-$WEB_HOST/login/google"
  7. En Orígenes autorizados de JavaScript, haz clic en + Agregar URI.

    Nota: Selecciona el botón Agregar URI en Orígenes autorizados de JavaScript, no en URI de redireccionamiento autorizados.
  8. Copia el URI de origen que se creó con el comando echo y, luego, pega el URI en URIs 1.

  9. En URI de redireccionamiento autorizados, haz clic en + Agregar URI.

    Nota: Este es el segundo botón Agregar URI, en URI de redireccionamiento autorizados.
  10. Copia el URI de redireccionamiento que creó el comando echo y, luego, pega el URI en URIs 1.

  11. Para crear la variable de entorno, cambia a la pestaña de Cloud Shell de SSH de la VM y, luego, pega el siguiente comando sin hacer clic en Intro:

    export CLIENT_ID= Nota: Asegúrate de crear la variable de entorno CLIENT_ID dentro de la sesión de la máquina virtual.
  12. En la ventana Credenciales, haz clic en Crear.

    Se crean el ID de cliente y el secreto del cliente. Para esta aplicación de prueba, solo usarás el ID de cliente.

  13. Haz clic en Copiar ID de cliente (Ícono de Copiar ID de cliente).

    El ID de cliente se copia en el portapapeles.

    Nota: El ID de cliente también se puede copiar desde la página Credenciales.
  14. En la pestaña de Cloud Shell de SSH de la VM, pega el ID de cliente y, luego, haz clic en Intro.

    El resultado de la exportación debería ser similar a este:

    export CLIENT_ID=937631684809-q7hs2r191jbks7f7dopih2uafuknb92h.apps.googleusercontent.com
Crear un ID de cliente para la aplicación

Tarea 7: Implementa Toolbox en Cloud Run

En esta tarea, implementarás MCP Toolbox en Cloud Run.

Compila el archivo de configuración para Toolbox

Se proporciona un archivo tools.yaml de ejemplo para Toolbox, pero se deben modificar varios parámetros de configuración.

  1. Para ver la configuración, ejecuta el siguiente comando:

    head -20 ~/cymbal-air-toolbox-demo/tools.yaml

    Este archivo YAML contiene parámetros de configuración para la base de datos y para OAuth.

    Debería tener un aspecto similar al siguiente:

    sources: my-pg-instance: kind: alloydb-postgres project: retrieval-app-testing region: us-central1 cluster: my-alloydb-cluster instance: my-alloydb-instance database: assistantdemo user: postgres password: postgres authServices: my_google_service: kind: google clientId: 706535509072-qa5v22ur8ik8o513b0538ufo0ne9jfn5.apps.googleusercontent.com
  2. Para actualizar los parámetros de configuración de modo que coincidan con tu entorno, ejecuta los siguientes comandos:

    export PROJECT="$(gcloud config get-value project)" export REGION="{{{project_0.default_region | REGION }}}" export CLUSTER="{{{project_0.startup_script.gcp_alloydb_cluster_name | CLUSTER}}}" export INSTANCE="{{{project_0.startup_script.gcp_alloydb_primary_instance | PRIMARY_INSTANCE}}}" export DATABASE="{{{project_0.startup_script.gcp_alloydb_database | DATABASE}}}" export USER="{{{project_0.startup_script.gcp_alloydb_user | PG_USER}}}" export PASSWORD="{{{project_0.startup_script.gcp_alloydb_password | PG_PASSWORD}}}" export IP_TYPE="private" sed \ -e "s/^\( *project:\).*$/\1 $PROJECT/" \ -e "s/^\( *region:\).*$/\1 $REGION/" \ -e "s/^\( *cluster:\).*$/\1 $CLUSTER/" \ -e "s/^\( *instance:\).*$/\1 $INSTANCE/" \ -e "s/^\( *database:\).*$/\1 $DATABASE/" \ -e "s/^\( *user:\).*$/\1 $USER/" \ -e "s/^\( *password:\).*$/\1 $PASSWORD\\n ipType: $IP_TYPE/" \ -e "s/^\( *clientId:\).*$/\1 $CLIENT_ID/" \ ~/cymbal-air-toolbox-demo/tools.yaml > ~/tools.yaml

    Estos comandos usan sed para reemplazar los parámetros de configuración específicos en el archivo tools.yaml de ejemplo. La línea ipType también se agrega debajo de la línea de contraseña, ya que el tipo de IP predeterminado es público.

  3. Para ver las actualizaciones del archivo, ejecuta el siguiente comando:

    head -20 ~/tools.yaml

    La parte superior del archivo de configuración ahora contiene tus valores.

    Los parámetros de configuración sensibles (en especial, la contraseña de la base de datos y el ID de cliente) deben protegerse como secretos.

Crea un secreto para el archivo tools.yaml

En lugar de registrar información sensible en un repositorio de código o como parte de la app en ejecución, puedes usar Secret Manager para proteger tus secretos.

  1. Para crear un secreto, ejecuta el siguiente comando:

    cd ~ gcloud secrets create tools --data-file=tools.yaml
  2. Para validar que se almacenó el secreto, ejecuta el siguiente comando:

    gcloud secrets describe tools

    Ahora deberías ver que hay un secreto llamado tools.

Implementa Toolbox en Cloud Run

  1. Para implementar Toolbox en Cloud Run, en la pestaña de Cloud Shell de SSH de la VM, ejecuta los siguientes comandos:

    export REGION={{{project_0.default_region | REGION }}} export MCP_TOOLBOX_VERSION="{{{project_0.startup_script.gcp_mcp_toolbox_version | TOOLBOX_VERSION}}}" export IMAGE="us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$MCP_TOOLBOX_VERSION" gcloud run deploy toolbox \ --image $IMAGE \ --service-account toolbox-identity \ --region $REGION \ --set-secrets "/app/tools.yaml=tools:latest" \ --args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \ --network default \ --subnet default \ --no-allow-unauthenticated \ --quiet

    Espera hasta que se complete la implementación.

  2. Para verificar el servicio, ejecuta el siguiente comando:

    curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(toolbox)" --format="value(URL)")

    Si ves el mensaje “Hello World!”, el servicio está funcionando y entregando las solicitudes.

Implementar el servicio de Toolbox

Tarea 8: Ejecuta la aplicación de ejemplo

En esta tarea, ejecutarás una aplicación de chat de ejemplo que usa el servicio de recuperación.

Ejecuta la aplicación

  1. Para volver a la raíz de la aplicación de chat, ejecuta los siguientes comandos en la pestaña de Cloud Shell de SSH de la VM:

    source ~/.venv/bin/activate cd ~/cymbal-air-toolbox-demo

    Antes de iniciar la aplicación, debes configurar algunas variables de entorno. La funcionalidad básica de la aplicación, lo que incluye la búsqueda de vuelos y devolver las comodidades de los aeropuertos, requiere una variable de entorno llamada TOOLBOX_URL que contenga la URL del servicio de Toolbox que se ejecuta en Cloud Run.

  2. Para especificar la URL del servicio de Toolbox, ejecuta los siguientes comandos:

    export TOOLBOX_URL=$(gcloud run services list --filter="(toolbox)" --format="value(URL)") echo $TOOLBOX_URL

    La aplicación local usa la URL de Toolbox para acceder a las bases de datos a través de MCP Toolbox.

  3. Para ejecutar la aplicación, ejecuta el siguiente comando:

    python run_app.py

    Tu respuesta debería verse similar a lo siguiente:

    (.venv) student-03-d87d6b142a95@app-vm:~/cymbal-air-toolbox-demo$ python run_app.py INFO: Started server process [26127] INFO: Waiting for application startup. Loading application... INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)

    Ahora se está ejecutando la aplicación.

Conéctate a la VM

Tienes varias formas de conectarte a la aplicación que se ejecuta en la VM. Por ejemplo, puedes abrir el puerto 8081 en la VM usando reglas de firewall en la VPC o crear un balanceador de cargas con una IP pública. En este caso, usarás un túnel SSH para la VM, que traduce el puerto 8080 de Cloud Shell al puerto 8081 de la VM.

  1. En Cloud Shell, para abrir una pestaña nueva de Cloud Shell, haz clic en Abrir una pestaña nueva (+).

  2. Para crear un túnel SSH al puerto de la VM, ejecuta el siguiente comando en la nueva pestaña:

    gcloud compute ssh app-vm --zone={{{project_0.default_zone | ZONE }}} -- -L localhost:8080:localhost:8081

    El comando de gcloud conecta el puerto localhost 8080 en Cloud Shell con el puerto 8081 en la VM. Puedes ignorar el error “No se puede asignar la dirección solicitada”.

  3. Para ejecutar la aplicación en el navegador web, haz clic en Vista previa en la Web y, luego, selecciona Vista previa en el puerto 8080.

    Vista previa en el puerto 8080

    Se abre una nueva pestaña en el navegador y la aplicación se ejecuta. La aplicación de Cymbal Air muestra el mensaje “¡Te damos la bienvenida a Cymbal Air! ¿En qué puedo ayudarte?”.

  4. Ingresa la siguiente consulta:

    ¿Cuándo es el próximo vuelo a Los Ángeles?

    La aplicación responde con el próximo vuelo de SFO a LAX o te pide información adicional.

  5. Ingresa la siguiente consulta:

    Para ese vuelo, ¿hay restaurantes cerca de la puerta de embarque?

    Es posible que la app de chat te pida que indiques de qué vuelo se trata, pero puede comprender el contexto y responder con restaurantes cerca de la puerta de embarque en SFO.

Tarea 9: Accede a la aplicación (opcional)

En esta tarea, accederás a la aplicación para reservar el vuelo.

  1. Haz clic en Acceder.

    Se abrirá una ventana emergente.

  2. En la ventana emergente, selecciona al estudiante.

  3. Para permitir que Cymbal Air acceda a la información del usuario estudiante, haz clic en Continuar.

    Se accedió a la cuenta de estudiante.

  4. Ingresa la siguiente consulta:

    Reserva ese vuelo.

    La aplicación presenta el vuelo que se estaba analizando.

  5. Haz clic en Me parece bien. Haz la reserva.

    El vuelo está reservado.

  6. Ingresa la siguiente consulta:

    ¿Qué vuelos reservé?

    Se muestra el vuelo que acabas de reservar.

    La app de chat puede ayudar a responder preguntas de los usuarios como las siguientes:

    • ¿Hay alguna tienda de lujo cerca de la puerta D50?
    • ¿Dónde puedo comprar un café cerca de la puerta A6?

    La aplicación usa los modelos de base más recientes de Google para generar respuestas y mejorarlas con información sobre vuelos y comodidades de la base de datos operativa de AlloyDB. Puedes leer más sobre esta aplicación de demostración en la página de GitHub del proyecto.

¡Felicitaciones!

Creaste con éxito una aplicación de chat que aprovecha los modelos de lenguaje grandes (LLM) y la generación mejorada por recuperación (RAG) para crear conversaciones interesantes y también informativas.

Próximos pasos/Más información

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

Actualización más reciente del manual: 13 de octubre de 2025

Prueba más reciente del lab: 13 de octubre de 2025

Copyright 2025 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.