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.
Limitations
Ververica Runtime (VVR) 11.4 ou version ultérieure est requis.
Pour utiliser le service Flink AI (modèles intégrés), vous devez disposer de VVR 11.7 ou version 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 la limite de taux de la plateforme de modèles. Lorsque 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 d'entrée
| Paramètre | Type de données | Description |
|---|---|---|
MODEL <model_name> |
MODEL | Le 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 | La colonne de texte à analyser. |
Sorties
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 dans le libellé prédit, compris entre 0.0 et 1.0. |
Exemple
L'exemple suivant utilise un modèle intégré Flink et la fonction AI_SENTIMENT pour classifier le sentiment des commentaires de films.
Données de test
| id | movie_name | comment | actual_label |
|---|---|---|---|
| 1 | Good Stuff | J'ai adoré la scène où l'enfant devinait les sons. C'était l'un des récits les plus romantiques que j'aie vus au cinéma. Très doux et plein d'amour. | positive |
| 2 | Dumpling Queen | Rien de remarquable. | negative |
Instruction 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 |