Il plugin Discourse AI supporta la richiesta di classificazione delle emozioni/del sentiment 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, ognuno dei quali richiede il proprio modello:
- Sentiment — classifica i post come positivi, negativi o neutri (utilizzando
cardiffnlp/twitter-roberta-base-sentiment-latest) - Emotion — classifica i post attraverso 28 etichette emotive come gioia, rabbia, sorpresa, ecc. (utilizzando
SamLowe/roberta-base-go_emotions)
Per ottenere sia i dati di sentiment che di emozione nelle tue dashboard, devi eseguire entrambi i modelli.
Esecuzione con HuggingFace TEI
HuggingFace fornisce un’eccellente immagine container che può farti partire velocemente.
Modello 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
Questo dovrebbe farti partire con un’istanza locale di cardiffnlp/twitter-roberta-base-sentiment-latest, un modello open che può 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 dovrebbe restituire un array di confidenza per ogni etichetta durante il normale funzionamento.
Modello Emotion
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 — sentiment (positivo/negativo/neutro)
- SamLowe/roberta-base-go_emotions · Hugging Face — emozione (28 etichette emotive)
Rendere disponibile per la tua istanza Discourse
La maggior parte delle volte, eseguirai questo su un server dedicato a causa dell’accelerazione della GPU. In tal caso, consiglio di eseguire un proxy inverso, terminare 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 i modelli open source. Dovresti puntare 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 (es. cardiffnlp/twitter-roberta-base-sentiment-latest) |
endpoint |
L’URL della tua istanza TEI (es. https://your-server:8081) |
api_key |
Chiave API per l’endpoint (può essere lasciata vuota se non richiesta) |
Per ottenere sia le dashboard di sentiment che di emozione, aggiungi una voce per ciascun modello che stai eseguendo. Ad esempio, se stai eseguendo entrambi i modelli localmente:
- 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
Successivamente, abilita la classificazione attivando ai_sentiment_enabled.
