Com o Cloud SQL, é possível receber previsões on-line no
código SQL chamando a função
mysql.ml_predict_row()
. Para mais informações, consulte Criar aplicativos de IA
generativa usando o Cloud SQL.
Antes de começar
Antes de invocar previsões on-line de uma instância do Cloud SQL, prepare seu banco de dados e selecione um modelo de ML apropriado.
Preparar o banco de dados
Para preparar seu banco de dados, configure a integração entre o Cloud SQL e a Vertex AI.Selecionar um modelo de ML
Ao chamar a função mysql.ml_predict_row()
,
é necessário especificar o local de um modelo de ML. O modelo especificado
pode ser um destes:
Um modelo executado no Model Garden da Vertex AI.
A função
mysql.ml_predict_row()
é compatível com a invocação de previsões apenas em modelos tabulares ou personalizados.Um modelo da Vertex AI com um endpoint ativo a que você tem permissão de Identity and Access Management (IAM).
O Cloud SQL não é compatível com endpoints particulares para receber previsões on-line.
Invocar previsões on-line
Use a função SQL mysql.ml_predict_row()
para invocar previsões on-line nos seus dados.
O formato do argumento inicial da função depende se o modelo de ML que você quer usar está no Model Garden da Vertex AI ou é um endpoint em execução em um projeto do Google Cloud.
Usar um modelo no Model Garden da Vertex AI
Para invocar uma previsão on-line usando um modelo de ML em execução no
Model Garden da Vertex AI, use a seguinte sintaxe para a
função SQL mysql.ml_predict_row()
:
SELECT mysql.ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Faça as seguintes substituições:
MODEL_ID: o ID do modelo de ML a ser usado (por exemplo,
gemini-2.0
)INSTANCES: as entradas para a chamada de previsão, no formato JSON
PARAMETERS: os parâmetros para a chamada de previsão, no formato JSON
SELECT mysql.ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Usar um endpoint de modelo da Vertex AI
Para invocar uma previsão on-line usando um endpoint de modelo da Vertex AI, use a seguinte sintaxe para a função SQL mysql.ml_predict_row()
:
SELECT mysql.ML_PREDICT_ROW('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Faça as seguintes substituições:
ENDPOINT_ID: o ID do endpoint do modelo
INSTANCES: as entradas para a chamada de previsão, no formato JSON
PARAMETERS: os parâmetros para a chamada de previsão, no formato JSON
Para informações sobre as mensagens de resposta JSON do modelo, consulte PredictResponse.
Invocações de exemplo
O exemplo a seguir usa o
PaLM 2 para texto, disponível
no Model Garden, para gerar texto com base em um comando curto fornecido
como um argumento literal para 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"
}]
}]
}');
A resposta é um objeto JSON. Para mais informações sobre o formato do objeto, consulte Corpo da resposta.
O próximo exemplo modifica o anterior das seguintes maneiras:
O exemplo usa o conteúdo da coluna
messages.message
do banco de dados atual como entrada.O exemplo demonstra o uso da função
json_object()
como ajuda para formatar os parâmetros da função.
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;
Para cada linha na tabela messages
, o objeto JSON retornado agora contém
uma entrada na matriz predictions
.
Como a resposta é um objeto JSON, é possível extrair campos específicos dele:
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;
Para mais exemplos de argumentos para ml_predict_row()
, consulte
Testar a API Vertex AI Gemini.