1. Introduzione
In questo codelab puoi trovare i passaggi per eseguire il riassunto dei contenuti caricati in Google Cloud Storage utilizzando il modello linguistico di grandi dimensioni di Vertex AI per la generazione di testo ( text-bison) come funzione cloud in Python. L'elenco dei servizi utilizzati è il seguente:
- API Vertex AI PaLM: un'API per modelli linguistici di grandi dimensioni (LLM) che fornisce l'accesso al modello PaLM Text Bison di Google AI.
- 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 ti consente di archiviare, cercare, analizzare, monitorare e creare avvisi su dati di log.
Cosa creerai
Creerai un'applicazione di cui viene eseguito il deployment come funzione Cloud Python per riassumere il testo utilizzando l'API Palm.
2. Requisiti
3. Prima di iniziare
- Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud.
- Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata in un progetto.
- Assicurati che tutte le API necessarie (API Cloud Storage, API Vertex AI, API Cloud Functions e Cloud Logging) siano abilitate
- 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.
- In Cloud Console, fai clic su Attiva Cloud Shell nell'angolo in alto a destra:
Se il progetto non è impostato, utilizza il seguente comando per impostarlo:
gcloud config set project <YOUR_PROJECT_ID>
- Assicurati che tutte le API necessarie siano abilitate eseguendo il seguente comando dal terminale Cloud Shell:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
- Crea le variabili di ambiente per REGION e PROJECT_ID eseguendo il seguente comando dal terminale Cloud Shell:
export PROJECT_ID=<your project id>
export REGION=us-central1
4. Funzione Cloud per richiamare l'API Vertex AI
Creeremo una funzione Cloud Python e invocheremo l'API Vertex AI in questa funzione.
Creazione di un nuovo account di servizio
Crea un nuovo account di servizio eseguendo il seguente comando nel terminale Cloud Shell.
gcloud iam service-accounts create vertex-service-acc
Per fornire 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 di collegarlo ad altre risorse, esegui il comando riportato di seguito. Sostituisci USER_EMAIL con l'ID indirizzo 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 le attività che possono essere completate con una risposta API, senza la necessità di una conversazione continua. Ora creiamo la funzione Cloud.
Esegui i seguenti comandi in Cloud Shell per clonare il repository e vai 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 in questo progetto è: summarization-gcs-cloudfunction.
Apri Cloud Shell Editor dal terminale e controlla i contenuti della cartella del progetto appena clonata da GitHub alla tua macchina Cloud Shell.
Questa cartella contiene due file:
- Il file Python main.py definisce una semplice funzione Cloud HTTP che utilizza un modello di generazione di 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 serie di parametri per controllare il processo di generazione, ad esempio la creatività, la diversità e la fluidità del testo generato. La funzione Cloud HTTP accetta un oggetto request e restituisce il riepilogo del modello come risposta.
- Il file requirements.txt ha dipendenze dei pacchetti:
- functions-framework==3.: Garantisce che la funzione utilizzi le funzionalità e le correzioni di bug più recenti del framework Functions.
- google-cloud-aiplatform: obbligatorio per utilizzare il modello di generazione di testo di Vertex AI.
- google-cloud-storage: obbligatorio per creare bucket di archiviazione in Google Cloud Storage.
- google-cloud-logging: obbligatorio per generare i log.
5. Esegui il deployment della funzione
- Crea due bucket Cloud Storage:
- Primo bucket: il bucket $BUCKET_NAME verrà utilizzato per caricare i file da riepilogare. Crea la variabile di ambiente per archiviare il nome del bucket come segue:
export BUCKET_NAME='Your Bucket Name'
- Secondo bucket: il bucket $BUCKET_NAME-summaries verrà utilizzato per archiviare il file riepilogativo.
- 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 sta per "Make Bucket"
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- 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.
- Vai a Google Cloud Storage e nel riquadro a sinistra fai clic su "Impostazioni".
- Copia "Account di servizio" dalle impostazioni e prendine nota.
- Apri IAM e amministrazione dal menu di navigazione della console Google Cloud.
- Nella scheda Autorizzazioni, fai clic su CONCEDI ACCESSO e inserisci l'ID account di servizio che hai annotato nella sezione Nuove entità, seleziona il ruolo "Publisher Pub/Sub" e fai clic su SALVA.
- Esegui il deployment di questo codice sorgente in Cloud Functions. Esegui il comando seguente dal terminale Cloud Shell:
- Assicurati di trovarti nella cartella summarization-gcs-cloudfunction di questo progetto.
- 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
- Nella console Google Cloud, vai a Cloud Functions:
Verrà elencata la funzione Cloud vertex-ai-function che abbiamo appena creato con il relativo URL pubblico. Useremo questa funzione per creare un attivatore GCS.
6. Richiamare la funzione
Quando un file viene caricato nel bucket $BUCKET_NAME, l'attivatore GCS richiama la funzione. Il bucket $BUCKET_NAME"-summaries
include il file riepilogativo con lo stesso nome.
Prima di iniziare, salva il file di esempio story.md dalla cartella summarization-gcs-cloudfunction sulla tua macchina locale.
- Nella console Google Cloud, vai a Cloud Storage.
- Apri il bucket
$BUCKET_NAME
dall'elenco dei bucket. - Fai clic su Carica file e seleziona il file story.md.
La funzione summarizeArticles
viene attivata e inizia a riepilogare i contenuti del file.
- Nel riquadro di navigazione a sinistra, fai clic su Bucket.
- 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:
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminarlo.
- Se vuoi conservare il progetto ed eliminare solo alcune risorse, vai alla console Cloud Storage, fai clic su Bucket e, dall'elenco, seleziona i bucket che vuoi eliminare e fai clic su ELIMINA.
- Puoi anche eliminare la funzione Cloud Functions andando a Cloud Functions e, dall'elenco delle funzioni, seleziona quella che vuoi eliminare e fai clic su ELIMINA.
8. Complimenti
Complimenti! Hai utilizzato con successo un modello LLM di generazione di testo di Vertex AI in modo programmatico per eseguire il riassunto del testo sui tuoi dati. Consulta la documentazione del prodotto Vertex AI LLM per saperne di più sui modelli disponibili.