✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
344 lines
9.1 KiB
Markdown
344 lines
9.1 KiB
Markdown
# ☁️ Облако тегов тем чата — v1.8
|
||
|
||
**Версия:** v1.8
|
||
**Дата:** 26 февраля 2026 г.
|
||
**Статус:** ✅ Реализовано
|
||
|
||
---
|
||
|
||
## 📋 Описание
|
||
|
||
Анализ тем чата с автоматической классификацией сообщений. Бот определяет тему каждого сообщения (лифты, парковка, уборка, соседи и т.д.), формирует облако тегов, показывает статистику и тренды тем.
|
||
|
||
---
|
||
|
||
## 🎯 Возможности
|
||
|
||
- ✅ 18 тем для классификации (лифты, парковка, уборка, соседи, вода, свет...)
|
||
- ✅ Авто-классификация каждого сообщения
|
||
- ✅ Облако тегов с процентами
|
||
- ✅ Топ тем за период
|
||
- ✅ Статистика по конкретной теме
|
||
- ✅ Еженедельный отчёт
|
||
- ✅ Тренды тем по дням
|
||
|
||
---
|
||
|
||
## 📱 Команды
|
||
|
||
### Для администраторов:
|
||
|
||
| Команда | Описание | Пример |
|
||
|---------|----------|--------|
|
||
| `/topics [дни]` | Облако тегов | `/topics 7` |
|
||
| `/top_topics [дни] [лимит]` | Топ тем | `/top_topics 7 5` |
|
||
| `/topic_stats <тема>` | Статистика темы | `/topic_stats лифты` |
|
||
| `/weekly_report` | Еженедельный отчёт | `/weekly_report` |
|
||
| `/topics_list` | Список всех тем | `/topics_list` |
|
||
|
||
---
|
||
|
||
## 🎯 Темы для классификации
|
||
|
||
| Тема | Emoji | Ключевые слова |
|
||
|------|-------|---------------|
|
||
| 🛗 Лифты | 🛗 | лифт, лифты, кабина, шахта |
|
||
| 🚗 Парковка | 🚗 | парковк, машина, автомобиль, шлагбаум |
|
||
| 🧹 Уборка | 🧹 | уборк, грязн, мусор, подъезд |
|
||
| 👥 Соседи | 👥 | сосед, шум, громко, музыка, ремонт |
|
||
| 💧 Вода | 💧 | вод, кран, труб, протечк, засор |
|
||
| ⚡ Электричество | ⚡ | свет, электричеств, розетк, проводк |
|
||
| 🔥 Отопление | 🔥 | отоплен, батаре, радиатор, тепло |
|
||
| 🔑 Домофон | 🔑 | домофон, ключ, карта, доступ |
|
||
| 🗑️ Мусор | 🗑️ | мусор, контейнер, баки, вывоз |
|
||
| 👶 Дети | 👶 | ребенок, дети, коляск, площадк |
|
||
| 🐕 Животные | 🐕 | собак, кошк, питомец, лают |
|
||
| 📢 Объявления | 📢 | объявлен, продам, куплю, отдам |
|
||
| 😠 Жалобы | 😠 | жалоб, недовольн, возмущен, требую |
|
||
| 🙏 Благодарности | 🙏 | спасиб, благодар, молодец, хорошо |
|
||
| ❓ Вопросы | ❓ | вопрос, подскажите, помогите, кто знает |
|
||
| 💡 Предложения | 💡 | предлагаю, давайте, идея |
|
||
| 📅 Собрание | 📅 | собран, встреч, голосован, опрос |
|
||
| 🏢 УК | 🏢 | ук, управляющ, жкх, диспетчер |
|
||
|
||
---
|
||
|
||
## 🎯 Сценарии использования
|
||
|
||
### Сценарий 1: Облако тегов
|
||
|
||
**Админ:**
|
||
```
|
||
/topics
|
||
```
|
||
|
||
**Бот:**
|
||
```
|
||
☁️ Облако тем чата (за 7 дн.)
|
||
|
||
Всего сообщений: 500
|
||
Распознано: 400 (80%)
|
||
|
||
🛗 Лифты: ████████████░░░░░░ 60% (240)
|
||
🚗 Парковка: ██████░░░░░░░░░░░░ 30% (120)
|
||
🧹 Уборка: ████░░░░░░░░░░░░░░ 20% (80)
|
||
👥 Соседи: ██░░░░░░░░░░░░░░░░ 10% (40)
|
||
💧 Вода: ██░░░░░░░░░░░░░░░░ 10% (40)
|
||
```
|
||
|
||
---
|
||
|
||
### Сценарий 2: Топ тем
|
||
|
||
**Админ:**
|
||
```
|
||
/top_topics 7 5
|
||
```
|
||
|
||
**Бот:**
|
||
```
|
||
🔥 Топ тем за 7 дн.
|
||
|
||
1. 🛗 Лифты: 60% (240 сообщ.)
|
||
2. 🚗 Парковка: 30% (120 сообщ.)
|
||
3. 🧹 Уборка: 20% (80 сообщ.)
|
||
4. 👥 Соседи: 10% (40 сообщ.)
|
||
5. 💧 Вода: 10% (40 сообщ.)
|
||
```
|
||
|
||
---
|
||
|
||
### Сценарий 3: Статистика темы
|
||
|
||
**Админ:**
|
||
```
|
||
/topic_stats лифты
|
||
```
|
||
|
||
**Бот:**
|
||
```
|
||
🛗 Статистика темы: Лифты
|
||
|
||
📊 За 7 дней:
|
||
├─ Сообщений: 240
|
||
└─ Доля: 60%
|
||
|
||
📈 За 14 дней:
|
||
└─ Сообщений: 450
|
||
|
||
📅 По дням:
|
||
20.02: 35 сообщ.
|
||
21.02: 40 сообщ.
|
||
22.02: 30 сообщ.
|
||
23.02: 45 сообщ.
|
||
24.02: 50 сообщ.
|
||
25.02: 40 сообщ.
|
||
26.02: 35 сообщ.
|
||
```
|
||
|
||
---
|
||
|
||
### Сценарий 4: Еженедельный отчёт
|
||
|
||
**Админ:**
|
||
```
|
||
/weekly_report
|
||
```
|
||
|
||
**Бот:**
|
||
```
|
||
📊 Еженедельный отчёт по темам чата
|
||
|
||
Период: последние 7 дней
|
||
|
||
🔥 Топ тем недели:
|
||
|
||
1. 🛗 Лифты: 60% (240 сообщ.)
|
||
2. 🚗 Парковка: 30% (120 сообщ.)
|
||
3. 🧹 Уборка: 20% (80 сообщ.)
|
||
|
||
📈 Динамика:
|
||
|
||
↗️ Лифты: +50 (🛗)
|
||
↗️ Парковка: +30 (🚗)
|
||
↘️ Уборка: -10 (🧹)
|
||
|
||
💡 Используйте /topics для детальной статистики
|
||
```
|
||
|
||
---
|
||
|
||
### Сценарий 5: Список тем
|
||
|
||
**Админ:**
|
||
```
|
||
/topics_list
|
||
```
|
||
|
||
**Бот:**
|
||
```
|
||
📋 Список тем для классификации
|
||
|
||
🛗 Лифты
|
||
└─ Ключевые слова: лифт, лифты, лифтовая, кабина...
|
||
🚗 Парковка
|
||
└─ Ключевые слова: парковк, машина, автомобиль...
|
||
🧹 Уборка
|
||
└─ Ключевые слова: уборк, грязн, мусор...
|
||
...
|
||
|
||
💡 Всего тем: 18
|
||
```
|
||
|
||
---
|
||
|
||
## 🗄️ База данных
|
||
|
||
### Поле в `messages`:
|
||
```sql
|
||
ALTER TABLE messages ADD COLUMN topic TEXT
|
||
CREATE INDEX ix_messages_topic ON messages(topic)
|
||
```
|
||
|
||
---
|
||
|
||
## 🧪 Тестирование
|
||
|
||
### Чек-лист проверки:
|
||
|
||
#### 1. Облако тегов
|
||
```bash
|
||
# Админ:
|
||
/topics
|
||
```
|
||
- [ ] Облако отображается
|
||
- [ ] Проценты считаются верно
|
||
- [ ] Emoji правильные
|
||
|
||
#### 2. Топ тем
|
||
```bash
|
||
/top_topics 7 5
|
||
```
|
||
- [ ] Топ отображается
|
||
- [ ] Лимит работает
|
||
|
||
#### 3. Статистика темы
|
||
```bash
|
||
/topic_stats лифты
|
||
```
|
||
- [ ] Статистика по теме отображается
|
||
- [ ] Тренд по дням показан
|
||
|
||
#### 4. Еженедельный отчёт
|
||
```bash
|
||
/weekly_report
|
||
```
|
||
- [ ] Отчёт формируется
|
||
- [ ] Динамика считается
|
||
|
||
---
|
||
|
||
## 📁 Изменённые файлы
|
||
|
||
| Файл | Изменения |
|
||
|------|-----------|
|
||
| `database/models.py` | Поле `topic` в Message |
|
||
| `database/migrate_add_topic_field.py` | Миграция БД |
|
||
| `services/topics_analyzer.py` | Сервис анализа тем |
|
||
| `handlers/topics.py` | Хендлеры |
|
||
| `handlers/chat_monitor.py` | Авто-классификация |
|
||
| `handlers/__init__.py` | Импорт topics_router |
|
||
| `main.py` | Регистрация topics_router |
|
||
|
||
---
|
||
|
||
## 🚀 Как использовать
|
||
|
||
### Для админа:
|
||
|
||
1. **Посмотреть облако тегов:**
|
||
```
|
||
/topics
|
||
```
|
||
|
||
2. **Посмотреть топ тем:**
|
||
```
|
||
/top_topics 7 5
|
||
```
|
||
|
||
3. **Проверить тему:**
|
||
```
|
||
/topic_stats лифты
|
||
```
|
||
|
||
4. **Получить отчёт:**
|
||
```
|
||
/weekly_report
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 Советы
|
||
|
||
### Настройка тем:
|
||
|
||
В `services/topics_analyzer.py`:
|
||
```python
|
||
'новая_тема': {
|
||
'keywords': ['ключевое', 'слова'],
|
||
'emoji': '🎯'
|
||
}
|
||
```
|
||
|
||
### Точность классификации:
|
||
|
||
- **80%+** — отличный результат
|
||
- **60-80%** — хороший результат
|
||
- **<60%** — добавьте больше ключевых слов
|
||
|
||
### Еженедельный отчёт:
|
||
|
||
Добавьте в scheduler.py:
|
||
```python
|
||
# Каждое воскресенье в 10:00
|
||
CronTrigger.from_crontab('0 10 * * 0')
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 Отладка
|
||
|
||
### Посмотреть темы в БД:
|
||
```bash
|
||
cd /home/matrixhasyou/domovoy_bot
|
||
source venv/bin/activate
|
||
sqlite3 database/domovoy.db
|
||
|
||
SELECT topic, COUNT(*) as count
|
||
FROM messages
|
||
WHERE topic IS NOT NULL
|
||
GROUP BY topic
|
||
ORDER BY count DESC;
|
||
```
|
||
|
||
### Логи:
|
||
```bash
|
||
tail -f logs/bot.log | grep -i "тем\|topic"
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Преимущества
|
||
|
||
| Было | Стало |
|
||
|------|-------|
|
||
| Не понятно что волнует жильцов | **Облако тегов** |
|
||
| Ручной анализ | **Авто-классификация** |
|
||
| Нет статистики | **Топ тем, тренды** |
|
||
| Нет отчётов | **Еженедельный отчёт** |
|
||
|
||
---
|
||
|
||
**Облако тегов готово! ☁️**
|
||
|
||
*Следующий шаг: тестирование на тестовой группе и фиксация версии v1.8*
|