1. Introduzione
Questo codelab mostra come richiamare una funzione Cloud Functions che inizializza il modulo Vertex AI e quindi fornisce un endpoint per richiamare il modello Text Bison di PaLM. Questa funzione Cloud Functions è scritta in Python. Di seguito sono elencati i servizi utilizzati:
- Cloud Functions
- API Vertex AI PaLM
Cosa creerai
Creerai ed eseguirai il deployment di una funzione Cloud Functions che fornisce un endpoint per richiamare il modello Text Bison PaLM.
2. Requisiti
3. Prima di iniziare
- Nella pagina del selettore dei progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
- Assicurati che la fatturazione sia abilitata per il tuo progetto Google Cloud. Scopri come controllare se la fatturazione è abilitata su un progetto
- Attiva Cloud Shell dalla console Google Cloud seguendo le istruzioni riportate qui
- Se il progetto non è configurato, utilizza il comando seguente per impostarlo:
gcloud config set project <YOUR_PROJECT_ID>
- In Cloud Shell, imposta le seguenti variabili di ambiente:
export GCP_PROJECT=<YOUR_PROJECT_ID>
export GCP_REGION=us-central1
- Abilita le API Google Cloud necessarie eseguendo questi comandi nel terminale Cloud Shell:
gcloud services enable cloudbuild.googleapis.com cloudfunctions.googleapis.com run.googleapis.com logging.googleapis.com storage-component.googleapis.com aiplatform.googleapis.com
4. Esegui il deployment della funzione Cloud Functions
Per creare ed eseguire il deployment di Cloud Functions, segui questi passaggi:
- Clona il codice dal repository https://github.com/rominirani/genai-apptemplates-googlecloud eseguendo questo comando nel terminale Cloud Shell:
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
- Questo comando clonerà i contenuti del repository nella cartella genai-templates-googlecloud.
- Vai alla cartella del progetto che ci interessa eseguendo questo comando dal terminale Cloud Shell:
cd genai-apptemplates-googlecloud/text-predict-cloudfunction
- Dovresti vedere entrambi i file main.py e requirements.txt nella cartella text-predict-cloudfunction eseguendo il comando dir o accedendo all'editor di Cloud Shell.
- Per eseguire il deployment della funzione Cloud Functions, esegui il comando gcloud features deploy:
gcloud functions deploy predictText --gen2 --runtime=python311 --region=$GCP_REGION --source=. --entry-point=predictText --trigger-http --set-env-vars=GCP_PROJECT=$GCP_PROJECT,GCP_REGION=$GCP_REGION --allow-unauthenticated --max-instances=1
Dopo aver eseguito il deployment della funzione Cloud Functions, l'URL della funzione Cloud Functions di cui è stato eseguito il deployment viene visualizzato nel terminale Cloud Shell. L'URL ha il seguente formato:
https://$GCP_REGION-$GCP_PROJECT.cloudfunctions.net/predictText
5. Richiama la funzione Cloud Functions
Poiché il deployment di questa funzione Cloud Functions viene eseguito con un trigger HTTP, puoi richiamarla direttamente. Ecco un esempio di chiamata:
curl -m 70 -X POST https://$GCP_REGION-$GCP_PROJECT.cloudfunctions.net/predictText \
-H "Content-Type: application/json" \
-d '{
"prompt": "What are the best places to visit in the United States?"
}'
L'output avrà il seguente aspetto:
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 conservare il progetto, salta i passaggi precedenti ed elimina la funzione Cloud Functions accedendo a Cloud Functions e, nell'elenco delle funzioni, seleziona la funzione che vuoi eliminare e fai clic su ELIMINA.
7. Complimenti
Complimenti! Hai utilizzato correttamente una funzione Cloud Functions che esegue il wrapping del modello Text Bison PaLM. Consulta la documentazione del prodotto LLM Vertex AI per saperne di più sui modelli disponibili.