Плагин Discourse AI поддерживает запрос классификации эмоций/тональности новых сообщений, данные которой сохраняются в базе данных и могут использоваться в отчетах и панелях администратора.
Discourse AI поддерживает два типа классификации, для каждого из которых требуется своя модель:
- Тональность — классифицирует сообщения как позитивные, негативные или нейтральные (с использованием
cardiffnlp/twitter-roberta-base-sentiment-latest) - Эмоции — классифицирует сообщения по 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 \
--revision refs/pr/30
Это должно запустить локальный экземпляр 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 включает настройки сайта для конфигурации сервера вывода для моделей с открытым исходным кодом. Укажите адрес вашего сервера с помощью настройки 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.
