全部产品
Search
文档中心

Realtime Compute for Apache Flink:AI_EXTRACT

更新时间:Mar 10, 2026

Topik ini menjelaskan cara menggunakan AI_EXTRACT untuk mengekstraksi informasi terstruktur dengan Large Language Models (LLM).

Batasan

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

  • Throughput operator Flink yang digunakan dalam pernyataan AI_EXTRACT dibatasi oleh platform layanan model. Jika lalu lintas mencapai batas akses platform, tekanan balik (backpressure) terjadi pada operator tersebut. Pembatasan laju yang parah dapat memicu timeout dan menyebabkan Pekerjaan Flink melakukan restart.

Sintaksis

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

Parameter input

Parameter

Tipe data

Deskripsi

MODEL <MODEL NAME>

MODEL

Nama layanan model yang telah didaftarkan. Untuk informasi selengkapnya, lihat Model Settings untuk mendaftarkan layanan model.

Catatan: Tipe output model harus berupa VARIANT.

<INPUT COLUMN NAME>

STRING

Teks mentah dari mana model mengekstraksi informasi.

<EXTRACT SCHEMA>

STRING

String JSON yang menjelaskan skema data yang diekstraksi.

Catatan: Parameter ini harus berupa konstanta.

Output

Parameter

Tipe data

Deskripsi

extracted_json

STRING

Informasi terstruktur yang diekstraksi.

Contoh

Data uji

id

description

1

Xiao Ming is 18 years old and lives in Hangzhou. His phone number is ******.

Pernyataan uji

Contoh ini membuat model Qwen-Plus dan menggunakan AI_EXTRACT untuk mengekstraksi informasi pengguna.

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, description)
AS VALUES (1, 'Xiao Ming is 18 years old and lives in Hangzhou. His phone number is ******.');

-- Gunakan argumen posisional untuk memanggil AI_EXTRACT
SELECT id, extracted_json
FROM infos,
LATERAL TABLE(
  AI_EXTRACT(
    MODEL general_model, 
    description, 
    '{"name":"string","phone":"string","address":"string","age":"int"}'));  
-- Gunakan argumen bernama untuk memanggil AI_EXTRACT
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"}'));

Hasil output

id

extracted_json

1

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