Skip to content

sprowii/sigmoidik

Repository files navigation

Сигмоида - AI Telegram Bot

Telegram бот с AI-возможностями: генерация текста, изображений, игр, перевод и саммаризация.

Возможности

  • 🤖 AI-ассистент - ответы через Gemini/OpenRouter/Pollinations
  • 🎨 Генерация изображений - через Gemini и Pollinations
  • 🎮 Генерация игр - создание 2D/3D игр на JavaScript
  • 🌍 Переводчик - быстрый перевод на 9 языков
  • 📝 Саммаризация - краткое содержание текстов и статей
  • 📊 Статистика - отслеживание использования
  • 🔒 Безопасность - rate limiting, валидация, защита от атак

Деплой на Render

  1. Создай Redis на Upstash или Redis Cloud

  2. Создай бота через @BotFather

  3. Получи API ключи:

  4. Форкни репозиторий и подключи к Render

  5. Настрой переменные окружения (см. .env.example)

  6. Деплой!

Переменные окружения

Обязательные:

  • TG_TOKEN - токен Telegram бота
  • REDIS_URL - URL Redis (используй rediss:// для SSL)
  • ADMIN_ID - твой Telegram ID
  • FLASK_SECRET_KEY - случайный ключ (генерируй через secrets.token_hex(32))
  • GEMINI_API_KEY_1 - Gemini API ключ
  • WEBAPP_BASE_URL - URL твоего приложения на Render

Опциональные:

  • GEMINI_API_KEY_2 - второй ключ для ротации
  • OPENROUTER_API_KEY - для OpenRouter моделей
  • POLLINATIONS_API_KEY - для приватных запросов

Команды

  • /tr [язык] текст - перевести текст
  • /sum текст/url - краткое содержание
  • /draw описание - нарисовать изображение
  • /game идея - сгенерировать игру
  • /stats - статистика использования
  • /settings - настройки
  • /help - все команды

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

Защита данных (GDPR/ФЗ-152)

Шифрование PII - персональные данные (имена, username) шифруются AES-256 (Fernet)
Псевдонимизация - user_id хэшируются HMAC-SHA256, невозможно восстановить без соли
Минимизация данных - хранятся только необходимые данные
Право на удаление - команда /delete_data для полного удаления данных

Защита от атак

✅ Rate limiting (10 req/min, 100 req/hour)
✅ Login rate limiting (5 попыток/мин, 20/час)
✅ Валидация всех входных данных
✅ Защита от timing attacks (constant-time comparison)
✅ Защита от path traversal
✅ Защита от code injection
✅ Secure cookies (HTTPONLY, SECURE, SAMESITE)
✅ Redis URL валидация
✅ Webhook secret token verification

Настройка шифрования

Для полной защиты данных добавь в переменные окружения:

# Соль для хэширования ID
DATA_HASH_SALT=<64 символа hex>

# Ключ шифрования персональных данных
DATA_ENCRYPTION_KEY=<Fernet ключ или пароль>

⚠️ ВАЖНО: Без этих переменных данные хранятся без шифрования. При взломе БД злоумышленник получит доступ к персональным данным.

Что происходит при взломе БД

С шифрованием:

  • Злоумышленник видит только зашифрованные данные и хэши
  • Невозможно восстановить реальные user_id, имена, username
  • Данные бесполезны без ключей шифрования

Без шифрования:

  • Все данные в открытом виде
  • Риск штрафов по GDPR/ФЗ-152

Разработка

# Установка зависимостей
pip install -r requirements.txt

# Настройка .env
cp .env.example .env
# Отредактируй .env

# Запуск
python -m app.main

Disclaimer / Отказ от ответственности

⚠️ ВАЖНО:

Этот бот использует AI-модели для генерации контента (текст, изображения, игры). Разработчик НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ за:

  • Содержание сгенерированного контента
  • Точность переводов и саммаризаций
  • Работоспособность сгенерированных игр
  • Любые последствия использования бота

Используя этот бот, вы соглашаетесь с тем, что:

  • Весь контент генерируется AI и может содержать ошибки
  • Вы используете бота на свой страх и риск
  • Разработчик не контролирует и не модерирует генерируемый контент
  • Вы несете полную ответственность за использование сгенерированного контента

Лицензия

MIT License - используй на свой страх и риск изменённая

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published