Richiama le previsioni online dalle istanze Cloud SQL

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

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

Passaggi successivi