Skip to content

bobberdolle1/Project-OLEG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

316 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oleg Bot

🎰 ОЛЕГ 10.3.0 — Morning Briefing Update 🎰

Цифровой гигачад. Ветеран кремниевых войн. Резидент Steam Deck OC.

Кооперативная игра "Мафия" для группового чата с ночными действиями и дневными голосованиями!

Python aiogram Ollama Whisper Redis ChromaDB Prometheus Arq

Быстрый стартВозможностиЧто новогоАрхитектураБезопасностьАдмин-панель


💀 Что это?

Олег — это не просто бот. Это полноценный ИИ-ассистент с характером, который:

  • 🧠 Думает — LLM на базе Ollama (Gemini, Qwen) общается как реальный человек
  • 👁️ Видит — 2-step Vision Pipeline для единой личности, распознаёт стикеры
  • 🎤 Слышит — распознаёт голосовые и видеосообщения (Whisper)
  • 🔊 Говорит — TTS голосовые ответы в стиле Олега
  • 🧬 Помнит — RAG на ChromaDB с меж-топиковым восприятием
  • 🎮 Играет — PvP с согласием, рулетка, турниры, лиги
  • 💬 Адаптируется — короткие ответы на простые вопросы, подробные на сложные
  • 📊 Мониторится — Prometheus + Grafana

🚀 Что нового в 10.3

🌅 Morning Briefing & Vibe Check

Утренние отчеты стали полезнее, а реакции — тише.

☀️ Утренний брифинг

+ ☕ Новый формат — краткая сводка вчерашнего дня
+ 📊 Vibe Check 2.0 — "Стабильное болото 🐸", "Лампово 🍺"
+ 📉 Меньше шума — убраны лишние счетчики и проценты

🛡️ Анти-спам реакции

+ 🔇 Emoji only — бот реагирует эмодзи вместо текста
+ 📈 Combo x5 — реакция на массовку только от 5 человек

🚀 Что нового в 10.2

🗣️ Dynamic Voices & Optimization

Бот теперь говорит разными голосами в зависимости от выбранной личности, а кружочки генерируются мгновенно.

🎭 Динамические голоса

+ 😎 Олег — басистый, суровый голос ("качок")
+ 🎳 The Dude — медленный, расслабленный (stoned mode)
+ 🌸 Аниме-тян — высокий, быстрый и милый
+ ☭ Сталин — низкий, властный, командный
+ 🇺🇸 Трамп — звонкий и напористый

⚡ Оптимизация видео

+ 🚀 Мгновенная генерация — шаблоны заранее конвертированы в 640x640
+ 📉 Нулевая нагрузка — убран ресайз из 4K в реалтайме
+ 🛡️ Защита от зависаний — таймауты и оптимизированные пресеты ffmpeg

🚀 Что нового в 9.7

🎭 Mafia Game — Cooperative Social Deduction

Классическая игра "Мафия" для группового чата с полной конфиденциальностью ролей и действий.

🎮 Игровой процесс

+ 🎭 /mafia — создать лобби для игры (4-12 игроков)
+ 📊 /mafia_stats — статистика по играм и ролям
+ ⏱️ Автоматические фазы — ночь (2 мин), обсуждение (3 мин), голосование (2 мин)
+ 🔒 Конфиденциальность — роли и ночные действия через ЛС бота
+ 🗳️ Публичное голосование — изгнание подозреваемых в группе

👥 Роли

+ 🧑‍🌾 Мирные жители — вычисляют мафию голосованием днём
+ 🔪 Мафия — убивают по ночам, побеждают при равенстве с мирными
+ 💉 Доктор — защищает одного игрока от убийства каждую ночь
+ 🔍 Комиссар — проверяет игрока (мафия/не мафия) каждую ночь
+ 👔 Дон мафии — главарь мафии, видит всю команду

📊 Статистика и награды

+ 💰 Награды — 50-300 монет в зависимости от роли и результата
+ 📈 Винрейт — отдельно по ролям (мафия/мирные)
+ 🎯 Точность — процент правильных голосований
+ 🏆 Роль-специфик — успешные проверки комиссара, спасения доктора
+ 💚 Выживаемость — процент игр дожитых до конца

🛠️ Техническое

+ 📊 5 новых моделей БД — MafiaGame, MafiaPlayer, MafiaNightAction, MafiaVote, MafiaStats
+ ⚙️ Новый сервис — mafia_game.py с полной логикой игры
+ 🤖 Фоновые задачи — автоматическая обработка фаз с таймаутами
+ 🔗 Интеграция — добавлена в /games и /help
+ 🎲 Распределение ролей — автоматическое в зависимости от числа игроков

🚀 Что было в 9.5

🔄 Trading System Update

Полноценная система трейдов, продаж и аукционов для обмена предметами между игроками.

🤝 P2P Трейды

+ 🔄 /trade @user — предложить обмен предметами и/или монетами
+ 📋 /trades — список активных обменов
+ ⏱️ Автоистечение — через 5 минут если не принят
+ 🔒 Безопасность — атомарные транзакции, блокировка предметов
+ 💬 Интерактивное меню — выбор предметов через inline кнопки

🏪 Маркетплейс

+ 🏪 /sell — выставить предмет на продажу за фиксированную цену
+ 🛒 /market — просмотр всех активных объявлений с кнопками покупки
+ 📦 /mylistings — управление своими объявлениями
+ ⚡ Мгновенная покупка — один клик для покупки предмета
+ 🚫 Отмена — возврат предмета при отмене объявления

🎯 Аукционы

+ 🎯 /auction — создать аукцион с торгами (1-72 часа)
+ ⚖️ /auctions — список активных аукционов
+ 🔨 /myauctions — управление своими аукционами
+ 💰 Минимальный шаг — +10% от текущей ставки
+ 🏆 Автозавершение — победитель получает предмет, продавец монеты
+ 🔄 Возврат — предмет возвращается если нет ставок

🛠️ Техническое

+ 📊 4 новые модели БД — Trade, MarketListing, Auction, AuctionBid
+ ⚙️ 3 новых сервиса — trade_service, market_service, auction_service
+ 🤖 Фоновые задачи — автообработка истекших трейдов/аукционов
+ 🔗 Интеграция — полная совместимость с системой инвентаря
+ 📚 8 новых команд — добавлены в /help и command scope

🚀 Что было в 9.4

🎮 Game Balance & Economy Update

Масштабное обновление баланса игр, новые бустеры и система HP для петухов.

❤️ Система HP для петухов

+ ❤️ 100 HP для каждого петуха — хранится в JSON metadata
+ 💥 Урон после боя — 10-30 HP за бой
+ 🚫 Минимум для боя — нельзя драться если HP < 20
+ 🔄 Пассивная регенерация — +5 HP/час автоматически
+ 🧪 Зелье лечения — восстанавливает 50 HP
+ 📊 Отображение HP — в инвентаре и после боя

⚖️ Балансировка игр

+ 📈 /grow процентный — 0.5-2% от размера (мин 1, макс 50 см)
+ 📉 Усадка процентная — -0.3-1% от размера (мин -1, макс -30 см)
+ 🧴 Мази процентные — от +1-3% до +25-50% в зависимости от типа
+ 🐔 Петушиные бои — кулдаун 5 мин, множители x1.2/x1.4/x1.7, стоимость входа 10%
+ 🥤 Энергетик — исправлено описание (сброс кулдауна рыбалки)

🛒 Новые бустеры в /shop

+ 💪 Стероиды — +20% урона в боях (30 мин) - 250 монет
+ 🧪 Зелье лечения — восстанавливает 50 HP петуху - 150 монет
+ ⚡ Адреналин — +15% шанс крита - 200 монет
+ 🧲 Магнит монет — +25% монет из игр (1ч) - 350 монет
+ 🪱 Премиум наживка — +30% редкой рыбы (5 раз) - 180 монет
+ 🚀 Ускоритель роста — -6 часов кулдауна /grow - 400 монет

🐛 Исправления инвентаря

+ ✅ Петухи отображаются с HP — без кнопки действия
+ ✅ Удочки работают — экипировка через инвентарь
+ ✅ Лутбоксы работают — открытие через инвентарь

🚀 Что было в 9.0

🎮 Game Balance & Tournament Edition

Масштабное обновление баланса игр, расширение квестов и добавление турнирной системы.

👁️ Vision: Распознавание стикеров

+ 🖼️ Стикеры как изображения — обработка через vision pipeline
+ � Автоконвер0тация .webp → PNG для совместимости
+ 🎯 Только статичные стикеры — анимированные пропускаются
+ 💬 Работает при упоминании или ответе на сообщение бота

🤖 Улучшения автоответа и обработки ошибок

+ 🎯 Фикс автоответа при 0% — корректная работа настройки в /admin
+ 🛡️ Защита от спама ошибками — не чаще 1 раза в минуту на чат
+ 🎲 80+ вариантов сообщений об ошибках — технические, железячные, саркастичные, мемные
+ 💬 Умная логика — ошибки только при прямом обращении к боту
+ 🎭 Примеры: "CUDA out of memory", "Термопаста высохла", "Винда обновилась. Всё сломалось"

🏆 Турнирная система

+ 🏆 5 типов турниров — PP Size, PP Growth, PvP Wins, Fishing, Casino
+ 📅 Еженедельные турниры — автоматический запуск каждый понедельник
+ 💰 Призы для топ-3 — от 1000 до 7000 монет
+ 📢 Автоматические объявления — старт и результаты в канал SDOC
+ 📊 Команда /tournament — просмотр таблицы лидеров

📜 Расширение квестов

+ 📋 20+ новых квестов — PvP серии, рыбалка, казино, петушиные бои, краш
+ 🎲 Генератор динамических квестов — заработать/потратить монеты, серии побед
+ 💎 Награды масштабируются — от 50 до 5000 монет в зависимости от сложности

⚖️ Ужесточение баланса игр

+ 🎣 Рыбалка — кулдаун x3 (90 сек), мусор не дает монет, шансы на редкую рыбу -30%
+ 🐔 Петушиные бои — минимальная ставка 50, множители снижены, кулдаун 60 сек
+ 🚀 Краш — house edge 5%, лимит ставки 1000 монет
+ 🍆 /grow — 15% шанс неудачи (0 см), 5% шанс усадки (-1 до -3 см)
+ 🏪 Магазин — все цены x1.5, мази/эликсиры x2
+ 💰 Ежедневный бонус — 25 → 50 монет
+ ⏱️ Кулдауны предметов — мази 5 мин, энергетик 10 мин

📏 Расширение рангов

+ 📊 100+ промежуточных рангов — диапазон 300-1000 см покрыт каждые 5-10 см
+ 🎯 Более плавная прогрессия — больше мотивации для роста

🛡️ PP Battle улучшения

+ 🎲 Рандом увеличен — с ±20% до ±40%
+ ⚡ Критические удары — 15% шанс x1.5 к силе
+ 🔒 Пенис-клетка с HP — 5 HP, ломается при 0 HP
+ 💰 Защита клеткой — победитель получает только 50% ставки

🧹 Simplified Edition — Мажорный рефакторинг

- ❌ Удалена система модерации — 19 файлов, 13 таблиц БД
- ❌ DEFCON, антирейд, токсичность — фокус на AI и играх
- 🧹 Упрощение архитектуры — чище код, быстрее работа

🧠 Smart Memory Fix

+ 🎯 Контекстное сохранение в RAG — только релевантные сообщения
+ 🔍 Умный поиск в базе знаний — семантический поиск при технических терминах
+ 👤 Точные досье /whois — профили из реальных диалогов с ботом

✨ Улучшения AI

+ 💬 Адаптивная длина ответов — 1-2 предложения для простых вопросов, 4-5 для сложных
+ 🚫 Запрет ботоподобных фраз — "я помогу", "чем могу помочь", "рад помочь"
+ 🛡️ Улучшенная защита от prompt injection — контекстная проверка атак
+ ⚡ Технический лимит 250 токенов — максимум 5 предложений

🗑️ Удаление системы цитат и стикеров

- ❌ Команда /q — сохранение цитат удалено
- ❌ Golden Fund — автоматические контекстные цитаты удалены
- ❌ Стикер-паки — создание стикеров из цитат удалено
- ❌ Система лайков/дизлайков цитат удалена
- 🧹 Упрощение кодовой базы — удалено 6 файлов, 3 таблицы БД

Причины удаления:

  • Низкое использование функционала
  • Упрощение поддержки и разработки
  • Фокус на основных возможностях бота

🚀 Что было в 8.0

🎭 Система персон — Главная фича

+ 🎭 8 уникальных персон — Олег, The Dude, Сталин, Аниме-тян, Трамп, Путин, Поздняков, Z-Гик
+ 🎲 Рандомный режим — смена персоны каждое сообщение/час/12ч/день
+ 🏠 SDOC Integration — Олег как резидент Steam Deck OC
+ 💍 Система браков — /marry, /divorce, /marriages
+ 😊 Реакции на реакты — Олег реагирует на ❤️👍🔥 и 👎💩
+ 🔒 PP Cage — защитный предмет для PP в магазине
+ 🍆 PP Battle v2 — /pp, /ppo, /ppstats с таймаутами
+ 👤 Досье v2 — /whois с категориями, /editprofile
+ 📊 Daily Summary v2 — LLM-группировка тем
+ ✨ Markdown в ответах — жирный, курсив, код
+ 🛡️ Улучшенная защита — whitelist коротких фраз
+ 🧪 15 property-based tests — Hypothesis

🎮 Mini Games & Economy (v7.5)

+ 🎣 Рыбалка (/fish) — лови рыбу разной редкости и продавай!
+ 🚀 Краш (/crash) — множитель растёт, успей забрать до краша!
+ 🎲 Кости (/dice) — бросай против бота
+ 🔮 Угадай число (/guess) — 7 попыток угадать 1-100
+ 🃏 Война (/war) — карточная игра, у кого старше
+ 🎡 Колесо фортуны (/wheel) — крути и выигрывай до x10!
+ 📦 Лутбоксы (/loot) — открывай коробки за монеты
+ 🐔 Петушиные бои (/cockfight) — выбери петуха и ставь!
+ 🏪 Магазин (/shop) — покупай предметы за монеты
+ 💰 Экономика — баланс, ежедневный бонус, переводы

🎰 Grand Casino & Dictator (v7.0) — Предыдущие фичи

+ 🎮 Game Hub — центральное меню с Inline-кнопками для всех игр
+ 🃏 Blackjack — полноценная игра с Hit/Stand/Double
+ ⚔️ Новая система дуэлей — RPG-стиль с HP-барами и зонами атаки/защиты
+ 🏆 ELO-рейтинг — система рейтинга с K-фактором 32
+ 🎖️ Лиги — Scrap → Silicon → Quantum → Elite
+ 🔒 Anti-Click защита — кнопки защищены от чужих нажатий
+ 🤖 PvE режим — играй против бота Олега
+ 📢 Broadcast Wizard — FSM-wizard для админской рассылки
+ 💬 Reply Context — улучшенный контекст для AI-ответов
+ 🔊 Edge-TTS — миграция на Microsoft Edge TTS
+ 📊 Профиль с картинкой — генерация PNG с аватаром и статистикой
+ 📈 Sparkline для /grow — визуализация истории роста

🎭 Behavior Refinement Update (v6.6) — Предыдущие фичи

+ 🖼️ Отключены авто-ответы на изображения — бот отвечает только при явном упоминании
+ 📉 Снижена частота авто-ответов — базовая вероятность 2-5% (было 15-25%)
+ 📝 Фильтр коротких сообщений — игнорируются сообщения < 15 символов
+ 🚫 Блоклист фраз — "че", "ок", "да", "нет", "лол" не триггерят ответ
+ 💬 Улучшен промпт — короткие ответы 1-3 предложения, без списков
+ 🎭 Более человечный стиль — убраны "рад помочь", литературные обороты

🛡️ Shield & Economy Update (v6.5) — Предыдущие фичи

+ ⚡ Система энергии — персональный cooldown для экономии токенов LLM
+ 🌐 Глобальный rate limit — лимит запросов на чат (20/мин по умолчанию)
+ ⏳ Статус-менеджер — реакции вместо спама уведомлений
+ 🧠 RAG с временной памятью — приоритет свежих фактов
+ 🗑️ Управление памятью — забыть всё/старое/юзера
+ 🚨 Panic Mode — автозащита при 10+ вступлениях за 10 сек
+ 🔐 Проверка прав — бот не угрожает без полномочий
+ 🕵️ Нейро-спам фильтр — детекция продаж, крипты, вакансий
+ 👤 Сканер новичков — проверка аватара, имени, Premium
+ 🔇 Silent Ban — тихое удаление сообщений подозрительных
+ 🛡️ Профили защиты — Стандарт/Строгий/Бункер/Кастом
+ 📊 30 property-based тестов — полное покрытие новых фич

🏰 Fortress Update (v6.0) — Предыдущие фичи

+ 🏰 Система "Цитадель" — многоуровневая защита с DEFCON 1/2/3
+ 🧠 Нейро-Модерация — ИИ-анализ токсичности вместо ключевых слов
+ 🎬 GIF-Патруль — автоматический анализ GIF на запрещённый контент
+ ⭐ Репутационная система — Social Credit с автоматическими санкциями
+ 🔊 TTS — голосовые ответы Олега (/say, авто-озвучка 0.1%)
+ 📝 Умный пересказ — /tl;dr и /summary с озвучкой
+ 🖼️ Улучшенный цитатник — градиенты, цепочки, roast-режим
+ 📦 Стикерпаки — автоматическое управление и ротация
+ 🏆 Золотой Фонд — лучшие цитаты с RAG-поиском
+ 🎖️ Турниры — ежедневные, еженедельные, Grand Cup
+ 🏅 Лиги и ELO — ранговая система для игроков
+ 💬 Живые уведомления — анимированные статусы обработки
+ 📅 Дейлики — утренние саммари и вечерние цитаты
+ 🔔 Уведомления владельцу — рейды, баны, токсичность
+ 🎛️ Админ-панель в ЛС — полное управление чатом
+ ⚙️ Worker Process — Arq для тяжёлых задач
+ 🔒 Усиленная безопасность — HMAC, rate limiting, санитизация

📋 Команды

🎰 Игровые команды

Команда Описание
/games Открыть Game Hub — центральное меню всех игр
/bj <ставка> Начать игру в Blackjack
/challenge @user Вызвать на дуэль (PvP режим)
/challenge Дуэль против Олега (PvE режим)
/roulette <ставка> Русская рулетка с монетами
/coinflip <ставка> орёл/решка Ставка на монетку
/grow Пиписомер с историей роста (15% шанс неудачи, 5% усадки)
/profile Профиль с картинкой (лига, ELO, статистика)
/top Рейтинг игроков
/tournament Показать текущие турнирные таблицы
/fish Рыбалка (кулдаун 90 сек)
/crash Краш-игра (house edge 5%)
/cockfight <ставка> Петушиные бои (мин. ставка 50, кулдаун 60 сек)
/shop Магазин предметов (цены увеличены)
/daily Ежедневный бонус (50 монет)

📢 Админские команды (v7.0)

Команда Описание
/broadcast Wizard для массовой рассылки (только админы)

🎮 Примеры использования (v7.0)

Game Hub

/games
→ Открывает меню с кнопками:
  [🔫 Рулетка] [🎲 Кости] [🥒 Пиписомер]
  [⚔️ Дуэль]   [📊 Топ]   [🏆 Турниры]

Blackjack

/bj 100
→ Начинает игру с ставкой 100 монет
→ Показывает карты: Ты: [K♠][7♥] = 17  |  Олег: [?][9♦]
→ Кнопки: [Hit] [Stand] [Double]

Нажимаешь [Hit] → получаешь карту
Нажимаешь [Stand] → Олег играет до 17+
Нажимаешь [Double] → удваиваешь ставку, берёшь 1 карту, стоп

Дуэли (PvP и PvE)

/challenge @username
→ Вызов на дуэль, ждём согласия

/challenge
→ Мгновенная дуэль против Олега (PvE)

Геймплей:
  Ты: [████████░░] 80%  |  Олег: [██████░░░░] 60%
  
  Атакуй: [Голова] [Тело] [Ноги]
  Защищай: [Голова] [Тело] [Ноги]
  
  Урон проходит если зона атаки ≠ зона защиты

Русская рулетка

/roulette
→ Классическая рулетка (1/6 шанс)
→ Анимация: "Заряжаем..." → "Крутим..." → "БАХ! 💀" или "Щелк... 😅"

/roulette 50
→ Рулетка со ставкой 50 монет
→ Выживание = выигрыш, выстрел = потеря ставки

Coinflip

/coinflip 100 орёл
/coinflip 100 решка
→ Ставка 100 монет на выбранную сторону
→ Выигрыш = удвоение ставки

Профиль и статистика

/profile
→ Генерирует PNG-картинку с:
  - Аватар
  - Username
  - Лига: 💾 Silicon
  - ELO: 750
  - Wins/Losses: 15/8

/grow
→ Показывает размер + sparkline истории за неделю
→ Титулы: "Гигант мысли" (топ-1), "Нано-технолог" (последний)

Broadcast (только админы)

/broadcast
→ Шаг 1: Выбери тип контента
  [Текст] [Фото] [Видео] [Кружочек]

→ Шаг 2: Выбери получателей
  [👤 ЛС Бота] [👥 Группы] [🌍 Везде]

→ Шаг 3: Отправь контент

→ Шаг 4: Подтверди
  [🚀 ОТПРАВИТЬ]

🏰 Остальные команды

Команда Описание
/say <текст> Озвучить текст голосом Олега
/tl;dr Краткий пересказ сообщения (ответом)
/summary Пересказ сообщения или статьи по ссылке
/q Создать цитату из сообщения
/q [N] Создать цепочку из N сообщений (макс. 10)
/q * Цитата с roast-комментарием от Олега
/qs Добавить цитату в стикерпак чата
/qd Удалить стикер из пака (админ)
/советы или /tips Получить советы по управлению чатом
/quests Показать доступные квесты

⚡ Быстрый старт

🐳 Docker (рекомендуется)

# 1. Клонируй
git clone https://github.com/your-repo/oleg-bot && cd oleg-bot

# 2. Настрой
cp .env.docker .env
nano .env  # Добавь TELEGRAM_BOT_TOKEN и OWNER_ID

# 3. Запусти
docker-compose up -d

# 4. Смотри логи
docker-compose logs -f oleg-bot

Готово! 🎉 Бот, Redis, ChromaDB, Worker — всё работает.

🚀 Оптимизации Docker-сборки

  • Multi-stage build — минимальный финальный образ
  • CPU-only PyTorch — ~200MB вместо 800MB
  • Яндекс зеркало PyPI — быстрая загрузка в РФ
  • requirements.prod.txt — без dev-зависимостей (pytest, black, etc.)

🐍 Python (для разработки)

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

# Установи ffmpeg (для голосовых)
# Windows: choco install ffmpeg
# Linux: apt install ffmpeg
# Mac: brew install ffmpeg

# Настрой
cp .env.example .env

# Запусти бота
python -m app.main

# Запусти worker (в отдельном терминале)
python -m app.worker

🎯 Возможности

🤖 ИИ и мультимодальность

  • Q&A с личностью — циничный IT-генералист
  • 2-Step Vision — описание → комментарий в стиле Олега
  • Распознавание стикеров — статичные стикеры обрабатываются как изображения
  • Think Filter — чистые ответы без внутренних рассуждений
  • Голосовые — Whisper STT, ответ текстом
  • TTS — голосовые ответы Олега
  • Видеосообщения — транскрипция кружочков
  • RAG — память на ChromaDB
  • Cross-Topic — видит все топики супергруппы

� ЗИгры и турниры

  • /games — Game Hub с 3 страницами игр
  • /bj — Blackjack против Олега
  • /challenge @user — PvP дуэль с HP-барами
  • /roulette — русская рулетка с анимацией
  • /coinflip — ставки на монетку
  • /grow — пиписомер со sparkline
  • /profile — профиль с картинкой
  • 🆕 Новые игры v7.5:
    • /fish — рыбалка
    • /crash — краш-игра
    • /dice — кости
    • /guess — угадай число
    • /war — карточная война
    • /wheel — колесо фортуны
    • /loot — лутбоксы
    • /cockfight — петушиные бои
  • /shop — магазин предметов
  • Лиги — 🔩 Scrap → 💾 Silicon → ⚛️ Quantum → 👑 Elite
  • ELO — рейтинговая система (K=32)

🖼️ Цитатник

  • /q — создать цитату
  • /q [N] — цепочка сообщений
  • /q * — с roast-комментарием
  • /qs — добавить в стикерпак
  • Градиенты — красивые фоны
  • Золотой Фонд — лучшие цитаты
  • RAG-поиск — релевантные цитаты

📅 Дейлики и уведомления

  • 09:00 — утренний дайджест
  • 21:00 — цитата дня + статистика
  • Raid Alert — уведомление о набеге
  • Ban Notification — уведомление о бане
  • Toxicity Warning — рост токсичности
  • /советы — советы по управлению

🏗️ Архитектура

┌─────────────────────────────────────────────────────────────┐
│                      TELEGRAM API                            │
│         📝 Text  │  🖼️ Images  │  🎤 Voice  │  📹 Video      │
└─────────────────────────────┬───────────────────────────────┘
                              │
┌─────────────────────────────▼───────────────────────────────┐
│                     AIOGRAM 3.x                              │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐           │
│  │ Rate    │ │ DEFCON  │ │Toxicity │ │Blacklist│           │
│  │ Limit   │ │ Filter  │ │ Filter  │ │ Filter  │           │
│  └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘           │
│       └───────────┴───────────┴───────────┘                 │
│                         │                                    │
│  ┌──────────────────────▼──────────────────────┐            │
│  │              HANDLERS                        │            │
│  │  QnA │ Vision │ Voice │ Games │ Admin │ ... │            │
│  └──────────────────────┬──────────────────────┘            │
└─────────────────────────┼───────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                      SERVICES                                │
│  ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐   │
│  │ Citadel   │ │ Reputation│ │   TTS     │ │ Tournaments│   │
│  │ (DEFCON)  │ │  System   │ │  Service  │ │  & Leagues │   │
│  └───────────┘ └───────────┘ └───────────┘ └───────────┘   │
│  ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐   │
│  │  Quote    │ │  Golden   │ │  Alive    │ │  Dailies  │   │
│  │ Generator │ │   Fund    │ │    UI     │ │  Service  │   │
│  └───────────┘ └───────────┘ └───────────┘ └───────────┘   │
└─────────────────────────────────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                   WORKER PROCESS (Arq)                       │
│  ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐   │
│  │    TTS    │ │   Quote   │ │    GIF    │ │ Summarizer│   │
│  │   Task    │ │  Render   │ │  Analysis │ │   Task    │   │
│  └───────────┘ └───────────┘ └───────────┘ └───────────┘   │
└─────────────────────────────────────────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────────────┐
│                      DATA LAYER                              │
│  ┌───────────┐ ┌───────────┐ ┌───────────┐                 │
│  │PostgreSQL │ │   Redis   │ │ ChromaDB  │                 │
│  │  / SQLite │ │   Queue   │ │    RAG    │                 │
│  └───────────┘ └───────────┘ └───────────┘                 │
└─────────────────────────────────────────────────────────────┘

🎛️ Админ-панель для владельцев чатов

Полное управление ботом через личные сообщения. Отправьте /admin боту в ЛС.

Структура меню

📋 Выберите чат для настройки
    └── [Список ваших чатов]
        │
        ├── 🛡️ Protection (Защита)
        │   ├── DEFCON Level [1] [2] [3]
        │   ├── Anti-Spam [ON/OFF]
        │   ├── Profanity Filter [ON/OFF]
        │   ├── Sticker Limit [ON/OFF]
        │   └── Forward Block [ON/OFF]
        │
        ├── 🔔 Notifications (Уведомления)
        │   ├── Raid Alerts [ON/OFF]
        │   ├── Ban Notifications [ON/OFF]
        │   ├── Toxicity Warnings [ON/OFF]
        │   └── Daily Tips [ON/OFF]
        │
        ├── 🎮 Games (Игры)
        │   ├── /grow [ON/OFF]
        │   ├── /pvp [ON/OFF]
        │   ├── /roulette [ON/OFF]
        │   └── Tournaments [ON/OFF]
        │
        ├── 📅 Dailies (Ежедневные)
        │   ├── Morning Summary [ON/OFF]
        │   ├── Evening Quote [ON/OFF]
        │   └── Daily Stats [ON/OFF]
        │
        ├── 🖼️ Quotes (Цитаты)
        │   ├── Theme [Dark/Light/Auto]
        │   ├── Golden Fund [ON/OFF]
        │   └── Sticker Pack [Manage]
        │
        └── ⚙️ Advanced (Расширенные)
            ├── Toxicity Threshold [0-100]
            ├── Mute Duration [minutes]
            └── Custom Banned Words [Edit]

Важно: Админ-панель доступна только в личных сообщениях с ботом. При использовании /admin в группе бот ответит: "Админка доступна только в личных сообщениях. Напиши мне в ЛС."


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

Встроенные механизмы защиты

Механизм Описание
Input Sanitization Очистка всех входных данных от SQL-инъекций, XSS, command injection
Rate Limiting Ограничение 30 сообщений/минуту, блокировка на 5 минут при превышении
HMAC Callbacks Подпись callback-данных для предотвращения подделки
File Validation Проверка типа и размера файлов (макс. 20MB)
Real-time Admin Check Проверка прав админа через Telegram API в реальном времени
Error Sanitization Скрытие внутренних деталей ошибок от пользователей
Abuse Detection Автоматическое обнаружение паттернов злоупотребления
Security Blacklist Временная блокировка подозрительных пользователей

Рекомендации по деплою

  1. Используйте переменные окружения для всех секретов (токены, ключи)
  2. Включите DEFCON 2 по умолчанию для новых чатов
  3. Настройте уведомления владельцу о рейдах и банах
  4. Регулярно проверяйте логи на подозрительную активность
  5. Используйте Docker для изоляции
  6. Настройте firewall — откройте только необходимые порты

Система DEFCON для защиты чата

Система "Цитадель" предоставляет три уровня защиты:

  • DEFCON 1 — для спокойных чатов с доверенными участниками
  • DEFCON 2 — рекомендуется для большинства публичных чатов
  • DEFCON 3 — для чатов под атакой или с высоким риском

При обнаружении массового вступления (5+ за 60 сек) автоматически активируется Raid Mode.


🛠️ Стек технологий

Компонент Технология Описание
Runtime Python 3.10+ Async everywhere
Telegram aiogram 3.x Современный async API
LLM Ollama DeepSeek, Qwen, GLM
Vision Qwen-VL 2-step pipeline
STT Whisper Распознавание речи
TTS Edge-TTS / Silero Синтез речи
Database PostgreSQL / SQLite SQLAlchemy async
Cache Redis Rate limiting, sessions, queue
Vector DB ChromaDB RAG память
Worker Arq Async task queue
Metrics Prometheus Мониторинг
Dashboard Grafana Визуализация
Testing Hypothesis Property-based tests
Container Docker Деплой

⚙️ Конфигурация

# Telegram
TELEGRAM_BOT_TOKEN=your_token
OWNER_ID=your_telegram_id

# Ollama — три модели для разных задач
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_BASE_MODEL=deepseek-v3.2:cloud         # Текст
OLLAMA_VISION_MODEL=qwen3-vl:235b-cloud       # Изображения
OLLAMA_MEMORY_MODEL=glm-4.6:cloud             # RAG

# Fallback модели (локальные, когда cloud недоступен)
OLLAMA_FALLBACK_ENABLED=true
OLLAMA_FALLBACK_MODEL=gemma3:12b              # Хорошо следует инструкциям
OLLAMA_FALLBACK_VISION_MODEL=gemma3:12b       # Поддерживает vision
OLLAMA_FALLBACK_MEMORY_MODEL=gemma3:12b

# Web Search (Anti-Hallucination)
# Приоритет: SearXNG → Brave → DuckDuckGo
SEARXNG_URL=http://searxng:8080               # Docker контейнер (рекомендуется)
BRAVE_SEARCH_API_KEY=                         # Опционально: 2000 запросов/мес бесплатно

# Голосовые сообщения
VOICE_RECOGNITION_ENABLED=true
WHISPER_MODEL=base  # tiny/base/small/medium/large

# Database
DATABASE_URL=sqlite+aiosqlite:///./data/oleg.db

# Redis (обязательно для Worker)
REDIS_ENABLED=true
REDIS_HOST=redis
REDIS_PORT=6379

Полный список в .env.example


📊 Метрики

# Prometheus метрики
curl http://localhost:9090/metrics

# Health check
curl http://localhost:9090/health

Доступные метрики:

  • bot_messages_processed_total — обработанные сообщения
  • bot_ollama_requests_total — запросы к LLM
  • bot_ollama_request_duration_seconds — время ответа
  • bot_voice_transcriptions_total — распознанные голосовые
  • bot_tts_generations_total — сгенерированные голосовые
  • bot_vision_requests_total — анализ изображений
  • bot_games_played_total — сыгранные игры
  • bot_toxicity_incidents_total — инциденты токсичности
  • bot_raid_activations_total — активации Raid Mode

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

# Все тесты
pytest

# Property-based тесты
pytest tests/property/ -v

# С покрытием
pytest --cov=app --cov-report=html

# Только unit
pytest tests/unit/

# Только integration
pytest tests/integration/

📈 Roadmap

✅ Реализовано (v8.0 SDOC Edition)

  • 🎭 Система персон — 8 уникальных персон с рандомным режимом
  • 🏠 SDOC Integration — эксклюзивный режим, синхронизация админов
  • 💍 Система браков — /marry, /divorce, /marriages
  • 😊 Реакции на реакты — позитивные и негативные реакции
  • 🔒 PP Cage — защитный предмет в магазине
  • 🍆 PP Battle v2 — /pp, /ppo, /ppstats
  • 👤 Досье v2 — /whois с категориями, /editprofile
  • 🖼️ Цитатник v3 — светлая тема, стикеры, аватарки
  • 📊 Daily Summary v2 — LLM-группировка тем
  • ✨ Markdown в ответах — форматирование
  • 🛡️ Улучшенная защита — whitelist коротких фраз
  • 🧪 15 property-based tests — Hypothesis

✅ Реализовано (v7.9 Anti-Hallucination & Web Search)

  • 🔍 SearXNG в Docker — свой поисковик без лимитов
  • 🌐 Умный веб-поиск — SearXNG → Brave → DDG с ротацией UA
  • 📚 База знаний 2025 — RTX 50, RX 9000, Ryzen 9000, Core Ultra
  • � УFallback модели — gemma3:12b при недоступности cloud
  • � Voйice/Vision в старых топиках — safe_reply() для форумов
  • 🛡️ Мультиязычная защита — 8 языков, base64, zero-width
  • � ЛРазличение пользователей — контекст "ТЕКУЩИЙ СОБЕСЕДНИК"
  • � Кеонтекст чата — название, описание, тип

✅ Реализовано (v7.5 Mini Games & Economy)

  • 🎣 Рыбалка — 6 уровней редкости, каталог рыб
  • 🚀 Краш — реалтайм множитель, кнопка "ЗАБРАТЬ"
  • 🎲 Кости — бросок против бота с визуализацией
  • 🔮 Угадай число — 7 попыток, подсказки
  • 🃏 Война — карточная игра
  • 🎡 Колесо фортуны — 8 секторов до x10
  • 📦 Лутбоксы — 4 типа с разными дропами
  • 🐔 Петушиные бои — 3 тира петухов
  • 🏪 Магазин — категории, inline-кнопки
  • 💰 Экономика — баланс, daily, transfer

✅ Реализовано (v7.0 Grand Casino & Dictator)

  • Game Hub — центральное меню с Inline-кнопками
  • State Manager — отслеживание активных игровых сессий
  • Anti-Click защита — кнопки защищены от чужих нажатий
  • Blackjack — полноценная игра с Hit/Stand/Double
  • Новая система дуэлей — RPG-стиль с HP-барами и зонами
  • PvE режим — игра против бота Олега
  • ELO-рейтинг — система рейтинга с K-фактором 32
  • Лиги — Scrap/Silicon/Quantum/Elite по ELO
  • Профиль с картинкой — PNG с аватаром и статистикой
  • Sparkline для /grow — визуализация истории роста
  • Broadcast Wizard — FSM для админской рассылки
  • Reply Context — улучшенный контекст для AI
  • Edge-TTS — миграция на Microsoft Edge TTS
  • 21 property-based тест — полное покрытие новых фич

✅ Реализовано (v6.6 Behavior Refinement)

  • Отключены авто-ответы на изображения — только при явном упоминании
  • Снижена частота авто-ответов — 2-5% базовая, 15% максимум
  • Фильтр коротких сообщений — минимум 15 символов
  • Блоклист коротких фраз — "че", "ок", "да", "нет", "лол" и др.
  • Улучшен промпт Олега — короткие ответы, без списков, человечный стиль
  • Property-based тесты — покрытие всех изменений поведения

✅ Реализовано (v6.5 Shield & Economy)

  • Система энергии — персональный cooldown (3 запроса, 60 сек восстановление)
  • Глобальный rate limit — лимит на чат с настройкой через админку
  • Статус-менеджер — ⏳ реакции вместо спама уведомлений
  • RAG с временной памятью — ISO 8601 timestamps, приоритет свежих фактов
  • Управление памятью — забыть всё/старое (90 дней)/юзера
  • Panic Mode — автозащита при массовых вступлениях/флуде
  • Проверка прав бота — тихий репорт админам при отсутствии прав
  • Нейро-спам фильтр — детекция продаж, крипты, вакансий, коллабов
  • Сканер новичков — проверка аватара, имени, Premium статуса
  • Silent Ban — тихое удаление сообщений с captcha для разбана
  • Профили защиты — Стандарт/Строгий/Бункер/Кастом
  • 30 property-based тестов — полное покрытие Hypothesis

✅ Реализовано (v6.0 Fortress Update)

  • Система "Цитадель" — DEFCON 1/2/3
  • Нейро-модерация — ИИ-анализ токсичности
  • GIF-Патруль — анализ анимаций
  • Репутационная система — Social Credit
  • TTS — голосовые ответы
  • Умный пересказ — /tl;dr, /summary
  • Улучшенный цитатник — градиенты, цепочки
  • Стикерпаки — автоуправление
  • Золотой Фонд — лучшие цитаты
  • Турниры — daily/weekly/Grand Cup
  • Лиги и ELO — ранговая система
  • Живые уведомления — Alive UI
  • Дейлики — утренние/вечерние сообщения
  • Уведомления владельцу — рейды, баны
  • Админ-панель в ЛС — полное управление
  • Worker Process — Arq для тяжёлых задач
  • Усиленная безопасность — HMAC, rate limiting

🔜 В планах (v8.1+)

  • Webhook mode для высоких нагрузок
  • Multi-language (i18n)
  • Plugin system
  • Web dashboard
  • API для интеграций

📚 Документация

Документ Описание
QUICKSTART.md Быстрый старт за 5 минут
INSTALLATION.md Подробная установка
TESTING.md Руководство по тестам
CHANGELOG.md История изменений

🤖 Личность Олега

Ты — Олег. Цифровой гигачад, ветеран кремниевых войн.

ХАРАКТЕР:
• Циничный IT-генералист — знаешь всё, отвечаешь на любые вопросы
• Язык — техжаргон + мат + интернет-сленг
• Адаптивность — не форсишь железо в разговорах о котиках

МУЛЬТИМОДАЛЬНОСТЬ:
• Видит скриншоты и комментирует в своём стиле
• Слышит голосовые и отвечает по делу
• Говорит голосом — TTS в своём стиле
• Помнит контекст из всех топиков

Ты живешь в этом чате. Это твоя территория. Ты здесь закон.

🐳 Docker Compose

services:
  oleg-bot:
    build: .
    ports:
      - "9090:9090"
    depends_on:
      - redis
      - chromadb
      - searxng
    
  oleg-worker:
    build: .
    command: python -m app.worker
    depends_on:
      - redis
    
  redis:
    image: redis:7-alpine
    
  chromadb:
    image: ghcr.io/chroma-core/chroma:latest
  
  # SearXNG — метапоисковик для веб-поиска (Anti-Hallucination)
  searxng:
    image: searxng/searxng:latest
    ports:
      - "8080:8080"

🤝 Contributing

  1. Fork репозитория
  2. Создай feature branch (git checkout -b feature/amazing)
  3. Commit изменения (git commit -m 'Add amazing feature')
  4. Push в branch (git push origin feature/amazing)
  5. Открой Pull Request

📝 Лицензия

MIT License. Делай что хочешь, но не забудь звёздочку ⭐


Made with 🔥 and mass amounts of ☕

Олег не несёт ответственности за обиженных пользователей

About

Твой личный кибер-кентуха. Поясняю за железо, разгоняю скуку и баню душнил. Работаю на Gemini, живу по понятиям.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages