Cette page vous explique comment appeler des prédictions en ligne à partir d'une instance Cloud SQL.
Cloud SQL vous permet d'obtenir des prédictions en ligne dans
votre code SQL en appelant la
mysql.ml_predict_row()
fonction. Pour en savoir plus, consultez la page Créer des applications d'IA générative
à l'aide de Cloud SQL.
Avant de commencer
Avant de pouvoir appeler des prédictions en ligne à partir d'une instance Cloud SQL, vous devez préparer votre base de données et sélectionner un modèle de ML approprié.
Préparer votre base de données
Pour préparer votre base de données, configurez l'intégration entre Cloud SQL et Agent Platform.Sélectionner un modèle de ML
Lorsque vous appelez la fonction mysql.ml_predict_row(), vous devez spécifier l'emplacement d'un modèle de ML. Le modèle que vous spécifiez peut être l'un des suivants :
Un modèle qui s'exécute dans Model Garden d'Agent Platform.
La fonction
mysql.ml_predict_row()ne permet d'appeler des prédictions que sur des modèles tabulaires ou personnalisés.Un modèle Agent Platform avec un point de terminaison actif auquel vous avez accès via l'autorisation IAM (Identity and Access Management).
Cloud SQL ne permet pas d'utiliser les points de terminaison privés pour obtenir des prédictions en ligne.
Appeler des prédictions en ligne
Vous pouvez utiliser la fonction SQL mysql.ml_predict_row() pour appeler des prédictions en ligne sur vos données.
Le format de l'argument initial de la fonction dépend de la présence du modèle de ML que vous souhaitez utiliser dans Model Garden d'Agent Platform ou en tant que point de terminaison s'exécutant dans un Google Cloud projet.
Utiliser un modèle dans Model Garden d'Agent Platform
Pour appeler une prédiction en ligne à l'aide d'un modèle de ML qui s'exécute dans Model Garden d'Agent Platform, utilisez la syntaxe suivante pour la fonction SQL mysql.ml_predict_row() :
SELECT mysql.ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Effectuez les remplacements suivants :
MODEL_ID : ID du modèle de ML à utiliser (par exemple,
gemini-2.0)INSTANCES : entrées de l'appel de prédiction, au format JSON.
PARAMETERS : paramètres de l'appel de prédiction, au format JSON.
SELECT mysql.ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Utiliser un point de terminaison de modèle Agent Platform
Pour appeler une prédiction en ligne à l'aide d'un point de terminaison de modèle Agent Platform, utilisez la syntaxe suivante pour la fonction SQL mysql.ml_predict_row() :
SELECT mysql.ML_PREDICT_ROW('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Effectuez les remplacements suivants :
ENDPOINT_ID : ID du point de terminaison du modèle
INSTANCES : entrées de l'appel de prédiction, au format JSON.
PARAMETERS : paramètres de l'appel de prédiction, au format JSON.
Pour en savoir plus sur les messages de réponse JSON du modèle, consultez la section PredictResponse.
Exemples d'appels
L'exemple suivant utilise
PaLM 2 pour le texte, disponible
dans Model Garden, pour générer du texte à partir d'un prompt court qui est
fournie en tant qu'argument littéral à 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 réponse est un objet JSON. Pour en savoir plus sur le format de l' objet, consultez la section Corps de la réponse.
L'exemple suivant modifie l'exemple précédent de différentes manières :
L'exemple utilise le contenu de la colonne
messages.messagede la base de données actuelle comme entrée.L'exemple montre comment utiliser la fonction
json_object()pour faciliter la mise en forme des paramètres de la fonction.
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;
Pour chaque ligne du tableau messages, l'objet JSON renvoyé contient désormais une entrée dans son tableau predictions.
Étant donné que la réponse est un objet JSON, vous pouvez extraire des champs spécifiques :
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;
Pour obtenir d'autres exemples d'arguments pour ml_predict_row(), consultez
Essayez l'API Gemini Agent Platform.