AI_CLASSIFY mengklasifikasikan teks menggunakan model bahasa besar (LLM). Panggil fungsi ini dari Flink SQL untuk menambahkan kolom klasifikasi berbasis LLM ke dalam pipeline streaming Anda—tanpa perlu menulis UDF.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Ververica Runtime (VVR) 11.4 atau versi yang lebih baru
-
Model terdaftar dengan tipe output VARIANT. Untuk detailnya, lihat Pengaturan model.
Sintaksis
AI_CLASSIFY(
MODEL => MODEL <model_name>,
INPUT => <input_column>,
LABELS => <labels>
)
Gaya argumen posisional maupun bernama sama-sama didukung. Lihat Contoh.
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
MODEL <model_name> |
MODEL | Model terdaftar yang akan digunakan. Tipe output model harus berupa VARIANT. |
<input_column> |
STRING | Kolom teks yang akan diklasifikasikan. |
<labels> |
ARRAY<STRING> | Label klasifikasi. Harus berupa konstanta. |
Nilai kembalian
AI_CLASSIFY mengembalikan satu baris per baris input dengan kolom-kolom berikut:
| Kolom | Tipe | Deskripsi |
|---|---|---|
category |
STRING | Label yang ditetapkan oleh model. |
confidence |
DOUBLE | Tingkat kepercayaan untuk label yang ditetapkan. |
Contoh
Contoh ini membuat model dan tampilan produk, lalu mengklasifikasikan setiap produk menggunakan gaya argumen posisional maupun bernama.
Data uji
| id | content | label |
|---|---|---|
| 1 | Sepatu Basket Li-Ning Way of Wade 10, Sepatu Basket Performa, Penyerapan Guncangan dan Rebound, Hitam/Merah | Digital |
| 2 | Apple iPhone 15 Pro Max 256GB, Space Black, Ponsel 5G, Chip A17 Pro, Bingkai Titanium | Pakaian |
SQL
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 products(id, content)
AS VALUES
(1, 'Li-Ning Way of Wade 10 Basketball Shoes, Performance Basketball Shoes, Shock Absorption and Rebound, Black/Red'),
(2, 'Apple iPhone 15 Pro Max 256GB, Space Black, 5G Phone, A17 Pro Chip, Titanium Frame');
-- Gaya argumen posisional
SELECT id, category, confidence
FROM products,
LATERAL TABLE(
AI_CLASSIFY(MODEL general_model, content, ARRAY['Digital', 'Clothing']));
-- Gaya argumen bernama
SELECT id, category, confidence
FROM products,
LATERAL TABLE(
AI_CLASSIFY(
MODEL => MODEL general_model,
INPUT => content,
LABELS => ARRAY['Digital', 'Clothing']));
Ganti placeholder berikut dengan nilai aktual Anda:
| Placeholder | Deskripsi |
|---|---|
<YOUR ENDPOINT> |
Titik akhir layanan model Anda |
<YOUR KEY> |
Kunci API untuk layanan model Anda |
Output
| id | category | confidence |
|---|---|---|
| 1 | Pakaian | 0,95 |
| 2 | Digital | 0,99 |
Catatan penggunaan
-
`LABELS` harus berupa konstanta. Array label dinamis atau hasil komputasi tidak didukung.
Batasan
-
Memerlukan Ververica Runtime (VVR) 11.4 atau versi yang lebih baru.
-
Throughput operator
AI_CLASSIFYtunduk pada pembatasan laju Alibaba Cloud Model Studio. Ketika batas laju untuk suatu model tercapai, pekerjaan Flink mengalami tekanan balik dengan operatorAI_CLASSIFYsebagai bottleneck. Dalam beberapa kasus, error timeout dan restart pekerjaan dapat terjadi.
Langkah selanjutnya
-
Pengaturan model: Daftarkan dan konfigurasikan model untuk digunakan dengan
AI_CLASSIFY.