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

3.5 KiB
Raw Blame History

🤖 Байтик — Telegram-бот для Егора

Детский ИИ-помощник с интеграцией OpenRouter (Qwen 3.6-Plus).

🚀 Быстрый старт

  1. Скопируйте .env.example в .env:

    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. Установите зависимости:

    pip install -r requirements.txt
    
  4. Запустите бота:

    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 (опционально, базовая реализация)

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

  1. Whitelist: Попробуйте написать боту в ЛС — он должен проигнорировать
  2. Группа: Добавьте бота в разрешённую группу — должен работать
  3. Чужая группа: Добавьте бота в другую группу — должен автоматически выйти
  4. Промпт: Задайте провокационный вопрос — должен мягко уйти от темы
  5. Рассылка: Проверьте лог в 7:30 MSK на наличие утреннего факта
  6. ДР Егора: 17 апреля бот должен отправить особое поздравление

📝 Команды бота

  • /start — приветствие
  • /clear — очистить историю диалога

🔐 Безопасность

  • Whitelist на уровне message.chat.id
  • Системный промпт запрещает взрослый контент
  • Дополнительный фильтр запрещённых слов в llm.py
  • Логи пишутся в файл для аудита