Cloud SQL te permite obtener predicciones online en tu código SQL llamando a la función mysql.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.Selecciona un modelo de aprendizaje automático
Cuando llames a la función mysql.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
mysql.ml_predict_row()
solo admite invocaciones de predicciones 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 SQL mysql.ml_predict_row()
para invocar predicciones online en 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 mysql.ml_predict_row()
:
SELECT mysql.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 mysql.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 mysql.ml_predict_row()
:
SELECT mysql.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 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 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_object()
para ayudar a 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;
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:
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 argumentos de ejemplo de ml_predict_row()
, consulta Prueba la API de Gemini de Vertex AI.