Cloud SQL ti consente di ottenere previsioni online nel
tuo codice SQL chiamando la funzione
ml_predict_row()
. Per saperne di più, consulta Creare applicazioni di AI generativa utilizzando Cloud SQL.
Prima di iniziare
Prima di poter richiamare le previsioni online da un'istanza Cloud SQL, devi preparare il database e selezionare un modello ML appropriato.
Prepara il database
Per preparare il database, configura l'integrazione tra Cloud SQL e Vertex AI.
Concedi agli utenti del database le autorizzazioni per utilizzare la funzione
ml_predict_row()
per eseguire le previsioni:Connettiti a un client
psql
all'istanza principale, come descritto in Eseguire la connessione utilizzando un client psql.Al prompt dei comandi
psql
, connettiti al database e concedi le autorizzazioni:\c DB_NAME GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;
Sostituisci quanto segue:
DB_NAME: il nome del database per cui stai concedendo le autorizzazioni
USER_NAME: il nome dell'utente a cui concedi le autorizzazioni
Seleziona un modello ML
Quando chiami la funzione ml_predict_row()
,
devi specificare la posizione di un modello ML. Il modello specificato può essere uno dei seguenti:
Un modello in esecuzione in Vertex AI Model Garden.
La funzione
ml_predict_row()
supporta l'attivazione delle previsioni solo su modelli tabulari o personalizzati.Un modello Vertex AI con un endpoint attivo a cui disponi dell'autorizzazione Identity and Access Management (IAM) per accedere.
Cloud SQL non supporta gli endpoint privati per ottenere le previsioni online.
Richiamare le previsioni online
Puoi utilizzare la funzione SQL ml_predict_row()
per richiamare le previsioni online sui tuoi dati.
Il formato dell'argomento iniziale della funzione dipende dal fatto che il modello ML che vuoi utilizzare si trovi in Model Garden di Vertex AI o sia un endpoint in esecuzione in un Google Cloud progetto.
Utilizzare un modello in Model Garden di Vertex AI
Per richiamare una previsione online utilizzando un modello ML in esecuzione in Vertex AI Model Garden, utilizza la seguente sintassi per la funzione SQL ml_predict_row()
:
sql
SELECT ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Esegui le seguenti sostituzioni:
MODEL_ID: l'ID del modello ML da utilizzare (ad esempio
gemini-2.0
)INSTANCES: gli input alla chiamata di previsione, in formato JSON
PARAMETERS: i parametri per la chiamata di previsione, in formato JSON
SELECT ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Utilizzare un endpoint del modello Vertex AI
Per richiamare una previsione online utilizzando un endpoint del modello Vertex AI, utilizza la seguente sintassi per la funzione SQL ml_predict_row()
:
sql
SELECT ML_PREDICT_ROW('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Esegui le seguenti sostituzioni:
ENDPOINT_ID: l'ID dell'endpoint del modello
INSTANCES: gli input alla chiamata di previsione, in formato JSON
PARAMETERS: i parametri per la chiamata di previsione, in formato JSON
Per informazioni sui messaggi di risposta JSON del modello, consulta PredictResponse.
Chiamate di esempio
L'esempio seguente utilizza
PaLM 2 per il testo, disponibile
in Model Garden, per generare testo in base a un breve prompt fornito come
argomento letterale a ml_predict_row()
:
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', '{"instances":[{"prompt": "What are three advantages of using Cloud SQL as my SQL database server?"}], "parameters":{"maxOutputTokens":1024, "topK": 40, "topP":0.8, "temperature":0.2}}');
La risposta è un oggetto JSON. Per ulteriori informazioni sul formato dell'oggetto, consulta Corpo della risposta.
L'esempio seguente modifica quello precedente nei seguenti modi:
L'esempio utilizza i contenuti della colonna
messages.message
del database corrente come input.L'esempio mostra l'utilizzo della funzione
json_build_object()
come ausilio per la formattazione dei parametri della funzione.
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', json_build_object('instances', json_build_object('prompt', message), 'parameters', json_build_object('maxOutputTokens', 1024,'topK', 40,'topP', 0.8,'temperature', 0.2))) from messages;
Per ogni riga della tabella messages
, l'oggetto JSON restituito ora contiene
una voce nell'array predictions
.
Poiché la risposta è un oggetto JSON, puoi estrarre campi specifici:
Per altri esempi di argomenti per ml_predict_row()
, consulta
Prova l'API Gemini Vertex AI.