Il plugin Discourse AI supporta la richiesta di classificazione dell’emozione/sentimento dei nuovi post, che viene memorizzata nel database e può essere utilizzata nei report e nelle dashboard di amministrazione.
Discourse AI supporta due tipi di classificazione, ciascuno dei quali richiede il proprio modello:
- Sentimento — classifica i post come positivi, negativi o neutri (utilizzando
cardiffnlp/twitter-roberta-base-sentiment-latest) - Emozione — classifica i post tra 28 etichette emotive come gioia, rabbia, sorpresa, ecc. (utilizzando
SamLowe/roberta-base-go_emotions)
Per ottenere dati sia sul sentimento che sull’emozione nelle tue dashboard, è necessario eseguire entrambi i modelli.
Esecuzione con HuggingFace TEI
HuggingFace offre un’immagine container fantastica che ti permette di iniziare rapidamente.
Modello di sentimento
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
Questo ti permetterà di avviare un’istanza locale di cardiffnlp/twitter-roberta-base-sentiment-latest, un modello open source in grado di classificare i post in positivo/negativo/neutro.
Puoi verificare se funziona con
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
-d "{ \"inputs\": \"I am happy\" }"
Il quale, in condizioni normali, restituirà un array di confidenza per ogni etichetta.
Modello di emozione
Per ottenere anche la classificazione delle emozioni, esegui un secondo container con il modello di emozione:
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
Modelli supportati
- cardiffnlp/twitter-roberta-base-sentiment-latest · Hugging Face — sentimento (positivo/negativo/neutro)
- SamLowe/roberta-base-go_emotions · Hugging Face — emozione (28 etichette emotive)
Rendere disponibile per la tua istanza Discourse
Nella maggior parte dei casi, eseguirai questo servizio su un server dedicato a causa dell’accelerazione GPU. In tal caso, ti consigliamo di utilizzare un proxy inverso, gestire la terminazione TLS e proteggere l’endpoint in modo che possa essere connesso solo dalla tua istanza Discourse.
Configurazione di Discourse AI
Discourse AI include impostazioni del sito per configurare il server di inferenza per modelli open source. Dovresti puntarlo al tuo server utilizzando l’impostazione ai_sentiment_model_configs.
Questa impostazione accetta un array JSON di configurazioni del modello. Ogni voce richiede:
| Campo | Descrizione |
|---|---|
model_name |
L’ID del modello HuggingFace (ad esempio cardiffnlp/twitter-roberta-base-sentiment-latest) |
endpoint |
L’URL della tua istanza TEI (ad esempio https://your-server:8081) |
api_key |
Chiave API per l’endpoint (può essere lasciata vuota se non richiesta) |
Per ottenere dashboard sia sul sentimento che sull’emozione, aggiungi una voce per ciascun modello che stai eseguendo. Ad esempio, se stai eseguendo entrambi i modelli in locale:
- Voce 1: model_name
cardiffnlp/twitter-roberta-base-sentiment-latest, endpointhttps://your-server:8081 - Voce 2: model_name
SamLowe/roberta-base-go_emotions, endpointhttps://your-server:8082
Dopodiché, abilita la classificazione attivando ai_sentiment_enabled.}
