Основной стек технологии:
- Телеграм Бот
- Aiogram 3.0.0b7. Фреймворк для создания телеграмм ботов.
- Python 3.10
- Fast API сервер
- fastapi 0.94.1. Простой фрейморк для создания HTTP API-серверов.
- uvicorn 0.21.0. ASGI Python HTTP сервер, для асинхронных проектов.
- transformers 4.27.1. Библиотека HuggingFace для работы с ML-моделями.
- Также нам понадобится PyTorch для работы с нашей предобученной моделью.
Основой HTTP сервера служит модель IlyaGusev/rubertconv_toxic_clf. Сервер принимает всего два запроса:
- GET /ready Возвращает {'response': 200}, если сервер запущен и работает.
- POST /toxicity В теле запроса передается сообщение, которое проходит проверку на токсичность. Возвращает два меры о токсичности и нейтральности сообщения.
Телеграмм бот, написанный на aiogram производит следующие действия:
- Главный обработчик (main_handler) принимает на вход текстовое сообщение.
- Отправляет HTTP POST-запрос к серверу с помощью aiohttp, в теле запроса передает текст сообщения.
- Получает ответ от сервера. Если показатель токсичности больше 2.5, то бот удалит сообщение.
- Также у бота есть команда помощи /help и проверка на токсичность /check текст для проверки (доступно только для админов).