O plugin Discourse AI oferece suporte para solicitar classificação de emoção/sentimento de novas postagens, que é armazenada no banco de dados e pode ser usada em relatórios e painéis de administração.
O Discourse AI suporta dois tipos de classificação, cada um exigindo seu próprio modelo:
- Sentimento — classifica as postagens como positivas, negativas ou neutras (usando
cardiffnlp/twitter-roberta-base-sentiment-latest) - Emoção — classifica as postagens em 28 rótulos de emoção, como alegria, raiva, surpresa, etc. (usando
SamLowe/roberta-base-go_emotions)
Para obter dados de sentimento e emoção em seus painéis, você precisa executar ambos os modelos.
Executando com HuggingFace TEI
A HuggingFace oferece uma imagem de contêiner incrível que permite que você comece rapidamente.
Modelo de 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
Isso deve colocar você em execução com uma instância local de cardiffnlp/twitter-roberta-base-sentiment-latest, um modelo aberto que pode classificar postagens em positivas/negativas/neutras.
Você pode verificar se está funcionando com:
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
-d "{ \"inputs\": \"I am happy\" }"
O que deve retornar um array de confiança para cada rótulo sob operação normal.
Modelo de emoção
Para também obter classificação de emoção, execute um segundo contêiner com o modelo de emoção:
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
Modelos suportados
- cardiffnlp/twitter-roberta-base-sentiment-latest · Hugging Face — sentimento (positivo/negativo/neutro)
- SamLowe/roberta-base-go_emotions · Hugging Face — emoção (28 rótulos de emoção)
Tornando disponível para sua instância do Discourse
Na maioria das vezes, você executará isso em um servidor dedicado devido à aceleração por GPU. Ao fazer isso, recomendo executar um proxy reverso, fazer a terminação TLS e proteger o ponto de extremidade para que ele só possa ser conectado pela sua instância do Discourse.
Configurando o Discourse AI
O Discourse AI inclui configurações de site para configurar o servidor de inferência para modelos de código aberto. Você deve apontá-lo para seu servidor usando a configuração ai_sentiment_model_configs.
Essa configuração aceita um array JSON de configurações de modelo. Cada entrada requer:
| Campo | Descrição |
|---|---|
model_name |
O ID do modelo do HuggingFace (por exemplo, cardiffnlp/twitter-roberta-base-sentiment-latest) |
endpoint |
A URL da sua instância TEI (por exemplo, https://your-server:8081) |
api_key |
Chave de API para o ponto de extremidade (pode ser deixada em branco se não for necessária) |
Para obter painéis de sentimento e emoção, adicione uma entrada para cada modelo que você está executando. Por exemplo, se você estiver executando ambos os modelos localmente:
- Entrada 1: model_name
cardiffnlp/twitter-roberta-base-sentiment-latest, endpointhttps://your-server:8081 - Entrada 2: model_name
SamLowe/roberta-base-go_emotions, endpointhttps://your-server:8082
Depois disso, habilite a classificação alternando ai_sentiment_enabled.
