App di riassunto di testi con Vertex AI e Svelte Kit

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. Di seguito è riportato l'elenco dei servizi e dello stack tecnologico utilizzati:

  1. Svelte Kit: un framework per applicazioni web basato su Svelte.
  2. API Vertex AI PaLM 2: un'API di modelli linguistici di grandi dimensioni (LLM) che fornisce l'accesso al modello PaLM 2 di Google AI.
  3. Cloud Functions: una piattaforma serverless per eseguire funzioni senza dover gestire i server.
  4. Cloud Run: una piattaforma serverless per eseguire applicazioni containerizzate.

Cosa creerai

Creerai

  • Una funzione Cloud Functions Python utilizzata per effettuare la chiamata dell'API PaLM
  • Un'applicazione web Svelte per l'interfaccia utente per interagire con l'API Vertex AI tramite Cloud Functions
  • Un servizio Cloud Run per eseguire il deployment dell'app creata sopra senza server

2. Requisiti

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

3. Prima di iniziare

  1. Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud
  2. Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata in un progetto
  3. 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:

51622c00acec2fa.png

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

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

export REGION=asia-south1

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

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

Creazione di un nuovo account di servizio

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

gcloud iam service-accounts create vertex-service-acc

Per fornire l'accesso al progetto e alle 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 collegare il service account 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 dell'API, senza la necessità di una conversazione continua. Creiamo subito la funzione Cloud Functions.

Crea una nuova directory utilizzando Cloud Shell e vai 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 Functions Python e il 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 l'editor di Google Cloud. Puoi aprirlo aprendo una nuova scheda della console Google Cloud e facendo clic sul pulsante ATTIVA CLOUD SHELL. Quando il terminale si carica, fai clic rapidamente sul pulsante APRI EDITOR come mostrato nell'immagine seguente:

8e501bd2c41d11b8.png

Una volta aperto l'editor, dovresti essere in grado di visualizzare il file main.py. Sostituisci il contenuto con il codice di questo repository link. La spiegazione del codice è inclusa come commenti del codice. In sintesi, questo codice fornisce un modo conciso per generare brevi riepiloghi degli input di testo utilizzando Vertex AI.

Il file requirements.txt contiene le dipendenze dei pacchetti: functions-framework==3.*: Assicura che la funzione utilizzi le funzionalità e le correzioni di bug più recenti del framework di Functions. google-cloud-aiplatform: necessario per utilizzare il modello di generazione di testo Vertex AI.

Aggiungi questo file a requirements.txt:

functions-framework==3.*
google-cloud-aiplatform

Esegui il deployment in Cloud Functions

Ora eseguiamo il deployment di questo codice sorgente in Cloud Functions. Esegui il comando seguente 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:

43a6b247098a9edb.png

Verrà visualizzata la funzione Cloud Functions vertex-ai-function che abbiamo appena creato con il relativo URL pubblico 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 l'API Vertex AI tramite Google Cloud Functions. Creiamola subito.

Clona il repository e configura il Dockerfile

Vai alla directory principale 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 di Cloud Functions creato e archiviato nella sezione precedente.

Apri l'editor di Cloud e modifica i contenuti del file Dockerfile. Sostituisci la variabile PUBLIC_FUNCTION_URL con l'URL di Cloud Functions.

2958bb12343368a9.png

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 contrassegnalo 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 è attivo e funzionante. L'URL verrà visualizzato in Cloud Shell, quindi esplora e divertiti con Vertex AI🤖.

cd94442961bb5308.gif

6. Libera spazio

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 conservare il progetto ed eliminare solo il servizio Cloud Run, segui i passaggi qui
  5. Se vuoi eliminare solo Cloud Functions 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 eseguire il deployment in Cloud Functions. Consulta la documentazione del prodotto Vertex AI LLM per saperne di più sui modelli disponibili.