Плагин Discourse AI поддерживает запрос классификации эмоций/тональности новых сообщений. Эти данные сохраняются в базе данных и могут использоваться в отчетах и панелях администратора.
Discourse AI поддерживает два типа классификации, для каждого из которых требуется своя модель:
- Тональность (Sentiment) — классифицирует сообщения как позитивные, негативные или нейтральные (с использованием
cardiffnlp/twitter-roberta-base-sentiment-latest) - Эмоции (Emotion) — классифицирует сообщения по 28 меткам эмоций, таким как радость, гнев, удивление и т. д. (с использованием
SamLowe/roberta-base-go_emotions)
Чтобы получить данные как по тональности, так и по эмоциям в своих панелях, необходимо запустить обе модели.
Запуск с использованием HuggingFace TEI
HuggingFace предоставляет отличное контейнерное изображение, которое позволит быстро начать работу.
Модель тональности
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
Это позволит запустить локальный экземпляр cardiffnlp/twitter-roberta-base-sentiment-latest — открытой модели, способной классифицировать сообщения как позитивные, негативные или нейтральные.
Вы можете проверить работоспособность с помощью команды:
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
-d "{ \"inputs\": \"I am happy\" }"
При штатной работе должен вернуться массив значений уверенности для каждой метки.
Модель эмоций
Чтобы также получить классификацию по эмоциям, запустите второй контейнер с моделью эмоций:
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
Поддерживаемые модели
- cardiffnlp/twitter-roberta-base-sentiment-latest · Hugging Face — тональность (позитив/негатив/нейтрально)
- SamLowe/roberta-base-go_emotions · Hugging Face — эмоции (28 меток эмоций)
Доступность для вашего экземпляра Discourse
В большинстве случаев из-за ускорения работы GPU эту систему запускают на выделенном сервере. В таком случае рекомендуется использовать обратный прокси-сервер, завершение TLS-соединений и защиту конечной точки, чтобы к ней мог подключаться только ваш экземпляр Discourse.
Настройка Discourse AI
Discourse AI включает параметры сайта для настройки сервера вывода (inference server) для моделей с открытым исходным кодом. Укажите адрес вашего сервера с помощью параметра ai_sentiment_model_configs.
Этот параметр принимает JSON-массив конфигураций моделей. Каждая запись требует:
| Поле | Описание |
|---|---|
model_name |
Идентификатор модели HuggingFace (например, cardiffnlp/twitter-roberta-base-sentiment-latest) |
endpoint |
URL-адрес вашего экземпляра TEI (например, https://your-server:8081) |
api_key |
Ключ API для конечной точки (можно оставить пустым, если не требуется) |
Чтобы получить панели как для тональности, так и для эмоций, добавьте запись для каждой запущенной модели. Например, если вы запускаете обе модели локально:
- Запись 1:
model_namecardiffnlp/twitter-roberta-base-sentiment-latest,endpointhttps://your-server:8081 - Запись 2:
model_nameSamLowe/roberta-base-go_emotions,endpointhttps://your-server:8082
После этого включите классификацию, переключив параметр ai_sentiment_enabled.}
