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 funzione mysql.ml_predict_row(). Per saperne di più, consulta Crea 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.

Seleziona 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 di questi:

  • Un modello in esecuzione in Vertex AI Model Garden.

    La funzione mysql.ml_predict_row() supporta l'invocazione di previsioni solo su modelli tabellari o personalizzati.

  • Un modello Vertex AI con un endpoint attivo a cui hai l'autorizzazione Identity and Access Management (IAM) per accedere.

    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 Model Garden su Vertex AI o sia un endpoint in esecuzione in un progetto Google Cloud .

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 }');

Effettua le seguenti sostituzioni:

  • MODEL_ID: l'ID del modello ML da utilizzare (ad esempio, gemini-2.0)

  • INSTANCES: gli input della 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 Riferimento al modello di base di AI generativa. Per alcuni esempi, consulta Esempi di invocazioni.

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 }');

Effettua le seguenti sostituzioni:

  • ENDPOINT_ID: l'ID dell'endpoint del modello

  • INSTANCES: gli input della 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 invocazioni

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 maggiori informazioni sul formato dell'oggetto, consulta Corpo della risposta.

L'esempio successivo modifica quello precedente nei seguenti modi:

  • L'esempio utilizza i contenuti della colonna messages.message del database corrente come input.

  • L'esempio mostra l'utilizzo della funzione json_object() come aiuto per formattare i 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 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 argomenti di esempio per ml_predict_row(), vedi Prova l'API Vertex AI Gemini.

Passaggi successivi