All Products
Search
Document Center

Realtime Compute for Apache Flink:AI_EXTRACT

Last Updated:Jul 18, 2026

AI_EXTRACT mengekstraksi informasi terstruktur dari teks mentah menggunakan large language model (LLM).

Prasyarat

Sebelum menggunakan AI_EXTRACT, daftarkan layanan model terlebih dahulu. Untuk detailnya, lihat Model Settings.

Tipe output model harus berupa VARIANT.

Sintaksis

AI_EXTRACT(
  MODEL => MODEL <MODEL NAME>,
  INPUT => <INPUT COLUMN NAME>,
  EXTRACT_SCHEMA => <EXTRACT SCHEMA>
)

AI_EXTRACT mendukung argumen bernama (seperti di atas) maupun argumen posisional. Lihat Contoh untuk kedua gaya pemanggilan tersebut.

Parameter

Parameter Data type Description
MODEL <MODEL NAME> MODEL Nama layanan model yang telah didaftarkan.
<INPUT COLUMN NAME> STRING Kolom yang berisi teks mentah tempat informasi akan diekstraksi.
<EXTRACT_SCHEMA> STRING String JSON yang mendefinisikan bidang-bidang yang akan diekstraksi beserta tipe datanya. Harus berupa konstanta.

Format EXTRACT_SCHEMA

EXTRACT_SCHEMA menerima objek JSON di mana setiap kunci adalah nama bidang yang akan diekstraksi dan setiap nilai adalah tipe data target:

{"<field_name>": "<data_type>", ...}

Contoh skema:

{"name": "string", "age": "int", "address": "string", "phone": "string"}

Output

Column Data type Description
extracted_json STRING Bidang-bidang yang diekstraksi dalam bentuk string JSON.

Contoh

Contoh ini mengekstraksi informasi pribadi (nama, usia, alamat, dan nomor telepon) dari kolom teks menggunakan model Qwen.

Langkah 1: Daftarkan model

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

Ganti placeholder berikut:

Placeholder Description

Langkah 2: Panggil AI_EXTRACT

CREATE TEMPORARY VIEW infos(id, description)
AS VALUES (1, 'Xiao Ming is 18 years old and lives in Hangzhou. His phone number is ******.');

-- Named argument style
SELECT id, extracted_json
FROM infos,
LATERAL TABLE(
  AI_EXTRACT(
    MODEL => MODEL general_model,
    INPUT => description,
    EXTRACT_SCHEMA => '{"name":"string","phone":"string","address":"string","age":"int"}'));

-- Positional argument style
SELECT id, extracted_json
FROM infos,
LATERAL TABLE(
  AI_EXTRACT(
    MODEL general_model,
    description,
    '{"name":"string","phone":"string","address":"string","age":"int"}'));

Output:

id extracted_json
1 {"address":"Hangzhou","age":18,"name":"Xiao Ming","phone":"******"}

Batasan

  • Hanya didukung oleh mesin komputasi waktu nyata Ververica Runtime (VVR) 11.4 atau yang lebih baru.

  • Trafik dibatasi oleh platform layanan model. Ketika trafik mencapai batas akses platform, tekanan balik (backpressure) terjadi pada operator Flink yang digunakan dalam pernyataan AI_EXTRACT. Pembatasan laju yang parah dapat memicu timeout dan menyebabkan Flink job melakukan restart.