Com o Cloud SQL, é possível receber previsões on-line no
código SQL chamando a função
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.
Conceda permissões aos usuários do banco de dados para usar a função
ml_predict_row()
para executar previsões:Conecte um cliente
psql
à instância principal, conforme descrito em Conectar usando um cliente psql.No prompt de comando
psql
, conecte-se ao banco de dados e conceda permissões:\c DB_NAME GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;
Substitua:
DB_NAME: o nome do banco de dados para o qual você está concedendo permissões
USER_NAME: o nome do usuário para quem você está concedendo permissões
Selecionar um modelo de ML
Ao chamar a função ml_predict_row()
,
você precisa 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
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 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 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 ml_predict_row()
:
sql
SELECT 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 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 ml_predict_row()
:
sql
SELECT 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 ml_predict_row()
:
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', '{"instances":[{"prompt": "What are three advantages of using Cloud SQL as my SQL database server?"}], "parameters":{"maxOutputTokens":1024, "topK": 40, "topP":0.8, "temperature":0.2}}');
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_build_object()
como ajuda para formatar os parâmetros da função.
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', json_build_object('instances', json_build_object('prompt', message), 'parameters', json_build_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 dela:
Para mais exemplos de argumentos para ml_predict_row()
, consulte
Testar a API Vertex AI Gemini.