Invocar predicciones online desde instancias de Cloud SQL

En esta página se muestra cómo invocar predicciones online desde una instancia de Cloud SQL.

Cloud SQL te permite obtener predicciones online en tu código SQL llamando a la función ml_predict_row(). Para obtener más información, consulta el artículo Crear aplicaciones de IA generativa con Cloud SQL.

Antes de empezar

Antes de invocar predicciones online desde una instancia de Cloud SQL, debe preparar su base de datos y seleccionar un modelo de aprendizaje automático adecuado.

Preparar la base de datos

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

  2. Concede permisos a los usuarios de la base de datos para usar la función ml_predict_row() para ejecutar predicciones:

    1. Conecta un cliente psql a la instancia principal, tal como se describe en Conectarse mediante un cliente psql.

    2. En el símbolo del sistema psql, conéctate a la base de datos y concede permisos:

      \c DB_NAME
      
      GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;
      

      Haz los cambios siguientes:

      • DB_NAME: el nombre de la base de datos para la que vas a conceder permisos

      • USER_NAME: el nombre del usuario al que vas a conceder permisos

Selecciona un modelo de aprendizaje automático

Cuando llames a la función ml_predict_row() , debes especificar la ubicación de un modelo de aprendizaje automático. El modelo que especifiques puede ser uno de los siguientes:

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

    La función ml_predict_row() admite invocar predicciones solo en modelos tabulares o personalizados.

  • Un modelo de Vertex AI con un endpoint activo al que tengas permiso de Gestión de Identidades y Accesos (IAM).

    Cloud SQL no admite puntos finales privados para obtener predicciones online.

Invocar predicciones online

Puedes usar la función ml_predict_row() SQL para invocar predicciones online con tus datos.

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

Usar un modelo de Vertex AI Model Garden

Para invocar una predicción online con un modelo de aprendizaje automático que se esté ejecutando en Vertex AI Model Garden, usa la siguiente sintaxis para la función SQL ml_predict_row():

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

Haz las siguientes sustituciones:

  • MODEL_ID: el ID del modelo de aprendizaje automático que se va a 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 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 la referencia del modelo básico de IA generativa. Para ver ejemplos, consulta Ejemplos de invocaciones.

Usar un endpoint de modelo de Vertex AI

Para invocar una predicción online mediante un endpoint de modelo de Vertex AI, usa la siguiente sintaxis para la función SQL ml_predict_row():

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

Haz las siguientes sustituciones:

  • ENDPOINT_ID: el ID del endpoint 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.

Ejemplos de invocaciones

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

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 formas:

  • 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_build_object() como ayuda para dar formato a los parámetros de la función.

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;

Por cada fila de la tabla messages, el objeto JSON devuelto ahora contiene una entrada en su matriz predictions.

Como la respuesta es un objeto JSON, puedes extraer campos específicos de ella:

Para ver más argumentos de ejemplo de ml_predict_row(), consulta Prueba la API de Gemini de Vertex AI.

Siguientes pasos