3.5 KiB
3.5 KiB
🤖 Байтик — Telegram-бот для Егора
Детский ИИ-помощник с интеграцией OpenRouter (Qwen 3.6-Plus).
🚀 Быстрый старт
-
Скопируйте
.env.exampleв.env:cp .env.example .env -
Заполните
.env:BOT_TOKEN— токен от @BotFatherALLOWED_CHAT_ID— ID разрешённой группы (критично!)OPENROUTER_API_KEY— ключ от OpenRouterOPENROUTER_MODEL— по умолчаниюopenrouter/qwen/qwen3.6-plus
-
Установите зависимости:
pip install -r requirements.txt -
Запустите бота:
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)
- Whitelist chat_id — бот игнорирует все чаты кроме
ALLOWED_CHAT_ID - Авто-выход при добавлении в новую группу
- Интеграция с OpenRouter (Qwen 3.6-Plus)
- Детский системный промпт (0+)
- Фильтр запрещённых слов (двойная защита)
- Контекст диалога (последние 10 сообщений)
- Утренняя рассылка 7:30 MSK с энциклопедическими фактами
- Праздничные поздравления (включая ДР Егора 17.04!)
- Логи в
logs/bytik.log - TTS через ElevenLabs (опционально, базовая реализация)
🔧 Тестирование
- Whitelist: Попробуйте написать боту в ЛС — он должен проигнорировать
- Группа: Добавьте бота в разрешённую группу — должен работать
- Чужая группа: Добавьте бота в другую группу — должен автоматически выйти
- Промпт: Задайте провокационный вопрос — должен мягко уйти от темы
- Рассылка: Проверьте лог в 7:30 MSK на наличие утреннего факта
- ДР Егора: 17 апреля бот должен отправить особое поздравление
📝 Команды бота
/start— приветствие/clear— очистить историю диалога
🔐 Безопасность
- Whitelist на уровне
message.chat.id - Системный промпт запрещает взрослый контент
- Дополнительный фильтр запрещённых слов в
llm.py - Логи пишутся в файл для аудита