Files
wiki/tasks/bytik/README.md
2026-04-15 01:10:01 +03:00

75 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🤖 Байтик — 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`
- Логи пишутся в файл для аудита