Todos os produtos
Search
Central de documentação

Realtime Compute for Apache Flink:AI_MASK

Última atualização: Jul 24, 2026

Detecta e mascara entidades nomeadas em texto usando um modelo de linguagem grande (LLM). Forneça uma coluna de texto e uma lista de tipos de entidade para que a função retorne o texto mascarado e a lista de entidades detectadas.

Limitações

  • Requer Ververica Runtime (VVR) 11.4 ou posterior.

  • O uso do service Flink AI (modelos integrados) exige VVR 11.7 ou posterior e a ativação do service Flink AI. Para obter mais detalhes, consulte Flink AI service (built-in models).

  • A política de limitação de taxa da plataforma de service de modelos restringe o throughput. Se o tráfego atingir o limite de acesso da plataforma, ocorrerá backpressure no job do Flink e o AI_MASK se tornará o gargalo. Em casos graves, os operadores podem expirar e reiniciar o job do Flink.

Sintaxe

AI_MASK(
  MODEL => MODEL <model_name>,
  INPUT => <input_column>,
  MASK_ENTITIES => <mask_entities>
)

Esta função aceita argumentos nomeados (mostrados acima) e posicionais. Consulte Exemplos.

Parâmetros

Parâmetro

Tipo de dados

Descrição

MODEL <model_name>

MODEL

Nome do service de modelo registrado. Para obter mais informações, consulte Model settings. O modelo deve retornar saída do tipo VARIANT.

<input_column>

STRING

Coluna de texto para análise.

<mask_entities>

ARRAY\

Tipos de entidade para detecção e mascaramento. Este parâmetro deve ser uma constante.

Saídas

O AI_MASK retorna uma linha por entrada com as seguintes colunas:

Coluna

Tipo de dados

Descrição

masked_text

STRING

Texto de entrada com as entidades detectadas substituídas por placeholders entre colchetes, como [NAME].

detected_entities

ARRAY\

Entidades detectadas no texto de entrada. Cada elemento é uma string JSON com dois campos: entity (fragmento de texto original) e type (rótulo do tipo de entidade), como {"entity":"Timmo","type":"name"}.

Exemplos

O exemplo abaixo referencia um modelo integrado do Flink, carrega dados de amostra e mascara nomes de pessoas com sintaxe de argumentos posicionais e nomeados.

Dados de teste

id

content

1

Timmo really loves studying. He reads study materials whenever he has free time.

Instrução SQL

CREATE TEMPORARY MODEL general_model
INPUT (`input` STRING)
OUTPUT (`content` VARIANT)
WITH (
    'provider' = 'openai-compat',
    'task' = 'chat/completions',
    'model' = 'qwen3.6-flash'
);

CREATE TEMPORARY VIEW infos(id, content)
AS VALUES (1, 'Timmo really loves studying. He reads study materials whenever he has free time.');

-- Positional argument syntax
SELECT id, masked_text, detected_entities
FROM infos,
LATERAL TABLE(
  AI_MASK(
    MODEL general_model,
    content,
    ARRAY['name']
    ));

-- Named argument syntax
SELECT id, masked_text, detected_entities
FROM infos,
LATERAL TABLE(
  AI_MASK(
    MODEL => MODEL general_model,
    INPUT => content,
    MASK_ENTITIES => ARRAY['name']
    ));

Saída

id

masked_text

detected_entities

1

[NAME] really loves studying. He reads study materials whenever he has free time.

[{"entity":"Timmo","type":"name"}]