Le plugin Discourse AI prend en charge la demande de classification des émotions/sentiments des nouveaux messages, qui est stockée dans la base de données et peut être utilisée 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 comme positifs, négatifs ou neutres (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 les 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 fournit une image conteneur impressionnante qui peut vous permettre 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
Ceci devrait vous permettre de démarrer avec une instance locale de cardiffnlp/twitter-roberta-base-sentiment-latest, un modèle ouvert capable de classifier les messages en positif/négatif/neutre.
Vous pouvez vérifier si cela fonctionne avec
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
-d "{ \"inputs\": \"I am happy\" }"
Ce qui devrait retourner un tableau de confiance pour chaque étiquette en fonctionnement normal.
Modèle d’émotion
Pour obtenir également la 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)
Mise à disposition pour votre instance Discourse
La plupart du temps, vous exécuterez ceci sur un serveur dédié en raison de l’accélération GPU. Lorsque vous le faites, je vous recommande d’exécuter un proxy inverse, d’effectuer la terminaison TLS et de sécuriser le point de terminaison afin qu’il ne puisse être connecté que par votre instance Discourse.
Configuration de Discourse AI
Discourse AI inclut des paramètres du 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 terminaison (peut être laissé vide si non requis) |
Pour obtenir les 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
Après cela, activez la classification en basculant ai_sentiment_enabled.
