All Products
Search
Document Center

Realtime Compute for Apache Flink:AI_SENTIMENT

Last Updated:Mar 10, 2026

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):

  • -1,0: Sangat negatif

  • -0,5: Cukup negatif

  • -0,0: Netral

  • 0,5: Cukup positif

  • 1,0: Sangat positif

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