O Cloud SQL permite que você obtenha previsões online no seu 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 poder invocar previsões on-line de uma instância do Cloud SQL, você deve preparar seu banco de dados e selecionar um modelo de ML apropriado.
Prepare seu banco de dados
Para preparar seu banco de dados, configure a integração entre o Cloud SQL e o Vertex AI.
Conceda permissões para que usuários do banco de dados usem a função
ml_predict_row()
para executar previsões:Conecte um cliente
psql
à instância primária, 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 o seguinte:
DB_NAME : o nome do banco de dados para o qual você está concedendo permissões
USER_NAME : o nome do usuário para o qual você está concedendo permissões
Selecione um modelo de ML
Ao chamar a função ml_predict_row()
, você deve especificar a localização de um modelo de ML. O modelo especificado pode ser um destes:
Um modelo que está sendo executado no Vertex AI Model Garden .
A função
ml_predict_row()
suporta a invocação de previsões somente em modelos tabulares ou personalizados.Um modelo Vertex AI com um ponto de extremidade ativo ao qual você tem permissão de acesso do Identity and Access Management (IAM).
O Cloud SQL não oferece suporte a endpoints privados para obter previsões online.
Invocar previsões online
Você pode usar a função SQL ml_predict_row()
para invocar previsões online em seus dados.
O formato do argumento inicial da função depende se o modelo de ML que você deseja usar está no Vertex AI Model Garden ou é um ponto de extremidade em execução em um Google Cloud projeto.
Use um modelo no Vertex AI Model Garden
Para invocar uma previsão on-line usando um modelo de ML em execução no Vertex AI Model Garden, 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 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 }');
Use um ponto de extremidade do modelo Vertex AI
Para invocar uma previsão on-line usando um ponto de extremidade do modelo 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 ponto final 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 obter informações sobre as mensagens de resposta JSON do modelo, consulte PredictResponse .
Exemplos de invocações
O exemplo a seguir usa o PaLM 2 para Text , disponível no Model Garden, para gerar texto com base em um prompt 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 obter 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 um auxílio 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 em sua matriz predictions
.
Como a resposta é um objeto JSON, você pode extrair campos específicos dele:
Para mais argumentos de exemplo para ml_predict_row()
, consulte Experimente a API Gemini do Vertex AI .