Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:Model DDLs

Última atualização: Sep 18, 2026

Este documento descreve as instruções de linguagem de definição de dados (DDL) para registrar, consultar, modificar e excluir modelos de IA no Flink SQL.

Notas de uso

Compatível apenas com VVR 11.7 ou posterior. Requer a ativação do Flink AI Service (built-in models).

Registrar um modelo

Após a conta principal ativar o Flink AI Service na região de destino, você pode crie um modelo no 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'
);
  • O parâmetro endpoint não é obrigatório. O sistema seleciona automaticamente o endpoint de service apropriado.

  • O parâmetro api-key não é obrigatório. O sistema autentica usando a API Key gerenciada pelo Flink.

  • O parâmetro task é obrigatório para declarar o tipo de tarefa do modelo.

Parâmetros WITH

Geral

Parâmetro

Descrição

Tipo de dados

Obrigatório

Valor padrão

Observações

provider

O tipo de service de modelo.

String

Sim

Nenhum

Valores válidos: openai-compat, dashscope e triton.

  • dashscope (recomendado): oferece suporte a tarefas multimodais como multimodal-embedding.

  • openai-compat: opcional para tarefas não multimodais.

  • triton: usado para invocar um service de inferência Triton. Para mais detalhes, consulte Invoke a Triton inference service.

task

O tipo de tarefa do modelo.

String

Sim

Nenhum

Valores válidos:

model

O modelo específico a ser invocado no lado do service.

String

Sim

Nenhum

Selecione um modelo com base no tipo de tarefa. Para mais detalhes, consulte Built-in model list .

max-context-size

O tamanho máximo de contexto para uma única requisição.

Integer

Não

Nenhum

Quando a capacidade máxima é excedida, o sistema aciona a ação definida em context-overflow-action.

context-overflow-action

A ação a ser executada quando o contexto de uma requisição excede a capacidade máxima.

String

Não

truncated-tail

Valores válidos:

  • truncated-tail: trunca tokens automaticamente quando a capacidade é excedida, retendo os max-context-size tokens mais recentes. Nenhum log é registrado.

  • truncated-tail-log: trunca automaticamente os tokens do final que excedem a capacidade, retendo os max-context-size tokens mais recentes. A truncagem é registrada em log.

  • truncated-head: trunca os tokens mais antigos do início, retendo os max-context-size tokens mais recentes.

  • truncated-head-log: remove os tokens mais antigos do início, mantendo os max-context-size tokens mais recentes. Registra a truncagem em log.

  • skipped: descarta o registro de dados diretamente. Nenhum log é registrado.

  • skipped-log: descarta os dados e registra um log.

error-handling-strategy

A estratégia de tratamento de erros nas requisições ao modelo.

String

Não

retry

Valores válidos:

  • retry: reenvia a requisição.

  • failover: lança uma exceção.

  • ignore: ignora a exceção e pula o registro de dados.

retry-num

O número de tentativas de reenvio.

int

Não

100

Entra em vigor somente quando error-handling-strategy = retry.

retry-fallback-strategy

A estratégia de fallback após atingir o número máximo de tentativas.

String

Não

failover

Valores válidos:

Entra em vigor somente quando error-handling-strategy está definido com um valor diferente de retry.

retry-backoff-strategy

A estratégia de backoff para novas tentativas. Defina como o intervalo entre tentativas é calculado.

String

Não

fixed

Valores válidos:

  • fixed: intervalo fixo.

  • exponential: intervalo exponencial.

retry-backoff-base-interval

O intervalo de tempo base para o backoff de novas tentativas.

Duration

Não

1 s

-

content-type

O tipo de dados de entrada. Aplica-se a tarefas Chat/Completions e Multimodal-Embedding.

String

Não

text

  • Tipo de conteúdo para uma única coluna de entrada. Valores válidos: text (padrão) ou image_url.

  • Mutuamente exclusivo com content-types.

content-types

Os tipos de conteúdo das colunas de entrada para modelos multimodais. Aplica-se a tarefas Chat/Completions e Multimodal-Embedding.

String

Não

Nenhum

  • Uma lista separada por ponto e vírgula. Cada coluna de entrada corresponde a um tipo (por exemplo, text;image_url).

    Os tipos compatíveis incluem text, image_url e multi_image_urls.

  • Mutuamente exclusivo com content-type.

Nota

Compatível apenas com VVR 11.8 ou posterior. Para mais detalhes, consulte General invocation.

chat/completions

Tarefas de geração de texto utilizam chat/completions. Os seguintes parâmetros são compatíveis:

Parâmetro

Descrição

Tipo de dados

Obrigatório

Valor padrão

Observações

system-prompt

O prompt de sistema para a requisição.

String

Não

"You are a helpful assistant."

Aceita uma string vazia.

temperature

Controla a suavidade da distribuição de probabilidade para cada token candidato.

Float

Não

Nenhum

Intervalo válido: [0, 2). O valor 0 não é recomendado e não possui significado prático.

Um valor de temperature mais alto achata a distribuição de probabilidade, fazendo com que mais tokens de baixa probabilidade sejam selecionados e a saída seja mais diversa. Um valor mais baixo concentra a distribuição, de modo que tokens de alta probabilidade têm maior chance de serem escolhidos e a saída torna-se mais determinística.

top-p

O limiar de probabilidade para amostragem por núcleo (nucleus sampling).

Float

Não

Nenhum

Um valor mais alto aumenta a aleatoriedade, enquanto um valor mais baixo aumenta o determinismo.

stop

Uma sequência de parada.

String

Não

Nenhum

O modelo interrompe a geração de conteúdo quando a string especificada está prestes a ser produzida.

max-tokens

O número máximo de tokens que o modelo pode gerar.

Integer

Não

Nenhum

Limitado pelas capacidades do modelo.

presence-penalty

Controla a repetição de tokens.

Double

Não

Nenhum

Intervalo válido: -2,0 a 2,0. Valores positivos penalizam tokens já presentes no texto, tornando o modelo mais propenso a abordar novos tópicos.

n

O número de saídas a gerar para cada entrada.

int

Não

Nenhum

-

seed

Uma semente de número aleatório para a resposta do modelo.

Long

Não

Nenhum

Quando especificado, a plataforma do modelo tenta realizar amostragem determinística, de modo que requisições repetidas com a mesma semente e os mesmos parâmetros retornem o mesmo resultado sempre que possível.

response-format

O formato do valor de retorno.

String

Não

text

Valores válidos:

  • text

  • json_object

extra-body

Corpo HTTP adicional para a requisição.

String

Não

Nenhum

Deve ser uma string no formato JSON. Para mais detalhes, consulte extra-body description.

user-prompt

O prompt de usuário para a requisição.

String

Não

Nenhum

Semelhante ao system-prompt, porém enviado com a função de usuário.

embeddings

Tarefas de embedding de texto utilizam embeddings. Os seguintes parâmetros são compatíveis:

Parâmetro

Descrição

Tipo de dados

Obrigatório

Valor padrão

Observações

dimension

A dimensão dos vetores de saída.

Integer

Não

Nenhum

As dimensões compatíveis dependem do modelo específico. Valores comuns são 1024, 768 e 512.

multimodal-embedding

Tarefas de embedding multimodal utilizam multimodal-embedding para converter entradas de texto, imagem ou combinações de texto e imagem em vetores. Os seguintes parâmetros são compatíveis:

Parâmetro

Descrição

Tipo de dados

Obrigatório

Valor padrão

Observações

dimension

A dimensão dos vetores de saída.

Integer

Não

Nenhum

As dimensões compatíveis dependem do modelo específico. Valores comuns são 1024, 768 e 512.

Exemplo 1: Apenas imagens

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'
);

Exemplo 2: Texto e imagem

A fusão de texto e imagem aplica-se apenas a modelos cuja capacidade de fusão é habilitada por enable_fusion, conforme descrito em Multimodal fused vectors. O Flink determina se a fusão deve ser habilitada com base no número de colunas de entrada do modelo. Nenhum parâmetro adicional é necessário.

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'
);

Descrição do extra-body

O valor de extra-body é uma string no formato JSON usada para adicionar parâmetros extras ao corpo da requisição do modelo. Os parâmetros disponíveis dependem do provedor de service do modelo. A seguir estão os parâmetros comuns compatíveis com o Alibaba Cloud Model Studio (incluindo, mas não se limitando a):

Parâmetro

Tipo

Descrição

top_k

Integer

O tamanho do conjunto de candidatos para amostragem. Um valor maior aumenta a aleatoriedade. Para mais detalhes, consulte Request body.

enable_thinking

Boolean

Indica se o modo de raciocínio profundo deve ser ativado (aplica-se a modelos compatíveis com thinking, como o Qwen3). Para mais detalhes, consulte Deep thinking.

thinking_budget

Integer

O comprimento máximo de tokens para o processo de raciocínio. Entra em vigor somente quando enable_thinking é true . Para mais detalhes, consulte Limit thinking length.

translation_options

Object

Parâmetros de tradução para modelos de tradução. Para mais detalhes, consulte Translation capability.

enable_search

Boolean

Indica se resultados de pesquisa na internet devem ser utilizados para auxiliar a geração de respostas. O padrão é false . Para mais detalhes, consulte Web search.

search_options

Object

Configuração da estratégia de pesquisa web. Entra em vigor somente quando enable_search é true . Para mais detalhes, consulte Set search scale strategy.

Exemplo

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

No editor Data Query, execute um dos comandos a seguir.

  • Liste os nomes dos modelos registrados:

    SHOW MODELS [ ( FROM | IN ) [catalog_name.]database_name ];
  • Exiba a instrução usada para crie um modelo:

    SHOW CREATE MODEL [catalog_name.][db_name.]model_name;
  • Exiba o esquema de entrada e saída de um modelo:

    DESCRIBE MODEL [catalog_name.][db_name.]model_name;

Exemplo

SHOW MODELS;

-- RESULT
--+------------+
--| model name |
--+------------+
--|          m |
--+------------+

DESCRIBE MODEL m;

-- RESULT
-- +---------+--------+------+----------+
-- |    name |   type | null | is input |
-- +---------+--------+------+----------+
-- | content | String | TRUE |     TRUE |
-- |   label | BIGINT | TRUE |    FALSE |
-- +---------+--------+------+----------+

Modifique modelos

No editor Data Query, execute o comando a seguir.

ALTER MODEL [IF EXISTS] [catalog_name.][db_name.]model_name {
  RENAME TO new_table_name
  SET (key1=val1, ...)
  RESET (key1, ...)
}

Exemplos

  • Renomeie um modelo registrado:

    ALTER MODEL m RENAME TO m1; -- Renames the model to m1.
  • Modifique um parâmetro do modelo:

    ALTER MODEL m SET ('endpoint' = '<Your_Endpoint>'); -- Adjusts the endpoint path.
  • Redefina um parâmetro do modelo para o valor padrão:

    ALTER MODEL m RESET ('endpoint'); -- Resets the endpoint path.

Excluir modelos

No editor Data Query, execute o comando a seguir.

DROP [TEMPORARY] MODEL [IF EXISTS] [catalog_name.][db_name.]model_name

Exemplo

DROP MODEL m;