Invoca predicciones en línea desde instancias de Cloud SQL

En esta página, se muestra cómo invocar predicciones en línea desde una instancia de Cloud SQL.

Cloud SQL te permite obtener predicciones en línea en tu código SQL a través de una llamada a la función mysql.ml_predict_row(). Para obtener más información, consulta Compila aplicaciones de IA generativa con Cloud SQL.

Antes de comenzar

Antes de poder invocar predicciones en línea desde una instancia de Cloud SQL, debes preparar tu base de datos y seleccionar un modelo de AA adecuado.

Prepara tu base de datos

Para preparar tu base de datos, configura la integración entre Cloud SQL y Vertex AI.

Selecciona un modelo de AA

Cuando llamas a la función mysql.ml_predict_row(), debes especificar la ubicación de un modelo de AA. El modelo que especifiques puede ser uno de los siguientes:

  • Un modelo que se ejecuta en Model Garden de Vertex AI

    La función mysql.ml_predict_row() admite la invocación de predicciones solo en modelos tabulares o personalizados.

  • Un modelo de Vertex AI con un extremo activo al que tienes permiso de acceso dE Identity and Access Management (IAM).

    Cloud SQL no admite extremos privados para obtener predicciones en línea.

Invoca predicciones en línea

Puedes usar la función de SQL mysql.ml_predict_row() para invocar predicciones en línea en tus datos.

El formato del argumento inicial de la función depende de si el modelo de AA que deseas usar está en Model Garden de Vertex AI o si es un extremo que se ejecuta en un proyecto de Google Cloud.

Usa un modelo en Model Garden de Vertex AI

Para invocar una predicción en línea con un modelo de AA que se ejecuta en Model Garden de Vertex AI, usa la siguiente sintaxis para la función de SQL mysql.ml_predict_row():

SELECT mysql.ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');

Realiza los siguientes reemplazos:

  • MODEL_ID: el ID del modelo de AA que se usará (por ejemplo, gemini-2.0)

  • INSTANCES: las entradas de la llamada de predicción, en formato JSON

  • PARAMETERS: los parámetros de la llamada de predicción, en formato JSON

SELECT mysql.ML_PREDICT_ROW('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');
Para obtener información sobre los mensajes de respuesta JSON del modelo, consulta Referencia de modelos de base de IA generativa. Para ver ejemplos, consulta Invocaciones de ejemplo.

Usa un extremo del modelo de Vertex AI

Para invocar una predicción en línea a través de un extremo del modelo de Vertex AI, usa la siguiente sintaxis para la función de SQL mysql.ml_predict_row():

SELECT mysql.ML_PREDICT_ROW('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');

Realiza los siguientes reemplazos:

  • ENDPOINT_ID: el ID del extremo del modelo.

  • INSTANCES: las entradas de la llamada de predicción, en formato JSON

  • PARAMETERS: los parámetros de la llamada de predicción, en formato JSON

Para obtener información sobre los mensajes de respuesta JSON del modelo, consulta PredictResponse.

Invocaciones de ejemplo

En el siguiente ejemplo, se usa PaLM 2 for Text, disponible en Model Garden, para generar texto basado en una instrucción breve que se proporciona como argumento literal de 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" }] }] }');

La respuesta es un objeto JSON. Para obtener más información sobre el formato del objeto, consulta Cuerpo de la respuesta.

En el siguiente ejemplo, se modifica el anterior de las siguientes maneras:

  • En el ejemplo, se usa el contenido de la columna messages.message de la base de datos actual como entrada.

  • En el ejemplo, se muestra el uso de la función json_object() como ayuda para dar formato a los parámetros de la función.

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 fila de la tabla messages, el objeto JSON que se muestra ahora contiene una entrada en su array predictions.

Debido a que la respuesta es un objeto JSON, puedes extraer campos específicos de él:

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 más ejemplos de argumentos para ml_predict_row(), consulta Prueba la API de Gemini de Vertex AI.

¿Qué sigue?