domovoy_bot/РЕЙТИНГ_ТОКСИЧНОСТИ.md
Admin ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00

9.6 KiB
Raw Permalink Blame History

😠 Рейтинг токсичности — v1.9

Версия: v1.9 Дата: 26 февраля 2026 г. Статус: Реализовано


📋 Описание

Система анализа токсичности сообщений и выявления конфликтных пользователей. Бот анализирует лексику на оскорбления, агрессию, угрозы, дискриминацию. Админ получает рейтинг токсичных пользователей и уведомления о токсичных сообщениях.


🎯 Возможности

  • Анализ лексики (оскорбления, агрессия, угрозы, дискриминация)
  • Детекция паттернов агрессии (CAPS, множественные знаки)
  • Toxicity Score 0-100 для каждого пользователя
  • Топ токсичных пользователей
  • Статистика по пользователю
  • Жалобы на пользователей
  • Уведомления о токсичных сообщениях
  • Уровни токсичности с emoji

📱 Команды

Для администраторов:

Команда Описание Пример
/toxic_top [дни] [лимит] Топ токсичных пользователей /toxic_top 7 10
/toxic_stats <user_id> Статистика токсичности /toxic_stats 123456789
/toxicity_report Общий отчёт по чату /toxicity_report
/clear_toxicity <user_id> Сбросить токсичность /clear_toxicity 123
/complaint <user_id> [причина] Жалоба на пользователя /complaint 123 Оскорбления

🎯 Категории токсичности

Категория Примеры слов Баллы
Оскорбления дурак, идиот, кретин, придурок, хам +15
Агрессия заткнись, убью, ненавижу, достал +15
Угрозы угрожаю, пожалеешь, найду, разберусь +15
Дискриминация национальн, расов, религиозн +15
CAPS LOCK >50% заглавных букв +15
Паттерны !!!, ???, АААА, повторы +10

🎯 Уровни токсичности

Score Уровень Emoji Действие
0-10 😊 Нормальный 😊 Нет действий
10-30 😐 Нейтральный 😐 Нет действий
30-50 ⚠️ Подозрительный ⚠️ Пометка в базе
50-70 😠 Токсичный 😠 Уведомление админа
70+ 🚫 Очень токсичный 🚫 Рекомендуется бан

🎯 Сценарии использования

Сценарий 1: Топ токсичных

Админ:

/toxic_top 7 10

Бот:

😠 Топ токсичных пользователей (за 7 дн.)

1. Иван Иванов (кв. 45) 😠
   └─ Сообщений: 150
   └─ Токсичных: 45 (30%)
   └─ Средняя токсичность: 35
   └─ Максимальная: 80

2. Петр Петров (кв. 88) ⚠️
   └─ Сообщений: 100
   └─ Токсичных: 20 (20%)
   └─ Средняя токсичность: 25
   └─ Максимальная: 60

Сценарий 2: Статистика пользователя

Админ:

/toxic_stats 123456789

Бот:

😠 Токсичность: Иван Иванов

Квартира: 45
Уровень: 😠 Токсичный

📊 Статистика (7 дн.)
├─ Всего сообщений: 150
├─ Токсичных: 45 (30%)
├─ Средняя токсичность: 35
└─ Максимальная: 80

📁 Категории
  └─ insults: 25
  └─ aggression: 15
  └─ CAPS LOCK: 5

Сценарий 3: Жалоба на пользователя

Админ:

/complaint 123456789 Оскорбления соседей

Бот:

✅ Жалоба принята

Пользователь: Иван Иванов
Причина: Оскорбления соседей
Всего жалоб: 1

Если жалоб >= 3:

⚠️ Много жалоб!

Пользователь: Иван Иванов
Жалоб: 3

Рекомендуется проверить через /toxic_stats 123456789

Сценарий 4: Общий отчёт

Админ:

/toxicity_report

Бот:

📊 Отчёт по токсичности

👥 Пользователей: 100
😠 Токсичных: 15 (15.0%)
📝 Всего жалоб: 25

🔥 Топ-5 токсичных (7 дн.)

1. Иван Иванов 😠 — 35
2. Петр Петров ⚠️ — 25
3. Анна Сидорова ⚠️ — 20
4. Мария Козлова 😐 — 15
5. Василий Смирнов 😐 — 10

Сценарий 5: Авто-уведомление

Пользователь пишет токсичное сообщение:

ЗАТКНИСЬ УЖЕ НАКОНЕЦ!!! ТУПОЙ!!!

Бот автоматически:

  1. Анализирует токсичность (85/100)
  2. Удаляет сообщение (если настроено)
  3. Уведомляет админа:
    ⚠️ Токсичное сообщение!
    
    Пользователь: Иван Иванов
    ID: 123456789
    Квартира: 45
    Toxicity Score: 85/100
    
    Проверьте через /toxic_stats 123456789
    

🗄️ База данных

Поля в users:

ALTER TABLE users ADD COLUMN toxicity_score INTEGER DEFAULT 0
ALTER TABLE users ADD COLUMN toxic_messages_count INTEGER DEFAULT 0
ALTER TABLE users ADD COLUMN complaints_count INTEGER DEFAULT 0

🧪 Тестирование

Чек-лист проверки:

1. Топ токсичных

# Админ:
/toxic_top 7 10
  • Топ отображается
  • Уровни с emoji
  • Статистика верная

2. Статистика пользователя

/toxic_stats 123456789
  • Статистика отображается
  • Категории показаны

3. Жалоба

/complaint 123456789 Тест
  • Жалоба принята
  • Счётчик увеличен
  • При 3+ жалобах уведомление

4. Авто-анализ

# Отправить токсичное сообщение
  • Score считается
  • Админ уведомлён при >50

📁 Изменённые файлы

Файл Изменения
database/models.py Поля toxicity_score, toxic_messages_count, complaints_count
database/migrate_add_toxicity.py Миграция БД
services/toxicity_detector.py Сервис детекта
handlers/toxicity.py Хендлеры
handlers/chat_monitor.py Авто-анализ токсичности
handlers/__init__.py Импорт toxicity_router
main.py Регистрация toxicity_router

🚀 Как использовать

Для админа:

  1. Посмотреть топ токсичных:

    /toxic_top
    
  2. Проверить пользователя:

    /toxic_stats 123456789
    
  3. Подать жалобу:

    /complaint 123456789 Оскорбления
    
  4. Сбросить токсичность:

    /clear_toxicity 123456789
    

💡 Советы

Настройка порогов:

В services/toxicity_detector.py:

'insults': ['дурак', 'идиот', ...],  # Добавьте свои слова

Ложные срабатывания:

  • Шутки между соседями — могут попасть под детект
  • Цитирование — слова в кавычках тоже считаются
  • Иностранные слова — могут совпадать с русскими

Когда банить:

  • Score > 70 + много жалоб
  • Повторные нарушения после предупреждений
  • Угрозы расправы

🔧 Отладка

Посмотреть токсичность в БД:

cd /home/matrixhasyou/domovoy_bot
source venv/bin/activate
sqlite3 database/domovoy.db

SELECT user_id, toxicity_score, toxic_messages_count, complaints_count
FROM users
WHERE toxicity_score > 0
ORDER BY toxicity_score DESC;

Логи:

tail -f logs/bot.log | grep -i "токсич\|toxic"

Преимущества

Было Стало
Токсичные сообщения в чате Авто-детект
Жалобы вручную /complaint + уведомления
Нет статистики Топ токсичных
Субъективная оценка Toxicity Score 0-100

Рейтинг токсичности готов! 😠

Следующий шаг: тестирование на тестовой группе и фиксация версии v1.9