Questa pagina mostra come richiamare le previsioni online da un'istanza Cloud SQL.
Cloud SQL ti consente di ottenere previsioni online nel
codice SQL chiamando la
mysql.ml_predict_row()
funzione. Per ulteriori informazioni, 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.
Preparare il database
Per preparare il database, configura l'integrazione tra Cloud SQL e Vertex AI.Selezionare un modello ML
Quando chiami la funzione mysql.ml_predict_row(), devi specificare la posizione di un modello ML. Il modello che specifichi può essere uno dei seguenti:
Un modello in esecuzione in Vertex AI Model Garden.
La funzione
mysql.ml_predict_row()supporta la chiamata delle previsioni solo su modelli tabulari o personalizzati.Un modello Vertex AI con un endpoint attivo a cui hai l'autorizzazione di accesso Identity and Access Management (IAM).
Cloud SQL non supporta gli endpoint privati per ottenere previsioni online.
Richiamare le previsioni online
Puoi utilizzare la funzione SQL mysql.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 Vertex AI Model Garden o sia un endpoint in esecuzione in un Google Cloud progetto.
Utilizzare un modello in Vertex AI Model Garden
Per richiamare una previsione online utilizzando un modello ML in esecuzione in Vertex AI Model Garden, utilizza la seguente sintassi per la funzione SQL mysql.ml_predict_row():
SELECT mysql.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 della chiamata di previsione, in formato JSON
SELECT mysql.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 mysql.ml_predict_row():
SELECT mysql.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 della chiamata di previsione, in formato JSON
Per informazioni sui messaggi di risposta JSON del modello, consulta PredictResponse.
Esempi di chiamate
L'esempio seguente utilizza
Gemini 2.5 Flash, disponibile
in Model Garden, per generare testo in base a un breve prompt fornito come argomento letterale a mysql.ml_predict_row():
sql
select mysql.ML_PREDICT_ROW('publishers/google/models/gemini-2.0-flash:generateContent', '{
"contents": [{
"role": "user",
"parts": [{
"text": "Write me a short poem about MySQL"
}]
}]
}');
La risposta è un oggetto JSON. Per ulteriori informazioni sul formato dell' oggetto, consulta Corpo della risposta.
L'esempio successivo modifica il precedente nei seguenti modi:
L'esempio utilizza come input i contenuti della colonna
messages.messagedel database corrente.L'esempio mostra l'utilizzo della
json_object()funzione come ausilio per la formattazione dei parametri della funzione.
select mysql.ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', json_object('instances', json_object('prompt', message), 'parameters', json_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 nella matrice candidates.
Poiché la risposta è un oggetto JSON, puoi estrarre campi specifici:
select JSON_EXTRACT(mysql.ml_PREDICT_ROW('publishers/google/models/gemini-2.0-flash:generateContent', JSON_OBJECT(
'contents', JSON_ARRAY(
JSON_OBJECT(
'role', 'user',
'parts', JSON_ARRAY(
JSON_OBJECT(
'text', message
)
)
)
)
)), '$.candidates[0].content.parts[0].text') from messages;
Per altri esempi di argomenti per ml_predict_row(), consulta
Provare l'API Vertex AI Gemini.