Todos los productos
Search
Centro de documentos

Realtime Compute for Apache Flink:Model DDLs

Última actualización: Sep 29, 2026

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 endpoint no es obligatorio. El sistema selecciona automáticamente el endpoint de servicio adecuado.

  • El parámetro api-key no es obligatorio. El sistema se autentica mediante la clave de API gestionada por Flink.

  • El parámetro task es 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: openai-compat, dashscope y triton.

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

truncated-tail

Valores válidos:

  • truncated-tail: trunca automáticamente los tokens cuando se excede la capacidad y conserva los max-context-size tokens más recientes. No se registran logs.

  • truncated-tail-log: trunca automáticamente los tokens finales que exceden la capacidad y conserva los max-context-size tokens más recientes. El truncamiento se registra en los logs.

  • truncated-head: trunca los tokens más antiguos desde el inicio y conserva los max-context-size tokens más recientes.

  • truncated-head-log: recorta los tokens más antiguos desde el inicio y conserva los max-context-size tokens más recientes. Registra el truncamiento en los logs.

  • skipped: descarta directamente el registro de datos. No se registran logs.

  • skipped-log: descarta los datos y registra un log.

error-handling-strategy

Estrategia para gestionar los errores de solicitud del modelo.

String

No

retry

Valores válidos:

  • retry: reenvía la solicitud.

  • failover: lanza una excepción.

  • ignore: omite la excepción y descarta el registro de datos.

retry-num

Número de intentos de reintento.

int

No

100

Surte efecto únicamente cuando error-handling-strategy = retry.

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 error-handling-strategy se establece en un valor distinto de retry.

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:

  • fixed: intervalo fijo.

  • exponential: intervalo exponencial.

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

  • Tipo de contenido para una sola columna de entrada. Valores válidos: text (predeterminado) o image_url.

  • Es mutuamente excluyente con content-types.

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

  • Lista separada por puntos y comas. Cada columna de entrada corresponde a un tipo (por ejemplo, text;image_url).

    Los tipos compatibles incluyen text, image_url y multi_image_urls.

  • Es mutuamente excluyente con content-type.

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:

  • text

  • json_object

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

top_k

Integer

Tamaño del conjunto de candidatos de muestreo. Un valor más alto aumenta la aleatoriedad. Para más detalles, consulte Request body.

enable_thinking

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.

thinking_budget

Integer

Longitud máxima de tokens para el proceso de razonamiento. Surte efecto únicamente cuando enable_thinking es true. Para más detalles, consulte Limit thinking length.

translation_options

Object

Parámetros de traducción para los modelos de traducción. Para más detalles, consulte Translation capability.

enable_search

Boolean

Indica si se usan resultados de búsqueda en internet para asistir la generación de respuestas. El valor predeterminado es false. Para más detalles, consulte Web search.

search_options

Object

Configuración de la estrategia de búsqueda web. Surte efecto únicamente cuando enable_search es true. Para más detalles, consulte Set search scale strategy.

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;