Este documento describe las instrucciones del lenguaje de definición de datos (DDL) para registrar, consultar, modificar y eliminar modelos de IA en Flink SQL.
Notas de uso
Compatible solo con VVR 11.7 o versiones posteriores. Requiere la activación de Flink AI Service (built-in models).
Registrar un modelo
Una vez que la cuenta principal activa Flink AI Service en la región de destino, puede crear un modelo en el modo de modelo integrado.
CREATE TEMPORARY MODEL my_llm
INPUT (prompt String COMMENT 'Input prompt')
OUTPUT (response String COMMENT 'Model output')
WITH (
'provider' = 'dashscope',
'task' = 'chat/completions',
'model' = 'qwen3.5-flash'
);
El parámetro
endpointno es obligatorio. El sistema selecciona automáticamente el endpoint de servicio adecuado.El parámetro
api-keyno es obligatorio. El sistema se autentica mediante la clave de API gestionada por Flink.El parámetro
taskes obligatorio para declarar el tipo de tarea del modelo.
Parámetros WITH
Generales
|
Parámetro |
Descripción |
Tipo de dato |
Obligatorio |
Valor predeterminado |
Observaciones |
|
provider |
Tipo de servicio del modelo. |
String |
Sí |
Ninguna |
Valores válidos:
|
|
task |
Tipo de tarea del modelo. |
String |
Sí |
Ninguna |
Valores válidos: |
|
model |
Modelo específico que se invocará en el lado del servicio. |
String |
Sí |
Ninguna |
Seleccione un modelo según el tipo de tarea. Para más detalles, consulte Built-in model list . |
|
max-context-size |
Tamaño máximo de contexto para una sola solicitud. |
Integer |
No |
Ninguna |
Si se supera la capacidad máxima, se activa la acción definida en context-overflow-action. |
|
context-overflow-action |
Acción que se ejecuta cuando el contexto de una solicitud supera la capacidad máxima. |
String |
No |
|
Valores válidos:
|
|
error-handling-strategy |
Estrategia para gestionar los errores de solicitud del modelo. |
String |
No |
retry |
Valores válidos:
|
|
retry-num |
Número de intentos de reintento. |
int |
No |
100 |
Surte efecto únicamente cuando |
|
retry-fallback-strategy |
Estrategia alternativa que se aplica al alcanzar el número máximo de reintentos. |
String |
No |
failover |
Valores válidos: Surte efecto únicamente cuando |
|
retry-backoff-strategy |
Estrategia de retroceso para los reintentos. Define cómo se calcula el intervalo entre cada intento. |
String |
No |
fixed |
Valores válidos:
|
|
retry-backoff-base-interval |
Intervalo de tiempo base para el retroceso de reintentos. |
Duration |
No |
1 s |
- |
|
content-type |
Tipo de datos de entrada. Aplica a las tareas Chat/Completions y Multimodal-Embedding. |
String |
No |
text |
|
|
content-types |
Tipos de contenido de las columnas de entrada para modelos multimodales. Aplica a las tareas Chat/Completions y Multimodal-Embedding. |
String |
No |
Ninguna |
Nota
Compatible solo con VVR 11.8 o versiones posteriores. Para más detalles, consulte General invocation. |
chat/completions
Las tareas de generación de texto usan chat/completions. A continuación se muestran los parámetros compatibles:
|
Parámetro |
Descripción |
Tipo de dato |
Obligatorio |
Valor predeterminado |
Observaciones |
|
system-prompt |
Prompt del sistema para la solicitud. |
String |
No |
"You are a helpful assistant." |
Se admite una cadena vacía. |
|
temperature |
Controla la suavidad de la distribución de probabilidad de cada token candidato. |
Float |
No |
Ninguna |
Rango válido: [0, 2). No se recomienda usar el valor 0, ya que carece de utilidad práctica. Una temperatura más alta aplana la distribución de probabilidad, por lo que se seleccionan más tokens de baja probabilidad y la salida resulta más diversa. Una temperatura más baja agudiza la distribución, lo que favorece los tokens de alta probabilidad y genera una salida más determinista. |
|
top-p |
Umbral de probabilidad para el muestreo de núcleo. |
Float |
No |
Ninguna |
Un valor más alto aumenta la aleatoriedad, mientras que uno más bajo incrementa el determinismo. |
|
stop |
Secuencia de detención. |
String |
No |
Ninguna |
El modelo deja de generar contenido justo antes de producir la cadena especificada. |
|
max-tokens |
Número máximo de tokens que el modelo puede generar. |
Integer |
No |
Ninguna |
Limitado por las capacidades del modelo. |
|
presence-penalty |
Controla la repetición de tokens. |
Double |
No |
Ninguna |
Rango válido: de -2.0 a 2.0. Los valores positivos penalizan los tokens que ya aparecieron en el texto, lo que hace más probable que el modelo aborde temas nuevos. |
|
n |
Número de salidas que se generan por cada entrada. |
int |
No |
Ninguna |
- |
|
seed |
Semilla de números aleatorios para la respuesta del modelo. |
Long |
No |
Ninguna |
Si se especifica, la plataforma del modelo intenta aplicar un muestreo determinista. De este modo, las solicitudes repetidas con la misma semilla y los mismos parámetros devuelven el mismo resultado siempre que sea posible. |
|
response-format |
Formato del valor de retorno. |
String |
No |
text |
Valores válidos:
|
|
extra-body |
Cuerpo HTTP adicional para la solicitud. |
String |
No |
Ninguna |
Debe ser una cadena con formato JSON. Para más detalles, consulte extra-body description. |
|
user-prompt |
Prompt de usuario para la solicitud. |
String |
No |
Ninguna |
Similar a system-prompt, pero se envía desde el rol del usuario. |
embeddings
Las tareas de embedding de texto usan embeddings. A continuación se muestran los parámetros compatibles:
|
Parámetro |
Descripción |
Tipo de dato |
Obligatorio |
Valor predeterminado |
Observaciones |
|
dimension |
Dimensión de los vectores de salida. |
Integer |
No |
Ninguna |
Las dimensiones compatibles dependen del modelo específico. Los valores comunes son 1024, 768 y 512. |
multimodal-embedding
Las tareas de embedding multimodal usan multimodal-embedding para convertir entradas de texto, imagen o combinaciones de ambos en vectores. A continuación se muestran los parámetros compatibles:
|
Parámetro |
Descripción |
Tipo de dato |
Obligatorio |
Valor predeterminado |
Observaciones |
|
dimension |
Dimensión de los vectores de salida. |
Integer |
No |
Ninguna |
Las dimensiones compatibles dependen del modelo específico. Los valores comunes son 1024, 768 y 512. |
Ejemplo 1: solo imágenes
CREATE TEMPORARY MODEL multimodal_embedding_model
INPUT (`input` STRING)
OUTPUT (`content` ARRAY<FLOAT>)
WITH (
'provider' = 'dashscope',
'task' = 'multimodal-embedding',
'model' = 'qwen3-vl-embedding',
'dimension' = '512',
'content-type' = 'image_url'
);
Ejemplo 2: texto e imagen
La fusión de texto e imagen aplica únicamente a los modelos cuya capacidad de fusión está habilitada mediante enable_fusion, tal como se describe en Multimodal fused vectors. Flink determina si debe habilitar la fusión según el número de columnas de entrada del modelo. No se requiere ningún parámetro adicional.
CREATE TEMPORARY MODEL fusion_embedding_model
INPUT (text_input STRING, image_input STRING)
OUTPUT (embedding ARRAY<FLOAT>)
WITH (
'provider' = 'dashscope',
'task' = 'multimodal-embedding',
'model' = 'qwen3-vl-embedding',
'dimension' = '512',
'content-types' = 'text;image_url'
);
Descripción de extra-body
El valor de extra-body es una cadena con formato JSON que sirve para agregar parámetros adicionales al cuerpo de la solicitud del modelo. Los parámetros disponibles dependen del proveedor del servicio del modelo. A continuación se muestran algunos parámetros comunes que admite Alibaba Cloud Model Studio (entre otros):
|
Parámetro |
Tipo |
Descripción |
|
|
Integer |
Tamaño del conjunto de candidatos de muestreo. Un valor más alto aumenta la aleatoriedad. Para más detalles, consulte Request body. |
|
|
Boolean |
Indica si se habilita el modo de razonamiento profundo (aplica a modelos que admiten razonamiento, como Qwen3). Para más detalles, consulte Deep thinking. |
|
|
Integer |
Longitud máxima de tokens para el proceso de razonamiento. Surte efecto únicamente cuando |
|
|
Object |
Parámetros de traducción para los modelos de traducción. Para más detalles, consulte Translation capability. |
|
|
Boolean |
Indica si se usan resultados de búsqueda en internet para asistir la generación de respuestas. El valor predeterminado es |
|
|
Object |
Configuración de la estrategia de búsqueda web. Surte efecto únicamente cuando |
Ejemplo
CREATE MODEL my_model
USING openai_compatible
WITH (
'provider' = 'openai-compat',
'model' = 'qwen3.5-flash',
'task' = 'chat/completions',
'extra-body' = '{"enable_thinking": true, "thinking_budget": 4096}'
);
Consultar modelos
En el editor de Data Query, ejecute uno de los siguientes comandos.
-
Listar los nombres de los modelos registrados:
SHOW MODELS [ ( FROM | IN ) [catalog_name.]database_name ]; -
Mostrar la instrucción que se usó para crear un modelo:
SHOW CREATE MODEL [catalog_name.][db_name.]model_name; -
Mostrar el esquema de entrada y salida de un modelo:
DESCRIBE MODEL [catalog_name.][db_name.]model_name;
Ejemplo
SHOW MODELS;
-- RESULT
--+------------+
--| model name |
--+------------+
--| m |
--+------------+
DESCRIBE MODEL m;
-- RESULT
-- +---------+--------+------+----------+
-- | name | type | null | is input |
-- +---------+--------+------+----------+
-- | content | String | TRUE | TRUE |
-- | label | BIGINT | TRUE | FALSE |
-- +---------+--------+------+----------+
Modificar modelos
En el editor de Data Query, ejecute el siguiente comando.
ALTER MODEL [IF EXISTS] [catalog_name.][db_name.]model_name {
RENAME TO new_table_name
SET (key1=val1, ...)
RESET (key1, ...)
}
Ejemplos
-
Cambiar el nombre de un modelo registrado:
ALTER MODEL m RENAME TO m1; -- Renames the model to m1. -
Modificar un parámetro del modelo:
ALTER MODEL m SET ('system-prompt' = '<Your_System_Prompt>'); -- Adjusts the system prompt. -
Restablecer un parámetro del modelo a su valor predeterminado:
ALTER MODEL m RESET ('system-prompt'); -- Resets the system prompt.
Eliminar modelos
En el editor de Data Query, ejecute el siguiente comando.
DROP [TEMPORARY] MODEL [IF EXISTS] [catalog_name.][db_name.]model_name
Ejemplo
DROP MODEL m;