Richiama le previsioni online dalle istanze Cloud SQL

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 }');
Per informazioni sui messaggi di risposta JSON del modello, consulta Modelli di base di AI generativa: riferimento. Per esempi, consulta Esempi di chiamate.

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

Passaggi successivi