1. Introducción
En este codelab, se enumeran los pasos para compilar una app web que te permite realizar resúmenes de texto con la API del modelo de lenguaje grande de Vertex AI para la generación de texto ( text-bison) en un framework de Svelte Kit. La lista de servicios y la pila tecnológica que se usan son los siguientes:
- Svelte Kit: Es un framework de aplicaciones web que se basa en Svelte.
- API de Vertex AI PaLM 2: Es una API de modelo de lenguaje grande (LLM) que proporciona acceso al modelo PaLM 2 de la IA de Google.
- Cloud Functions: Es una plataforma sin servidores para ejecutar funciones sin tener que administrar servidores.
- Cloud Run: Es una plataforma sin servidores para ejecutar aplicaciones alojadas en contenedores.
Qué compilarás
Crearás
- Se usa una función de Cloud Functions de Python para realizar la invocación a 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 Function
- Un servicio de Cloud Run para implementar la app creada anteriormente de forma 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>
- Ejecuta el siguiente comando desde la terminal de Cloud Shell para asegurarte de que todas las APIs necesarias estén habilitadas:
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
En esta función, crearemos una Cloud Function de Python y llamaremos a la API de Vertex AI.
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
Otorga 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 abriste 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 las 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 entradas de texto. La función toma una entrada de texto como parámetro y devuelve un breve resumen 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 devuelve el resumen del modelo como respuesta.
Abre Google Cloud Editor. Para abrirlo, abre una nueva pestaña de la consola de Google Cloud, haz clic en el botón ACTIVATE CLOUD SHELL y, cuando se cargue la terminal, haz clic rápidamente en el botón OPEN 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. 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 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 correcciones de errores más recientes de Functions Framework. google-cloud-aiplatform: Se requiere para usar el modelo de generación de texto de Vertex AI.
Agrega lo siguiente al archivo requirements.txt:
functions-framework==3.*
google-cloud-aiplatform
Implementar 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:

En la página de la función, se mostrará la Cloud Function de vertex-ai-function que acabamos de crear con su URL pública. Usamos esto para conectar nuestra API de Vertex AI y el frontend. Almacena esta URL. Es posible que también debas permitir el acceso no autenticado al servicio subyacente de Cloud Run. Se recomienda usar un servicio autenticado por motivos de seguridad.
5. Compila e 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émoslo 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 que se creó y almacenó en la sección anterior.
Abre Cloud Editor y edita el contenido del archivo Dockerfile. Reemplaza la variable PUBLIC_FUNCTION_URL por la URL de tu función 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.
Ejecuta el siguiente comando en la terminal de Cloud Shell para crear un repositorio de Artifact Registry:
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 a 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}
¡¡Sí!! Vertex Summarizer ya 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 que se indica aquí.
- Si solo quieres borrar la función de Cloud o revocar el acceso, puedes hacerlo aquí.
7. Felicitaciones
¡Felicitaciones! Usaste correctamente una API de PaLM2 de Vertex AI para realizar un resumen de texto de forma programática, compilar una app web de Svelte y realizar la implementación en Cloud Functions. Consulta la documentación del producto de LLM de Vertex AI para obtener más información sobre los modelos disponibles.