Le plugin Discourse AI prend en charge la demande de classification des émotions et du sentiment des nouveaux messages. Ces données sont stockées dans la base de données et peuvent être utilisées dans les rapports et les tableaux de bord d’administration.
Discourse AI prend en charge deux types de classification, chacun nécessitant son propre modèle :
- Sentiment — classe les messages en positif, négatif ou neutre (en utilisant
cardiffnlp/twitter-roberta-base-sentiment-latest) - Émotion — classe les messages selon 28 étiquettes d’émotion telles que joie, colère, surprise, etc. (en utilisant
SamLowe/roberta-base-go_emotions)
Pour obtenir à la fois des données de sentiment et d’émotion dans vos tableaux de bord, vous devez exécuter les deux modèles.
Exécution avec HuggingFace TEI
HuggingFace propose une image de conteneur formidable qui vous permet de démarrer rapidement.
Modèle de sentiment
mkdir -p /opt/tei-sentiment-cache
docker run --rm --gpus all --shm-size 1g -p 8081:80 \
-v /opt/tei-sentiment-cache:/data \
ghcr.io/huggingface/text-embeddings-inference:latest \
--model-id cardiffnlp/twitter-roberta-base-sentiment-latest \
--revision refs/pr/30
Cela devrait vous permettre de démarrer une instance locale de cardiffnlp/twitter-roberta-base-sentiment-latest, un modèle open source capable de classer les messages en positif/négatif/neutre.
Vous pouvez vérifier son bon fonctionnement avec :
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
-d "{ \"inputs\": \"I am happy\" }"
En fonctionnement normal, cela devrait renvoyer un tableau de niveaux de confiance pour chaque étiquette.
Modèle d’émotion
Pour obtenir également une classification des émotions, exécutez un deuxième conteneur avec le modèle d’émotion :
mkdir -p /opt/tei-emotion-cache
docker run --rm --gpus all --shm-size 1g -p 8082:80 \
-v /opt/tei-emotion-cache:/data \
ghcr.io/huggingface/text-embeddings-inference:latest \
--model-id SamLowe/roberta-base-go_emotions
Modèles pris en charge
- cardiffnlp/twitter-roberta-base-sentiment-latest · Hugging Face — sentiment (positif/négatif/neutre)
- SamLowe/roberta-base-go_emotions · Hugging Face — émotion (28 étiquettes d’émotion)
Rendre le service disponible pour votre instance Discourse
La plupart du temps, vous l’exécuterez sur un serveur dédié en raison de l’accélération par GPU. Dans ce cas, je recommande d’utiliser un proxy inverse, de gérer la terminaison TLS et de sécuriser le point de connexion afin qu’il ne puisse être accédé que par votre instance Discourse.
Configuration de Discourse AI
Discourse AI inclut des paramètres de site pour configurer le serveur d’inférence pour les modèles open source. Vous devez le pointer vers votre serveur en utilisant le paramètre ai_sentiment_model_configs.
Ce paramètre accepte un tableau JSON de configurations de modèle. Chaque entrée nécessite :
| Champ | Description |
|---|---|
model_name |
L’ID du modèle HuggingFace (par exemple cardiffnlp/twitter-roberta-base-sentiment-latest) |
endpoint |
L’URL de votre instance TEI (par exemple https://your-server:8081) |
api_key |
Clé API pour le point de connexion (peut être laissée vide si non requise) |
Pour obtenir à la fois des tableaux de bord de sentiment et d’émotion, ajoutez une entrée pour chaque modèle que vous exécutez. Par exemple, si vous exécutez les deux modèles localement :
- Entrée 1 : model_name
cardiffnlp/twitter-roberta-base-sentiment-latest, endpointhttps://your-server:8081 - Entrée 2 : model_name
SamLowe/roberta-base-go_emotions, endpointhttps://your-server:8082
Ensuite, activez la classification en basculant ai_sentiment_enabled.
