El plugin Discourse AI admite la solicitud de clasificación de emociones/sentimientos de 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 de los cuales requiere su propio modelo:
- Sentimiento — clasifica las publicaciones como positivas, negativas o neutrales (usando
cardiffnlp/twitter-roberta-base-sentiment-latest) - Emoción — clasifica las publicaciones entre 28 etiquetas emocionales como alegría, ira, sorpresa, etc. (usando
SamLowe/roberta-base-go_emotions)
Para obtener datos de sentimiento y emoción en tus paneles, necesitas ejecutar ambos modelos.
Ejecución con HuggingFace TEI
HuggingFace ofrece una imagen de contenedor increíble que te permitirá empezar 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 \
--revision refs/pr/30
Esto debería ponerte en funcionamiento con una instancia local de cardiffnlp/twitter-roberta-base-sentiment-latest, un modelo abierto que puede clasificar las publicaciones en positivas/negativas/neutrales.
Puedes verificar si funciona con:
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
-d "{ \"inputs\": \"I am happy\" }"
Lo que debería devolver un array de confianza para cada etiqueta en condiciones normales de operación.
Modelo de emoción
Para obtener también la clasificación de emociones, ejecuta un segundo contenedor con el modelo de emociones:
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 admitidos
- cardiffnlp/twitter-roberta-base-sentiment-latest · Hugging Face — sentimiento (positivo/negativo/neutro)
- SamLowe/roberta-base-go_emotions · Hugging Face — emoción (28 etiquetas emocionales)
Ponerlo a disposición de tu instancia de Discourse
La mayoría de las veces, ejecutarás esto en un servidor dedicado debido a la aceleración por GPU. Al hacerlo, recomiendo ejecutar un proxy inverso, realizar la terminación TLS y asegurar el punto final para que solo pueda ser conectado por tu 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. Debes apuntarlo a tu servidor utilizando la configuración ai_sentiment_model_configs.
Esta configuración acepta un array JSON de configuraciones de modelo. Cada entrada requiere:
| Campo | Descripción |
|---|---|
model_name |
El ID del modelo de HuggingFace (por ejemplo, cardiffnlp/twitter-roberta-base-sentiment-latest) |
endpoint |
La URL de tu instancia TEI (por ejemplo, https://tu-servidor:8081) |
api_key |
Clave API para el punto final (puede dejarse en blanco si no es requerida) |
Para obtener paneles de sentimiento y emoción, agrega una entrada por cada modelo que estés ejecutando. Por ejemplo, si estás ejecutando ambos modelos localmente:
- Entrada 1: model_name
cardiffnlp/twitter-roberta-base-sentiment-latest, endpointhttps://tu-servidor:8081 - Entrada 2: model_name
SamLowe/roberta-base-go_emotions, endpointhttps://tu-servidor:8082
Después de eso, habilita la clasificación activando ai_sentiment_enabled.
