All Products
Search
Document Center

Realtime Compute for Apache Flink:AI_MASK

Last Updated:Mar 10, 2026

Topik ini menjelaskan cara menggunakan AI_MASK untuk menyamarkan data dengan Large Language Models (LLMs).

Batasan

  • Hanya didukung pada Ververica Runtime (VVR) 11.4 atau versi yang lebih baru.

  • Throughput operator Flink yang digunakan dalam pernyataan AI_MASK dibatasi oleh pembatasan laju pada platform layanan model. Ketika lalu lintas mencapai batas akses platform, terjadi tekanan balik pada pekerjaan Flink, sehingga operator AI_MASK menjadi bottleneck. Dalam kasus parah, operator terkait dapat mengalami timeout dan menyebabkan pekerjaan dimulai ulang.

Sintaksis

AI_MASK(
  MODEL => MODEL <MODEL NAME>, 
  INPUT => <INPUT COLUMN NAME>,
  MASK_ENTITIES => <MASK ENTITIES>
)

Parameter input

Parameter

Tipe data

Deskripsi

MODEL <MODEL NAME>

MODEL

Nama layanan model yang telah didaftarkan. Untuk informasi selengkapnya, lihat Pengaturan model.

Catatan: Model harus mengembalikan output bertipe VARIANT.

<INPUT COLUMN NAME>

STRING

Teks mentah untuk dianalisis oleh model.

<MASK ENTITIES>

ARRAY<STRING>

Entitas yang akan disamarkan.

Catatan: Parameter ini harus berupa konstanta.

Output

Parameter

Tipe data

Deskripsi

masked_text

STRING

Teks yang telah disamarkan.

detected_entities

ARRAY<STRING>

Entitas yang terdeteksi.

Contoh

Data uji

id

content

1

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

Pernyataan uji

Pernyataan SQL berikut membuat model Qwen-Plus dan menggunakan AI_MASK untuk menyamarkan data.

CREATE TEMPORARY MODEL general_model
INPUT (`input` STRING)
OUTPUT (`content` VARIANT)
WITH (
    'provider' = 'openai-compat',
    'endpoint'='<YOUR ENDPOINT>',
    'apiKey' = '<YOUR KEY>',
    'model' = 'qwen-plus'
);

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

-- Gunakan argumen posisional untuk memanggil AI_MASK
SELECT id, masked_text, detected_entities
FROM infos,
LATERAL TABLE(
  AI_MASK(
    MODEL general_model, 
    content, 
    ARRAY['name']
    ));

-- Gunakan argumen bernama untuk memanggil AI_MASK
SELECT id, masked_text, detected_entities
FROM infos,
LATERAL TABLE(
  AI_MASK(
    MODEL => MODEL general_model, 
    INPUT => content, 
    MASK_ENTITIES => ARRAY['name']
    ));

Hasil output

id

masked_text

detected_entities

1

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

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