# 🤖 Байтик — Telegram-бот для Егора Детский ИИ-помощник с интеграцией OpenRouter (Qwen 3.6-Plus). ## 🚀 Быстрый старт 1. **Скопируйте `.env.example` в `.env`:** ```bash cp .env.example .env ``` 2. **Заполните `.env`:** - `BOT_TOKEN` — токен от @BotFather - `ALLOWED_CHAT_ID` — ID разрешённой группы (критично!) - `OPENROUTER_API_KEY` — ключ от OpenRouter - `OPENROUTER_MODEL` — по умолчанию `openrouter/qwen/qwen3.6-plus` 3. **Установите зависимости:** ```bash pip install -r requirements.txt ``` 4. **Запустите бота:** ```bash python bot.py ``` ## 📁 Структура проекта | Файл | Описание | |------|----------| | `bot.py` | Точка входа, хэндлеры Telegram | | `config.py` | Загрузка конфига из `.env` | | `prompts.py` | Системный промпт, факты, праздники | | `llm.py` | Обёртка над OpenRouter API + фильтр слов | | `chat_history.py` | Хранение контекста диалога (JSON) | | `scheduler.py` | Утренняя рассылка + праздники | | `tts.py` | Голосовые сообщения (ElevenLabs) | | `data/chat_history/` | JSON-файлы с историей по user_id | | `logs/bytik.log` | Лог-файл | ## ✅ Реализовано (Фаза 1 + 2) - [x] Whitelist chat_id — бот игнорирует все чаты кроме `ALLOWED_CHAT_ID` - [x] Авто-выход при добавлении в новую группу - [x] Интеграция с OpenRouter (Qwen 3.6-Plus) - [x] Детский системный промпт (0+) - [x] Фильтр запрещённых слов (двойная защита) - [x] Контекст диалога (последние 10 сообщений) - [x] Утренняя рассылка 7:30 MSK с энциклопедическими фактами - [x] Праздничные поздравления (включая ДР Егора 17.04!) - [x] Логи в `logs/bytik.log` - [x] TTS через ElevenLabs (опционально, базовая реализация) ## 🔧 Тестирование 1. **Whitelist:** Попробуйте написать боту в ЛС — он должен проигнорировать 2. **Группа:** Добавьте бота в разрешённую группу — должен работать 3. **Чужая группа:** Добавьте бота в другую группу — должен автоматически выйти 4. **Промпт:** Задайте провокационный вопрос — должен мягко уйти от темы 5. **Рассылка:** Проверьте лог в 7:30 MSK на наличие утреннего факта 6. **ДР Егора:** 17 апреля бот должен отправить особое поздравление ## 📝 Команды бота - `/start` — приветствие - `/clear` — очистить историю диалога ## 🔐 Безопасность - Whitelist на уровне `message.chat.id` - Системный промпт запрещает взрослый контент - Дополнительный фильтр запрещённых слов в `llm.py` - Логи пишутся в файл для аудита