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 riassunto del testo utilizzando l'API Large Language Model di Vertex AI per la generazione di testo ( text-bison) in un framework Svelte Kit. Di seguito sono elencati i servizi e lo stack tecnico utilizzati:

  1. Svelte Kit: un framework per applicazione web che si basa su Svelte.
  2. API Vertex AI PaLM 2: un'API per modelli linguistici di grandi dimensioni (LLM) che fornisce accesso al modello PaLM 2 dell'IA di Google.
  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 viene utilizzata per richiamare l'API makePalm
  • Un'applicazione web Svelte per consentire all'interfaccia utente di interagire con l'API Vertex AI tramite la funzione Cloud Functions
  • Un servizio Cloud Run per il deployment dell'app creata in precedenza in modalità serverless

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 su 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. 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 cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.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=asia-south1

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

Concedi al tuo Account Google un ruolo che ti consenta di utilizzare i ruoli dell'account di servizio 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 attività che possono essere completate con un'unica risposta dell'API, senza la necessità di una conversazione continua. Ora creiamo la funzione Cloud Functions.

Crea una nuova directory utilizzando Cloud Shell e vai a questa directory. (usa lo stesso terminale aperto nella sezione precedente):

mkdir vertex-ai-functions

cd vertex-ai-functions

Crea un file main.py per la scrittura della funzione Cloud Functions Python e un file requirements.txt per l'archiviazione delle dipendenze.

touch main.py requirements.txt

Questo file Python definisce una semplice funzione Cloud Functions HTTP che utilizza un modello di generazione del testo Vertex AI per generare brevi riassunti 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.

Apri Google Cloud Editor. Per farlo, apri una nuova scheda della console Google Cloud e fai clic sul pulsante ATTIVA CLOUD SHELL, quindi, quando viene caricato il terminale, fai clic rapidamente sul pulsante APRI EDITOR come mostrato nell'immagine di seguito:

8e501bd2c41d11b8.png

Una volta aperto l'editor, dovresti essere in grado di vedere il file main.py. Sostituisci i relativi contenuti con il codice di questo repository (link). La spiegazione del codice è inclusa sotto forma di commenti del codice. Riassumendo, questo codice fornisce un modo conciso per generare brevi riassunti degli input di testo utilizzando Vertex AI.

Il file requirements.txt hanno dipendenze del pacchetto: features-framework==3.*: Garantisce 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 del testo di Vertex AI.

Aggiungi questo al file requirements.txt:

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

Eseguire 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:

43a6b247098a9edb.png

Verrà elencata la funzione Cloud Functions vertex-ai-function appena creata con il relativo URL pubblico che verrà fornita nella pagina della funzione. Utilizziamo questo dato per connettere l'API Frontend e Vertex AI. Memorizza questo URL. Potresti anche dover consentire l'accesso non autenticato al servizio Cloud Run sottostante. Per motivi di sicurezza, si consiglia di utilizzare il servizio autenticato.

5. Crea ed esegui il deployment del front-end

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 root 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 funzione Cloud Functions.

2958bb12343368a9.png

Esegui il deployment di 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 in un'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'assegnazione di tag all'immagine Docker con il nome di un repository configura il comando docker push per eseguire 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}

Eseguire il deployment del container Docker in Cloud Run.

gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}

Evviva! Il riepilogo Vertex è attivo e in esecuzione. L'URL verrà visualizzato in Cloud Shell, quindi esplora e goditi Vertex AI🤖.

cd94442961bb5308.gif

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:

  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 Arresta per eliminare il progetto
  4. Se vuoi mantenere il progetto ed eliminare il servizio Cloud Run, segui questo passaggio
  5. Se vuoi semplicemente eliminare la funzione 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 riassunto del testo, creare un'app web Svelte ed eseguirne il deployment in Cloud Functions. Consulta la documentazione del prodotto LLM Vertex AI per saperne di più sui modelli disponibili.