Das Discourse AI-Plugin unterstützt die Anforderung einer Emotions- und Sentiment-Klassifizierung neuer Beiträge. Die Ergebnisse werden in der Datenbank gespeichert und können in Berichten sowie in Admin-Dashboards verwendet werden.
Discourse AI unterstützt zwei Arten der Klassifizierung, für die jeweils ein eigenes Modell erforderlich ist:
- Sentiment — Klassifiziert Beiträge als positiv, negativ oder neutral (unter Verwendung von
cardiffnlp/twitter-roberta-base-sentiment-latest) - Emotion — Klassifiziert Beiträge über 28 Emotionslabels wie Freude, Wut, Überraschung usw. (unter Verwendung von
SamLowe/roberta-base-go_emotions)
Um sowohl Sentiment- als auch Emotionsdaten in Ihren Dashboards zu erhalten, müssen Sie beide Modelle ausführen.
Ausführung mit HuggingFace TEI
HuggingFace bietet ein hervorragendes Container-Image, mit dem Sie schnell starten können.
Sentiment-Modell
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
Dadurch wird eine lokale Instanz von cardiffnlp/twitter-roberta-base-sentiment-latest gestartet, einem offenen Modell, das Beiträge in positiv/negativ/neutral klassifizieren kann.
Sie können überprüfen, ob es funktioniert, mit:
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
-d "{ \"inputs\": \"I am happy\" }"
Im Normalbetrieb sollte dies ein Array mit Konfidenzwerten für jedes Label zurückgeben.
Emotions-Modell
Um auch eine Emotionsklassifizierung zu erhalten, führen Sie einen zweiten Container mit dem Emotionsmodell aus:
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
Unterstützte Modelle
- cardiffnlp/twitter-roberta-base-sentiment-latest · Hugging Face — Sentiment (positiv/negativ/neutral)
- SamLowe/roberta-base-go_emotions · Hugging Face — Emotion (28 Emotionslabels)
Für Ihre Discourse-Instanz verfügbar machen
In den meisten Fällen führen Sie dies auf einem dedizierten Server aus, aufgrund der GPU-Beschleunigung. In diesem Fall empfehle ich den Einsatz eines Reverse Proxys, die TLS-Terminierung und die Sicherung des Endpunkts, sodass nur Ihre Discourse-Instanz eine Verbindung herstellen kann.
Konfiguration von Discourse AI
Discourse AI enthält Site-Einstellungen zur Konfiguration des Inference-Servers für Open-Source-Modelle. Sie sollten diesen mit der Einstellung ai_sentiment_model_configs auf Ihren Server verweisen.
Diese Einstellung akzeptiert ein JSON-Array von Modellkonfigurationen. Jeder Eintrag erfordert:
| Feld | Beschreibung |
|---|---|
model_name |
Die HuggingFace-Modell-ID (z. B. cardiffnlp/twitter-roberta-base-sentiment-latest) |
endpoint |
Die URL Ihrer TEI-Instanz (z. B. https://your-server:8081) |
api_key |
API-Schlüssel für den Endpunkt (kann leer gelassen werden, falls nicht erforderlich) |
Um sowohl Sentiment- als auch Emotions-Dashboards zu erhalten, fügen Sie einen Eintrag für jedes von Ihnen ausgeführte Modell hinzu. Wenn Sie beispielsweise beide Modelle lokal ausführen:
- Eintrag 1: model_name
cardiffnlp/twitter-roberta-base-sentiment-latest, endpointhttps://your-server:8081 - Eintrag 2: model_name
SamLowe/roberta-base-go_emotions, endpointhttps://your-server:8082
Aktivieren Sie danach die Klassifizierung, indem Sie ai_sentiment_enabled umschalten.
