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
endpointnão é obrigatório. O sistema seleciona automaticamente o endpoint de service apropriado.O parâmetro
api-keynã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:
|
|
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 |
|
Valores válidos:
|
|
error-handling-strategy |
A estratégia de tratamento de erros nas requisições ao modelo. |
String |
Não |
retry |
Valores válidos:
|
|
retry-num |
O número de tentativas de reenvio. |
int |
Não |
100 |
Entra em vigor somente quando |
|
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 |
|
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:
|
|
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 |
|
|
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 |
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:
|
|
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 |
|
|
Integer |
O tamanho do conjunto de candidatos para amostragem. Um valor maior aumenta a aleatoriedade. Para mais detalhes, consulte Request body. |
|
|
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. |
|
|
Integer |
O comprimento máximo de tokens para o processo de raciocínio. Entra em vigor somente quando |
|
|
Object |
Parâmetros de tradução para modelos de tradução. Para mais detalhes, consulte Translation capability. |
|
|
Boolean |
Indica se resultados de pesquisa na internet devem ser utilizados para auxiliar a geração de respostas. O padrão é |
|
|
Object |
Configuração da estratégia de pesquisa web. Entra em vigor somente quando |
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;