Das Plugin Discourse AI unterstützt die Anforderung einer Emotions-/Stimmungsklassifizierung neuer Beiträge, die in der Datenbank gespeichert wird und in Berichten und Admin-Dashboards verwendet werden kann.
Discourse AI unterstützt zwei Arten der Klassifizierung, die jeweils ein eigenes Modell erfordern:
- Stimmung (Sentiment) – Klassifiziert Beiträge als positiv, negativ oder neutral (unter Verwendung von
cardiffnlp/twitter-roberta-base-sentiment-latest) - Emotion – Klassifiziert Beiträge anhand von 28 Emotions-Labels wie Freude, Wut, Überraschung usw. (unter Verwendung von
SamLowe/roberta-base-go_emotions)
Um sowohl Stimmungs- 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.
Stimmungsmodell
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
Dies sollte Sie mit einer lokalen Instanz von cardiffnlp/twitter-roberta-base-sentiment-latest zum Laufen bringen, 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\" }"
Was unter normalem Betrieb ein Array von Konfidenzwerten für jedes Label zurückgeben sollte.
Emotionsmodell
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 — Stimmung (positiv/negativ/neutral)
- SamLowe/roberta-base-go_emotions · Hugging Face — Emotion (28 Emotions-Labels)
Bereitstellen für Ihre Discourse-Instanz
Meistens werden Sie dies aufgrund der GPU-Beschleunigung auf einem dedizierten Server ausführen. Wenn Sie dies tun, empfehle ich die Verwendung eines Reverse-Proxys, die Durchführung einer TLS-Terminierung und die Absicherung des Endpunkts, sodass er nur von Ihrer Discourse-Instanz verbunden werden kann.
Konfigurieren von Discourse AI
Discourse AI enthält Site-Einstellungen zur Konfiguration des Inferenzservers für Open-Source-Modelle. Sie sollten auf Ihren Server verweisen, indem Sie die Einstellung ai_sentiment_model_configs verwenden.
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, wenn nicht erforderlich) |
Um sowohl Sentiment- als auch Emotions-Dashboards zu erhalten, fügen Sie einen Eintrag für jedes 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
Danach aktivieren Sie die Klassifizierung, indem Sie ai_sentiment_enabled umschalten.
