Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:AI_SENTIMENT

Dernière mise à jour :Sep 24, 2026

AI_SENTIMENT classe le sentiment d'une colonne de texte à l'aide d'un grand modèle de langage (LLM) et renvoie un score, un libellé et une valeur de confiance pour chaque ligne.

Limites

  • Ververica Runtime (VVR) version 11.4 ou ultérieure est requis.

  • Pour utiliser le service Flink AI (modèles intégrés), vous devez disposer de la version VVR 11.7 ou ultérieure et activer le service Flink AI. Pour plus de détails, consultez Service Flink AI (modèles intégrés).

  • Le débit est limité par le taux maximal autorisé par la plateforme de modèles. Si cette limite est dépassée, l'opérateur Flink subit une contre-pression et devient un goulot d'étranglement. Dans les cas graves, cela déclenche des erreurs de délai d'attente de l'opérateur et provoque le redémarrage du job.

Syntaxe

AI_SENTIMENT(
  MODEL => MODEL <model_name>,
  INPUT => <input_column>
)

Paramètres

Paramètre Type de données Description
MODEL <model_name> MODEL Service de modèle enregistré à utiliser. Enregistrez un service de modèle dans Paramètres du modèle. Le type de sortie du modèle doit être VARIANT.
<input_column> STRING Colonne de texte à analyser.

Valeurs de retour

AI_SENTIMENT renvoie une ligne pour chaque ligne d'entrée avec les colonnes suivantes :

Colonne Type de données Description
score DOUBLE Score de sentiment compris entre -1.0 et 1.0. Valeurs de référence : -1.0 extrêmement négatif, -0.5 modérément négatif, 0.0 neutre, 0.5 modérément positif, 1.0 extrêmement positif.
label STRING Classification du sentiment. Valeurs valides : positive, negative, neutral.
confidence DOUBLE Niveau de confiance du modèle concernant le libellé prédit, compris entre 0.0 et 1.0.

Exemples

L'exemple suivant utilise un modèle intégré Flink et la fonction AI_SENTIMENT pour classer le sentiment des commentaires de films.

Données de test

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

Instructions SQL

-- Register the model service
CREATE TEMPORARY MODEL general_model
INPUT (`input` STRING)
OUTPUT (`content` VARIANT)
WITH (
    'provider' = 'openai-compat',
    'task'      = 'chat/completions',
    'model'     = 'qwen3.6-flash'
);

-- Create a view with the test data
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');

-- Call AI_SENTIMENT using positional arguments
SELECT id, movie_name, actual_label, score, label, confidence
FROM movie_comment,
LATERAL TABLE(
  AI_SENTIMENT(MODEL general_model, user_comment));

-- Call AI_SENTIMENT using named arguments
SELECT id, movie_name, actual_label, score, label, confidence
FROM movie_comment,
LATERAL TABLE(
  AI_SENTIMENT(
    MODEL => MODEL general_model,
    INPUT => user_comment));

Sortie

Le label prédit correspond au actual_label pour les deux lignes.

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