Appeler des prédictions en ligne à partir d'instances Cloud SQL

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 }');
Pour en savoir plus sur les messages de réponse JSON du modèle, consultez la documentation de référence sur le modèle de base de l'IA générative. Pour obtenir des exemples, consultez Exemples d'appels.

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.message de 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.

Étape suivante