1. Introducción
En este codelab, encontrarás los pasos para resumir el contenido subido a Google Cloud Storage con el modelo de lenguaje grande de Vertex AI para la generación de texto ( text-bison) como una función de Cloud en Python. La lista de servicios que se usan es la siguiente:
- API de PaLM de Vertex AI: Es una API de modelo de lenguaje grande (LLM) que proporciona acceso al modelo de texto Bison de PaLM de la IA de Google.
- Cloud Functions: Es una plataforma sin servidores para ejecutar funciones sin tener que administrar servidores.
- Cloud Storage: Es un servicio administrado para almacenar datos no estructurados.
- Cloud Logging: Es un servicio completamente administrado que te permite almacenar, buscar, analizar y supervisar datos de registro, así como generar alertas sobre ellos.
Qué compilarás
Crearás una aplicación implementada como una función de Cloud Functions de Python para resumir texto con la API de PaLM.
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 sobre cómo verificar si la facturación está habilitada en un proyecto.
- Asegúrate de que todas las APIs necesarias (API de Cloud Storage, API de Vertex AI, API de Cloud Functions y Cloud Logging) estén habilitadas.
- Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en 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 cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.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=us-central1
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.
Cómo crear 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, ejecuta el siguiente comando. 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
La API de PaLM para texto 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.
Ejecuta los siguientes comandos en Cloud Shell para clonar el repositorio y navegar al proyecto (usa la misma terminal que abriste en la sección anterior):
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction
La carpeta que nos interesa en este proyecto es summarization-gcs-cloudfunction.
Abre el editor de Cloud Shell desde la terminal y verifica el contenido de la carpeta del proyecto que se acaba de clonar desde GitHub en tu máquina de Cloud Shell.
Esta carpeta contiene 2 archivos:
- El archivo main.py 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 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.
- 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.
- google-cloud-storage: Se requiere para crear buckets de almacenamiento en Google Cloud Storage.
- google-cloud-logging: Se requiere para generar registros.
5. Implemente la función
- Crea dos buckets de Cloud Storage:
- Primer bucket: El bucket $BUCKET_NAME se usará para subir los archivos que se resumirán. Crea la variable de entorno para almacenar el nombre de tu bucket de la siguiente manera:
export BUCKET_NAME='Your Bucket Name'
- Segundo bucket: El bucket $BUCKET_NAME-summaries se usará para almacenar el archivo resumido.
- Usaremos el comando gsutil para crear los buckets:
- gsutil es una aplicación de Python que te permite acceder a Cloud Storage desde la línea de comandos. Puedes usar gsutil para realizar una amplia variedad de tareas de administración de objetos y buckets.
- mb significa "Make Bucket".
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- En este punto, ya podemos implementar la función. Pero antes, asegúrate de que la cuenta de servicio del bucket de Cloud Storage tenga el rol de publicador de Pub/Sub.
- Ve a Google Cloud Storage y, en el panel izquierdo, haz clic en "Configuración".

- Copia la "Cuenta de servicio" de la configuración y anótala.
- Abre IAM y administración desde el menú de navegación de la consola de Google Cloud.

- En la pestaña Permisos, haz clic en OTORGAR ACCESO, ingresa el ID de la cuenta de servicio que anotaste en la sección Principales nuevas, selecciona el rol “Publicador de Pub/Sub” y haz clic en GUARDAR.

- Implementa este código fuente en Cloud Functions. Ejecuta el siguiente comando desde la terminal de Cloud Shell:
- Asegúrate de estar en la carpeta summarization-gcs-cloudfunction de este proyecto.
- Ejecuta el siguiente comando:
gcloud functions deploy summarizeArticles \
--gen2 \
--runtime=python311 \
--source=. \
--region=$REGION \
--project=$PROJECT_ID \
--entry-point=summarize_gcs_object \
--trigger-bucket=$BUCKET_NAME \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION \
--max-instances=1 \
--quiet
- En la consola de Google Cloud, ve a Cloud Functions::
En esta lista, se mostrará la Cloud Function vertex-ai-function que acabamos de crear con su URL pública. Usaremos esta función para crear un activador de GCS.
6. Invoca la función
Cuando se sube un archivo al bucket $BUCKET_NAME*,* el activador de GCS invoca la función. El bucket $BUCKET_NAME"-summaries incluye el archivo resumido con el mismo nombre.
Antes de comenzar, guarda el archivo de muestra story.md de la carpeta summarization-gcs-cloudfunction en tu máquina local.
- En la consola de Google Cloud, ve a Cloud Storage.
- Abre tu bucket
$BUCKET_NAMEdesde la lista de buckets. - Haz clic en Subir archivos y selecciona el archivo story.md.
Se activa la función summarizeArticles y comienza a resumir el contenido del archivo.
- En el panel de navegación izquierdo, haz clic en Buckets.
- Abre tu bucket
$BUCKET_NAME"-summaries.
El archivo story.md incluye un resumen del contenido del archivo.
7. 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 deseas conservar el proyecto y solo borrar algunos recursos, ve a la consola de Cloud Storage, haz clic en Buckets y, en la lista, marca los buckets que deseas borrar y haz clic en BORRAR.
- También puedes borrar la función de Cloud navegando a Cloud Functions y, en la lista de funciones, marcando la que deseas borrar y haciendo clic en BORRAR.
8. Felicitaciones
¡Felicitaciones! Usaste con éxito un LLM de generación de texto de Vertex AI de forma programática para realizar resúmenes de texto en tus datos. Consulta la documentación del producto de LLM de Vertex AI para obtener más información sobre los modelos disponibles.