Invocar previsões online a partir de instâncias do Cloud SQL

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

O Cloud SQL permite-lhe obter previsões online no seu código SQL chamando a função mysql.ml_predict_row(). Para mais informações, consulte o artigo Crie aplicações de IA generativa com o Cloud SQL.

Antes de começar

Antes de poder invocar previsões online a partir de uma instância do Cloud SQL, tem de preparar a base de dados e selecionar um modelo de ML adequado.

Prepare a sua base de dados

Para preparar a sua base de dados, configure a integração entre o Cloud SQL e a Vertex AI.

Selecione um modelo de ML

Quando chama a função mysql.ml_predict_row(), tem de especificar a localização de um modelo de ML. O modelo que especificar pode ser um dos seguintes:

  • Um modelo que está a ser executado no Vertex AI Model Garden.

    A função mysql.ml_predict_row() suporta a invocação de previsões apenas em modelos tabulares ou personalizados.

  • Um modelo do Vertex AI com um ponto final ativo ao qual tem autorização da gestão de identidade e de acesso (IAM) para aceder.

    O Cloud SQL não suporta pontos finais privados para receber previsões online.

Invocar previsões online

Pode usar a função SQL mysql.ml_predict_row() para invocar previsões online com base nos seus dados.

O formato do argumento inicial da função depende de o modelo de ML que quer usar estar no Vertex AI Model Garden ou ser um ponto final em execução num Trusted Cloud projeto.

Use um modelo no Vertex AI Model Garden

Para invocar uma previsão online através de um modelo de ML que esteja a ser executado no Vertex AI Model Garden, 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 usar (por exemplo, gemini-2.0)

  • INSTANCES: as entradas para a chamada de previsão, no formato JSON

  • PARAMETERS: os parâmetros da chamada de previsão, no formato JSON

SELECT mysql.ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Para informações sobre as mensagens de resposta JSON do modelo, consulte a referência do modelo base de IA generativa. Para ver exemplos, consulte Exemplos de invocações.

Use um ponto final do modelo do Vertex AI

Para invocar uma previsão online através de um ponto final do modelo do 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 ponto final do modelo

  • INSTANCES: as entradas para a chamada de previsão, no formato JSON

  • PARAMETERS: os parâmetros da chamada de previsão, no formato JSON

Para obter informações sobre as mensagens de resposta JSON do modelo, consulte o artigo PredictResponse.

Exemplos de invocações

O exemplo seguinte usa o PaLM 2 for Text, disponível no Model Garden, para gerar texto com base num comando curto que é 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 o artigo Corpo da resposta.

O exemplo seguinte modifica o anterior das seguintes formas:

  • O exemplo usa o conteúdo da coluna messages.message da base de dados atual como entrada.

  • O exemplo demonstra a utilização 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 devolvido contém agora uma entrada na respetiva matriz predictions.

Uma vez que a resposta é um objeto JSON, pode extrair campos específicos do mesmo:

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 ver mais exemplos de argumentos para ml_predict_row(), consulte o artigo Experimente a API Gemini do Vertex AI.

O que se segue?