1. Introduzione
In questo codelab ho elencato i passaggi per creare un'app web che ti consente di eseguire il riepilogo del testo utilizzando l'API Vertex AI Large Language Model per la generazione di testo ( text-bison) in un framework Svelte Kit. L'elenco dei servizi e dello stack tecnologico utilizzati è il seguente:
- Svelte Kit: un framework per applicazioni web basato su Svelte.
- API Vertex AI PaLM 2: un'API LLM (Large Language Model) che fornisce l'accesso al modello PaLM 2 di Google AI.
- Cloud Functions: una piattaforma serverless per eseguire funzioni senza dover gestire i server.
- Cloud Run: una piattaforma serverless per eseguire applicazioni containerizzate.
Cosa creerai
Creerai
- Una funzione Cloud Functions Python viene utilizzata per effettuare la chiamata all'API Palm
- Un'applicazione web Svelte per l'interfaccia utente per interagire con l'API Vertex AI tramite la funzione Cloud Functions
- Un servizio Cloud Run per eseguire il deployment dell'app creata sopra in modalità serverless
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 per un progetto.
- Utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione in Google Cloud, per interagire con i servizi Google Cloud. Consulta la documentazione per i comandi e l'utilizzo di gcloud. Nella console Cloud, 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 cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.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=asia-south1
4. Funzione Cloud Functions per richiamare l'API Vertex AI
In questa funzione creeremo una funzione Cloud Python e richiameremo l'API Vertex AI.
Creazione di un nuovo service account
Crea un nuovo service account eseguendo il seguente comando nel terminale Cloud Shell.
gcloud iam service-accounts create vertex-service-acc
Per fornire l'accesso al tuo progetto e alle tue risorse, concedi un ruolo al service account.
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 del service account e di collegarlo ad altre risorse. 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
PaLM 2 per il testo è ideale per le attività che possono essere completate con una risposta API, senza la necessità di una conversazione continua. Creiamo ora la funzione Cloud Functions.
Crea una nuova directory utilizzando Cloud Shell e accedi alla directory. (utilizza lo stesso terminale aperto nella sezione precedente):
mkdir vertex-ai-functions
cd vertex-ai-functions
Crea un file main.py per scrivere la Funzione Cloud Python e un file requirements.txt per archiviare le dipendenze.
touch main.py requirements.txt
Questo file Python definisce una semplice funzione Cloud Functions 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, come la creatività, la diversità e la fluidità del testo generato. La funzione Cloud Functions HTTP accetta un oggetto richiesta e restituisce il riepilogo del modello come risposta.
Apri Google Cloud Editor. Puoi aprirlo aprendo una nuova scheda della console Google Cloud, facendo clic sul pulsante ATTIVA CLOUD SHELL e, quando il terminale si carica, facendo rapidamente clic sul pulsante APRI EDITOR, come mostrato nell'immagine di seguito:

Una volta aperto l'editor, dovresti visualizzare il file main.py. Sostituisci i suoi contenuti con il codice di questo link del repository. La spiegazione del codice è inclusa come commenti al codice. In sintesi, questo codice fornisce un modo conciso per generare brevi riepiloghi degli input di testo utilizzando Vertex AI.
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 di Functions Framework. google-cloud-aiplatform: necessario per utilizzare il modello di generazione di testo di Vertex AI.
Aggiungi questo al file requirements.txt:
functions-framework==3.*
google-cloud-aiplatform
Esegui il deployment in Cloud Functions
Ora eseguiamo il deployment di questa origine in Cloud Functions. Esegui questo comando dal terminale 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
Utilizza la barra di ricerca e vai alla console Cloud Functions:

Verrà elencata la funzione Cloud Functions vertex-ai-function appena creata e il relativo URL pubblico verrà visualizzato nella pagina della funzione. Lo utilizziamo per connettere il frontend e l'API Vertex AI. Memorizza questo URL. Potresti anche dover consentire l'accesso non autenticato al servizio Cloud Run sottostante. Per motivi di sicurezza, è consigliabile utilizzare il servizio autenticato.
5. Crea ed esegui il deployment del frontend
Questa app include un'interfaccia frontend per interagire con la nostra API Vertex AI tramite Google Cloud Functions. Creiamolo ora.
Clona il repository e configura il Dockerfile
Vai alla directory radice e clona il repository Git.
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
Per eseguire questa applicazione, devi aggiungere la variabile di ambiente PUBLIC_FUNCTION_URL in Dockerfile. Questo URL è l'URL della funzione Cloud Functions creato e archiviato nella sezione precedente.
Apri Cloud Editor e modifica i contenuti del file Dockerfile. Sostituisci la variabile PUBLIC_FUNCTION_URL con l'URL della tua funzione Cloud Functions.

Esegui il deployment del frontend in Cloud Run
Utilizzeremo Google Artifact Registry per creare e archiviare le nostre immagini Docker. Cloud Run viene utilizzato per eseguire il deployment dei container nell'architettura serverless.
Crea un repository Artifact Registry eseguendo il comando seguente nel terminale Cloud Shell:
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
Crea una variabile di ambiente per l'URL del repository Artifact Registry.
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
Crea il container Docker e taggalo con la posizione del repository Artifact Registry. L'attribuzione di un tag all'immagine Docker con un nome repository configura il comando docker push in modo che esegua il push dell'immagine in una posizione specifica.
docker build . -t ${DOCKER_URL}
Esegui il push dell'immagine in Artifact Registry.
docker push ${DOCKER_URL}
Esegui il deployment del container Docker in Cloud Run.
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
Evvai! Vertex Summarizer è pronto e funzionante. L'URL verrà visualizzato in Cloud Shell, quindi esplora e divertiti con Vertex AI🤖.

6. 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, quindi fai clic su Chiudi per eliminare il progetto.
- Se vuoi mantenere il progetto ed eliminare solo il servizio Cloud Run, segui il passaggio qui.
- Se vuoi solo eliminare la funzione Cloud o revocare l'accesso, puoi farlo da qui.
7. Complimenti
Complimenti! Hai utilizzato correttamente un'API Vertex AI PaLM2 per eseguire in modo programmatico il riepilogo del testo, creare un'app web Svelte ed eseguirne il deployment in Cloud Functions. Consulta la documentazione del prodotto Vertex AI LLM per scoprire di più sui modelli disponibili.