Этот бот помогает игрокам в Dota 2 принимать взвешенные решения на этапе драфта: подбирать контрпики, избегать неблагоприятных матчапов, строить оптимальные сборки и тактику. Анализ основан на данных о героях и генерируется с помощью нейросети GigaChat от Сбера.
- 🆓 3 бесплатных анализа драфта при первом запуске.
- 🧩 Интерактивный драфт: пошаговое моделирование официального порядка банов и пиков (26 этапов).
- 📊 Мгновенный анализ: бот выдаёт рекомендации по:
- следующему герою для пика/бана,
- позиции и роли,
- сборке предметов,
- прокачке способностей,
- тактике на ранней, средней и поздней стадиях игры.
- 🌐 Актуальные данные: список героев и текущий патч автоматически обновляются из Steam Web API.
- 💎 Безлимитные запросы.
- ⚡ Приоритетная обработка (в будущем — приоритет в очереди к нейросети).
/stat— статистика: общее число пользователей, премиум-подписок, среднее число бесплатных запросов./reload— принудительное обновление списка героев из Steam API.
Бот точно следует официальному турнирному драфту Dota 2 (26 шагов):
1–6: Ban (3 на каждую команду)
7–10: Pick (Radiant, Dire, Dire, Radiant)
11–14: Ban (2 на каждую команду)
15–18: Pick (Radiant, Dire, Dire, Radiant)
19–22: Ban (2 на каждую команду)
23–26: Pick (Dire, Radiant, Radiant, Dire)
Пользователь выбирает сторону (Radiant или Dire) и последовательно делает выбор за обе команды, чтобы смоделировать реальный драфт.
- 1 месяц — 100 ⭐️ (Telegram Stars)
- 3 месяца — 250 ⭐️ (экономия 17%)
После оплаты подписка активируется автоматически и даёт неограниченный доступ к анализу.
Бот использует SQLite (app/database/dota_copilot.db) с одной таблицей:
| Поле | Описание |
|---|---|
user_id |
Уникальный ID Telegram |
free_requests |
Оставшиеся бесплатные запросы (по умолчанию — 3) |
subscribed |
Флаг активной подписки (TRUE/FALSE) |
subscription_end |
Дата окончания подписки |
registration_date |
Дата первого запуска |
name |
Имя пользователя в Telegram |
Все данные хранятся локально. Персональная информация не передаётся третьим лицам.
- Загружает актуальный список героев (на русском языке).
- Определяет текущий патч игры через последний матч в публичной истории.
- Обновляется ежедневно в 02:00 UTC через APScheduler.
- Генерирует аналитику на основе системного промпта и текущего драфта.
- Использует авторизацию через Basic Auth (ключ из
.env). - Ответы очищаются от Markdown (
**,#) для корректного отображения в Telegram.
- Python 3.10+
- Docker (опционально)
git clone https://github.com/your-username/dota2-draft-sage.git
cd dota2-draft-sagepip install -r requirements.txtСоздайте файл .env в корне проекта:
TELEGRAM_BOT_TOKEN=your_bot_token
ADMIN_ID=your_telegram_id
STEAM_API_KEY=your_steam_web_api_key
GIGACHAT_AUTH_KEY=your_base64_encoded_gigachat_key
CURRENT_PATCH=7.36
SYSTEM_PROMPT=Вы — эксперт по Dota 2 с 10-летним опытом...🔑 GIGACHAT_AUTH_KEY — это Base64-кодированная строка вида
client_id:secret. Получите её в личном кабинете GigaChat.
python dotabot.pyИли через Docker:
docker build -t dota2-bot .
docker run -v $(pwd)/.env:/app/.env dota2-bot
dotabot.py # Основной файл бота
Dockerfile # Для контейнеризации
requirements.txt
.env # Переменные окружения (не в Git)
app/
├── config.py # Константы (цены, порядок драфта)
├── keyboards.py # Генерация клавиатур
├── state.py # FSM состояния драфта
├── sub_manager.py # Логика подписок
├── database/
│ └── user.py # Работа с SQLite
└── api/
├── gigachat.py # Интеграция с GigaChat
└── steam.py # Работа с Steam API
- Бот не хранит историю драфтов — каждый сеанс независим.
- Анализ зависит от качества промпта и данных GigaChat.
- Для работы обязательно наличие валидных API-ключей от Steam и GigaChat.
/start→ «Начать анализ»- Выбрать сторону: Radiant или Dire
- Пошагово выбирать героев и баны
- Нажать «📊 Анализ текущего драфта»
- Получить детальные рекомендации от ИИ