1. Introducción
En este codelab, se enumeran los pasos para compilar una app web que te permite realizar un resumen de texto con la API de Vertex AI Large Language Model for text generation ( text-bison) en un framework de Svelte Kit. La lista de servicios y la pila de tecnología que se usan son las siguientes:
- Svelte Kit: Un framework de aplicación web que se basa en Svelte.
- API de Vertex AI PaLM 2: Una API de modelo grande de lenguaje (LLM) que proporciona acceso al modelo PaLM 2 de Google AI.
- Cloud Functions: Una plataforma sin servidores para ejecutar funciones sin tener que administrar servidores.
- Cloud Run: Una plataforma sin servidores para ejecutar aplicaciones alojadas en contenedores.
Qué compilarás
Crearás lo siguiente:
- Una Cloud Function de Python que se usa para realizar la invocación de la API de Palm
- Una aplicación web de Svelte para la interfaz de usuario que interactúa con la API de Vertex AI a través de Cloud Functions
- Un servicio de Cloud Run para implementar la app creada anteriormente sin servidores
2. Requisitos
3. Antes de comenzar
- En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
- Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información para verificar si la facturación está habilitada en un proyecto.
- Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud para interactuar con los servicios de Google Cloud. Consulta la documentación para ver los comandos y el uso de gcloud. En la consola de Cloud, haz clic en Activar Cloud Shell en la esquina superior derecha:

Si tu proyecto no está configurado, usa el siguiente comando para hacerlo:
gcloud config set project <YOUR_PROJECT_ID>
- Asegúrate de que todas las APIs necesarias estén habilitadas ejecutando el siguiente comando desde la terminal de Cloud Shell:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- Ejecuta el siguiente comando desde la terminal de Cloud Shell para crear variables de entorno para REGION y PROJECT_ID:
export PROJECT_ID=<your project id>
export REGION=asia-south1
4. Cloud Function para invocar la API de Vertex AI
Crearemos una Cloud Function de Python e invocaremos la API de Vertex AI en esta función.
Crea una cuenta de servicio nueva
Ejecuta el siguiente comando en la terminal de Cloud Shell para crear una cuenta de servicio nueva.
gcloud iam service-accounts create vertex-service-acc
Para proporcionar acceso a tu proyecto y tus recursos, otorga un rol a la cuenta de servicio.
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com" --role=roles/ml.developer
Para otorgar a tu Cuenta de Google un rol que te permita usar los roles de la cuenta de servicio y conectar la cuenta de servicio a otros recursos, reemplaza USER_EMAIL por el ID de correo electrónico de tu Cuenta de Google.
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Crea la función de Python
El modelo de PaLM 2 for Text es ideal para tareas que se pueden completar con una sola respuesta de la API, sin la necesidad de mantener una conversación continua. Ahora, creemos la Cloud Function para ello.
Crea un directorio nuevo con Cloud Shell y navega hasta él (usa la misma terminal que se abrió en la sección anterior):
mkdir vertex-ai-functions
cd vertex-ai-functions
Crea un archivo main.py para escribir la Cloud Function de Python y un archivo requirements.txt para almacenar dependencias.
touch main.py requirements.txt
Este archivo de Python define una Cloud Function de HTTP simple que usa un modelo de generación de texto de Vertex AI para generar resúmenes breves de las entradas de texto. La función toma una entrada de texto como parámetro y muestra un resumen breve de la entrada. La función usa una variedad de parámetros para controlar el proceso de generación, como la creatividad, la diversidad y la fluidez del texto generado. La Cloud Function de HTTP acepta un objeto de solicitud y muestra el resumen del modelo como respuesta.
Abre el editor de Google Cloud. Para abrirlo, abre una pestaña nueva de la consola de Google Cloud y haz clic en el botón ACTIVAR CLOUD SHELL. Cuando se cargue la terminal, haz clic rápidamente en el botón ABRIR EDITOR, como se muestra en la siguiente imagen:

Una vez que se abra el editor, deberías poder ver el archivo main.py. Reemplaza su contenido por el código de este vínculo del repositorio link. La explicación del código se incluye como comentarios de código. En resumen, este código proporciona una forma concisa de generar resúmenes breves de las entradas de texto con Vertex AI.
El archivo requirements.txt tiene dependencias de paquetes: functions-framework==3.*: Garantiza que la función use las funciones y las correcciones de errores más recientes de Functions Framework. google-cloud-aiplatform: Es necesario para usar el modelo de generación de texto de Vertex AI.
Agrega esto al archivo requirements.txt:
functions-framework==3.*
google-cloud-aiplatform
Implementa en Cloud Functions
Ahora, implementemos esta fuente en Cloud Functions. Ejecuta el siguiente comando desde la terminal de Cloud Shell:
gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30
Usa la barra de búsqueda y ve a la consola de Cloud Functions:

Se mostrará la Cloud Function vertex-ai-function que acabamos de crear con su URL pública en la página de la función. La usamos para conectar nuestro frontend y la API de Vertex AI. Almacena esta URL. Es posible que también debas permitir el servicio subyacente de Cloud Run para el acceso no autenticado. Se recomienda usar un servicio autenticado por motivos de seguridad.
5. Crea y, luego, implementa el frontend
Esta app incluye una interfaz de frontend para interactuar con nuestra API de Vertex AI a través de Google Cloud Functions. Creémosla ahora.
Clona el repositorio y configura el Dockerfile
Ve al directorio raíz y clona el repositorio de Git.
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
Para ejecutar esta aplicación, debes agregar la variable de entorno PUBLIC_FUNCTION_URL en Dockerfile. Esta URL es la URL de Cloud Functions creada y almacenada en la sección anterior.
Abre el editor de Cloud y edita el contenido del archivo Dockerfile. Reemplaza la variable PUBLIC_FUNCTION_URL por la URL de Cloud Functions.

Implementa el frontend en Cloud Run
Usaremos Google Artifact Registry para compilar y almacenar nuestras imágenes de Docker. Cloud Run se usa para implementar los contenedores en la arquitectura sin servidores.
Para crear un repositorio de Artifact Registry, ejecuta el siguiente comando en la terminal de Cloud Shell:
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
Crea una variable de entorno para la URL del repositorio de Artifact Registry.
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
Compila el contenedor de Docker y etiquétalo con la ubicación del repositorio de Artifact Registry. Etiquetar la imagen de Docker con el nombre de un repositorio configura el comando docker push para enviar la imagen a una ubicación específica.
docker build . -t ${DOCKER_URL}
Envía la imagen al registro de Artifact Registry.
docker push ${DOCKER_URL}
Implementa el contenedor de Docker en Cloud Run.
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
¡¡Yaay!! Vertex Summarizer está en funcionamiento. La URL se mostrará en Cloud Shell, así que explora y disfruta de Vertex AI🤖.

6. Limpia
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta publicación:
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.
- Si quieres conservar el proyecto y solo borrar el servicio de Cloud Run, sigue el paso aquí
- Si solo quieres borrar la Cloud Function o revocar el acceso, puedes hacerlo desde aquí
7. Felicitaciones
¡Felicitaciones! Usaste correctamente una API de Vertex AI PaLM2 para realizar un resumen de texto de forma programática, compilar una app web de Svelte y realizar la implementación en Cloud Functions. Revisa la documentación del producto de LLM de Vertex AI para obtener más información sobre los modelos disponibles.