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
Para preparar tu base de datos, configura la integración entre Cloud SQL y Vertex AI.
Concede permisos a los usuarios de la base de datos para usar la función
ml_predict_row()
para ejecutar predicciones:Conecta un cliente
psql
a la instancia principal, tal como se describe en Conectarse mediante un cliente psql.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 }');
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.