Questa pagina mostra come richiamare le previsioni online da un'istanza Cloud SQL.
Cloud SQL consente di ottenere previsioni online nel
codice SQL chiamando la
mysql.ml_predict_row()
funzione. 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 di machine learning appropriato.
Preparare il database
Per preparare il database, configura l'integrazione tra Cloud SQL e Agent Platform.Selezionare un modello di machine learning
Quando chiami la funzione mysql.ml_predict_row(), devi specificare la posizione di un modello di machine learning. Il modello che specifichi può essere uno dei seguenti:
Un modello in esecuzione in Model Garden di Agent Platform.
La funzione
mysql.ml_predict_row()supporta la chiamata delle previsioni solo su modelli tabellari o personalizzati.Un modello di Agent Platform 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 di machine learning che vuoi utilizzare si trovi in Model Garden di Agent Platform o sia un endpoint in esecuzione in un Google Cloud progetto.
Utilizzare un modello in Model Garden di Agent Platform
Per richiamare una previsione online utilizzando un modello di machine learning in esecuzione in Model Garden di Agent Platform, 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 }');
Assicurati di sostituire quanto segue:
MODEL_ID: l'ID del modello di machine learning 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 di Agent Platform
Per richiamare una previsione online utilizzando un endpoint del modello di Agent Platform, utilizza la seguente sintassi per la funzione SQL mysql.ml_predict_row():
SELECT mysql.ML_PREDICT_ROW('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Assicurati di sostituire quanto segue:
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
PaLM 2 per il testo, 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 saperne di più 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 nell'array predictions.
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 Gemini di Agent Platform.