Invocar previsões on-line de instâncias do Cloud SQL

Esta página mostra como invocar previsões online de uma instância do Cloud SQL.

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

  1. Para preparar seu banco de dados, configure a integração entre o Cloud SQL e o Vertex AI.

  2. Conceda permissões para que usuários do banco de dados usem a função ml_predict_row() para executar previsões:

    1. Conecte um cliente psql à instância primária, conforme descrito em Conectar usando um cliente psql .

    2. 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 }');
Para obter informações sobre as mensagens de resposta JSON do modelo, consulte Referência do modelo fundamental da IA ​​generativa . Para obter exemplos, consulte Invocações de exemplo .

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 .

O que vem a seguir