El plugin Discourse AI tiene soporte para solicitar la clasificación de emoción/sentimiento de las nuevas publicaciones, la cual se almacena en la base de datos y puede utilizarse en informes y paneles de administración.
Discourse AI admite dos tipos de clasificación, cada uno requiere su propio modelo:
- Sentimiento — clasifica las publicaciones como positivas, negativas o neutrales (utilizando
cardiffnlp/twitter-roberta-base-sentiment-latest) - Emoción — clasifica las publicaciones en 28 etiquetas de emoción como alegría, ira, sorpresa, etc. (utilizando
SamLowe/roberta-base-go_emotions)
Para obtener datos de sentimiento y emoción en sus paneles, debe ejecutar ambos modelos.
Ejecución con HuggingFace TEI
HuggingFace proporciona una increíble imagen de contenedor que puede hacer que comience rápidamente.
Modelo de sentimiento
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
Esto debería ponerlo en funcionamiento con una instancia local de cardiffnlp/twitter-roberta-base-sentiment-latest, un modelo abierto que puede clasificar publicaciones como positivas/negativas/neutrales.
Puede comprobar si está funcionando con
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
-d "{ \"inputs\": \"I am happy\" }"
Lo que debería devolver una matriz de confianza para cada etiqueta bajo un funcionamiento normal.
Modelo de emoción
Para obtener también la clasificación de emoción, ejecute un segundo contenedor con el modelo de emoción:
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 compatibles
- cardiffnlp/twitter-roberta-base-sentiment-latest · Hugging Face — sentimiento (positivo/negativo/neutral)
- SamLowe/roberta-base-go_emotions · Hugging Face — emoción (28 etiquetas de emoción)
Ponerlo a disposición de su instancia de Discourse
La mayoría de las veces, lo ejecutará en un servidor dedicado debido a la aceleración de la GPU. Al hacerlo, recomiendo ejecutar un proxy inverso, realizar la terminación TLS y proteger el endpoint para que solo pueda ser conectado por su instancia de Discourse.
Configuración de Discourse AI
Discourse AI incluye configuraciones del sitio para configurar el servidor de inferencia para modelos de código abierto. Debe apuntarlo a su servidor utilizando la configuración ai_sentiment_model_configs.
Esta configuración acepta una matriz JSON de configuraciones de modelo. Cada entrada requiere:
| Campo | Descripción |
|---|---|
model_name |
El ID del modelo de HuggingFace (ej. cardiffnlp/twitter-roberta-base-sentiment-latest) |
endpoint |
La URL de su instancia de TEI (ej. https://your-server:8081) |
api_key |
Clave API para el endpoint (se puede dejar en blanco si no es necesario) |
Para obtener paneles de sentimiento y emoción, añada una entrada por cada modelo que esté ejecutando. Por ejemplo, si está ejecutando ambos modelos localmente:
- Entrada 1:
model_namecardiffnlp/twitter-roberta-base-sentiment-latest,endpointhttps://your-server:8081 - Entrada 2:
model_nameSamLowe/roberta-base-go_emotions,endpointhttps://your-server:8082
Después de eso, habilite la clasificación activando ai_sentiment_enabled.
