Topik ini menjelaskan cara menggunakan fungsi AI_SENTIMENT untuk analisis sentimen dengan Large Language Models (LLMs).
Batasan
Fungsi ini hanya didukung oleh Ververica Runtime (VVR) 11.4 dan versi Mesin komputasi waktu nyata yang lebih baru.
Throughput operator Flink dalam pernyataan AI_SENTIMENT dibatasi oleh rate limiting pada platform model. Jika batas traffic platform terlampaui, pekerjaan Flink dapat mengalami backpressure sehingga operator menjadi bottleneck. Dalam kasus parah, hal ini dapat memicu error timeout operator dan menyebabkan pekerjaan restart.
Sintaksis
AI_SENTIMENT(
MODEL => MODEL <MODEL NAME>,
INPUT => <INPUT COLUMN NAME>
)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: Saat ini, tipe output model harus berupa VARIANT. |
<INPUT COLUMN NAME> | STRING | Data yang akan dianalisis oleh model. |
Output
Parameter | Tipe Data | Deskripsi |
score | DOUBLE | Skor sentimen yang ditentukan oleh model (antara -1,0 hingga 1,0):
|
label | STRING | Label sentimen (positive/negative/neutral). |
confidence | DOUBLE | Tingkat kepercayaan yang dihasilkan oleh model. |
Contoh
Data Uji
id | movie_name | comment | actual_label |
1 | Good Stuff | I loved the part where the child guessed sounds. It was one of the most romantic narratives I've seen in a movie. Very gentle and full of love. | POSITIVE |
2 | Dumpling Queen | Nothing remarkable. | NEGATIVE |
Pernyataan Uji
Pernyataan SQL berikut membuat model Qwen-Plus dan menggunakan fungsi AI_SENTIMENT untuk memprediksi klasifikasi sentimen dari komentar film.
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 movie_comment(id, movie_name, user_comment, actual_label)
AS VALUES (1, 'Good Stuff', 'I loved the part where the child guessed sounds. It was one of the most romantic narratives I\'ve seen in a movie. Very gentle and full of love.', 'positive'), (2, 'Dumpling Queen', 'Nothing remarkable.', 'negative');
-- Gunakan argumen posisional untuk memanggil AI_SENTIMENT
SELECT id, movie_name, actual_label, score, label, confidence FROM movie_comment,
LATERAL TABLE(
AI_SENTIMENT(
MODEL general_model, user_comment));
-- Gunakan argumen bernama untuk memanggil AI_SENTIMENT
SELECT id, movie_name, actual_label, score, label, confidence FROM movie_comment,
LATERAL TABLE(
AI_SENTIMENT(
MODEL => MODEL general_model,
INPUT => user_comment)); Hasil Output
label yang diprediksi sesuai dengan actual_label.
id | movie_name | actual_label | score | label | confidence |
1 | Good Stuff | positive | 0,8 | positive | 0,95 |
2 | Dumpling Queen | negative | -1,0 | negative | 0,95 |