Funzione Cloud Functions per il riepilogo dei contenuti utilizzando l'API PaLM Vertex AI e Google Cloud Storage

1. Introduzione

In questo codelab puoi trovare i passaggi per eseguire il riepilogo dei contenuti caricati in Google Cloud Storage utilizzando Vertex AI Large Language Model per la generazione di testo ( text-bison) come funzione Cloud Functions in Python. Ecco l'elenco dei servizi utilizzati:

  • API Vertex AI PaLM: un'API per un modello linguistico di grandi dimensioni (LLM) che dà accesso al modello PaLM Text Bison dell'IA di Google.
  • Cloud Functions: una piattaforma serverless per eseguire funzioni senza dover gestire i server.
  • Cloud Storage: un servizio gestito per l'archiviazione di dati non strutturati.
  • Cloud Logging: un servizio completamente gestito che consente di archiviare, cercare, analizzare, monitorare e creare avvisi sui dati di logging.

Cosa creerai

Creerai un'applicazione di cui è stato eseguito il deployment come funzione Cloud Functions Python per riassumere il testo utilizzando l'API Palm.

2. Requisiti

  • Un browser, ad esempio Chrome o Firefox
  • Un progetto Google Cloud con fatturazione abilitata

3. Prima di iniziare

  1. Nella pagina del selettore dei progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
  2. Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come controllare se la fatturazione è abilitata per un progetto.
  3. Assicurati che tutte le API necessarie (API Cloud Storage, API Vertex AI, API Cloud Functions e Cloud Logging) siano abilitate
  4. Utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione in Google Cloud. Consulta la documentazione per i comandi e l'utilizzo di gcloud.
  5. Dalla console Cloud, fai clic su Attiva Cloud Shell nell'angolo in alto a destra:

51622c00acec2fa.png

Se il progetto non è configurato, utilizza il comando seguente per impostarlo:

gcloud config set project <YOUR_PROJECT_ID>
  1. Assicurati che tutte le API necessarie siano abilitate eseguendo questo comando dal terminale Cloud Shell:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
  1. Crea le variabili di ambiente per REGION e PROJECT_ID eseguendo questo comando dal terminale Cloud Shell:
export PROJECT_ID=<your project id>

export REGION=us-central1

4. Funzione Cloud Functions per richiamare l'API Vertex AI

Creeremo una funzione Cloud Functions Python e in questa funzione richiameremo l'API Vertex AI.

Creazione di un nuovo account di servizio

Crea un nuovo account di servizio eseguendo questo comando nel terminale Cloud Shell.

gcloud iam service-accounts create vertex-service-acc

Per consentire l'accesso al progetto e alle risorse, concedi un ruolo all'account di servizio.

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com" --role=roles/ml.developer

Per concedere al tuo Account Google un ruolo che ti consenta di utilizzare i ruoli dell'account di servizio e collegarlo ad altre risorse, esegui il comando riportato di seguito. Sostituisci USER_EMAIL con l'ID email del tuo Account 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

Creazione della funzione Python

L'API PaLM per il testo è ideale per attività che possono essere completate con un'unica risposta dell'API, senza la necessità di una conversazione continua. Ora creiamo la funzione Cloud Functions.

Esegui questi comandi in Cloud Shell per clonare il repository e accedere al progetto (utilizza lo stesso terminale aperto nella sezione precedente):

git clone https://github.com/rominirani/genai-apptemplates-googlecloud

cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction

La cartella che ci interessa qui in questo progetto è summarization-gcs-cloudfunction.

Apri l'editor di Cloud Shell dal terminale e controlla i contenuti della cartella del progetto appena clonata da GitHub alla tua macchina Cloud Shell.

Questa cartella contiene due file:

  1. Il file Python main.py definisce una funzione Cloud Functions HTTP semplice che utilizza un modello di generazione del testo Vertex AI per generare brevi riepiloghi degli input di testo. La funzione accetta un input di testo come parametro e restituisce un breve riepilogo dell'input. La funzione utilizza una varietà di parametri per controllare il processo di generazione, come la creatività, la diversità e la fluidità del testo generato. La funzione Cloud Functions HTTP accetta un oggetto della richiesta e restituisce il riepilogo del modello come risposta.
  2. Il file requirements.txt ha dipendenze del pacchetto:
  • functions-framework==3.: Garantisce che la funzione utilizzi le funzionalità e le correzioni di bug più recenti del framework di Functions.
  • google-cloud-aiplatform: richiesto per utilizzare il modello di generazione del testo di Vertex AI.
  • google-cloud-storage: necessaria per creare bucket di archiviazione in Google Cloud Storage.
  • google-cloud-logging: obbligatorio per generare i log.

5. Esegui il deployment della funzione

  1. Crea due bucket Cloud Storage:
  • Primo bucket: il bucket $BUCKET_NAME verrà utilizzato per caricare i file da riassumere. Crea la variabile di ambiente per archiviare il nome del bucket come segue:
export BUCKET_NAME='Your Bucket Name'
  • Secondo bucket: per archiviare il file riepilogato verrà utilizzato il bucket $BUCKET_NAME-summaries.
  • Utilizzeremo il comando gsutil per creare i bucket:
  • gsutil è un'applicazione Python che ti consente di accedere a Cloud Storage dalla riga di comando. Puoi utilizzare gsutil per eseguire un'ampia gamma di attività di gestione di bucket e oggetti.
  • mb è l'acronimo di "Make Bucket" (Crea bucket)
gsutil mb -l $REGION gs://"$BUCKET_NAME"

gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
  1. A questo punto, siamo pronti per eseguire il deployment della funzione. Prima, però, assicurati che l'account di servizio del bucket Cloud Storage abbia il ruolo Publisher Pub/Sub.
  2. Vai a Google Cloud Storage e, nel riquadro a sinistra, fai clic su "Impostazioni".

8ce34eb05153abf2.png

  1. Copia "Account di servizio" dalle impostazioni e annotarlo.
  2. Apri IAM e amministrazione dal menu di navigazione della console Google Cloud.

c5a7103e90689684.png

  1. Nella scheda Autorizzazioni, fai clic su CONCEDI L'ACCESSO e inserisci nella sezione Nuove entità l'ID dell'account di servizio che hai annotato, quindi seleziona Ruolo come "Publisher Pub/Sub" e fai clic su SALVA.

11c2df774fa740a9.png

  1. Esegui il deployment di questa origine in Cloud Functions. Esegui questo comando dal terminale Cloud Shell:
  2. Assicurati di trovarti nella cartella summarization-gcs-cloudfunction di questo progetto.
  3. Esegui questo 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
  1. Nella console Google Cloud, vai a Cloud Functions:

Verrà elencata la funzione Cloud Functions vertex-ai-function appena creata con il relativo URL pubblico. Utilizzeremo questa funzione per creare un trigger GCS.

6. Richiamare la funzione

Quando un file viene caricato nel bucket $BUCKET_NAME*,* il trigger GCS richiama la funzione. Il bucket $BUCKET_NAME"-summaries include il file riepilogato con lo stesso nome.

Prima di iniziare, salva il file story.md di esempio dalla cartella summarization-gcs-cloudfunction sulla tua macchina locale.

  1. Nella console Google Cloud, vai a Cloud Storage.
  2. Apri il bucket $BUCKET_NAME dall'elenco dei bucket.
  3. Fai clic su Carica file e seleziona il file story.md.

La funzione summarizeArticles viene attivata e inizia a riassumere i contenuti del file.

  1. Nel riquadro di navigazione a sinistra, fai clic su Bucket.
  2. Apri il bucket $BUCKET_NAME"-summaries.

Il file story.md include un riepilogo dei contenuti del file.

7. Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo post, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.
  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.
  4. Se vuoi mantenere il progetto ed eliminare solo alcune risorse, vai alla console di Cloud Storage, fai clic su Bucket e, nell'elenco, seleziona i bucket che vuoi eliminare e fai clic su ELIMINA.
  5. Puoi anche eliminare la funzione Cloud Functions andando su Cloud Functions e, nell'elenco delle funzioni, seleziona quella che vuoi eliminare e fai clic su ELIMINA.

8. Complimenti

Complimenti! Hai utilizzato correttamente un LLM di generazione del testo Vertex AI in modo programmatico per eseguire il riassunto del testo sui tuoi dati. Consulta la documentazione del prodotto LLM Vertex AI per saperne di più sui modelli disponibili.