Телеграм-бот для многопользовательской игры, в которой игроки соревнуются против нейросети Gemini в различных сценариях выживания.
Against AI - это интерактивная игра для Telegram, которая позволяет игрокам объединяться в лобби и соревноваться в различных экстремальных ситуациях. Главная особенность игры заключается в том, что нейросеть Gemini оценивает шансы на выживание каждого игрока и создаёт захватывающую историю на основе действий игроков.
- Многопользовательский режим: несколько игроков могут объединяться в одном лобби
- Управление лобби: создание лобби, приглашение других игроков, назначение капитана
- Выбор сценариев: капитан может выбрать готовый сценарий или создать свой
- Интерактивный интерфейс: удобное отслеживание статуса игры и действий игроков
- Динамические истории: нейросеть генерирует уникальные истории на основе действий каждого игрока
- Игроки объединяются в лобби
- Капитан выбирает или создаёт сценарий для игры
- Каждый игрок описывает свои действия в данной ситуации
- Нейросеть Gemini анализирует действия и оценивает шансы на выживание
- Игроки получают захватывающую историю о том, что произошло с каждым из них
- В конце истории указывается, кто выжил, а кто нет
- Игра начинается заново с новым сценарием
- Python 3.8+
- Токен Telegram бота (получается у @BotFather)
- API ключ Gemini (получается в Google AI Studio)
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/againstAI.git cd againstAI -
Создайте файл с переменными окружения:
cp .env.example .env
-
Отредактируйте файл
.env, добавив свои токены:BOT_TOKEN=your_telegram_bot_token GEMINI_API_KEY=your_gemini_api_key -
Запустите контейнер с помощью Docker Compose:
docker-compose up -d
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/againstAI.git cd againstAI -
Создайте виртуальное окружение и активируйте его:
python -m venv venv # Для Windows venv\Scripts\activate # Для Linux/Mac source venv/bin/activate
-
Установите зависимости:
pip install -r requirements.txt
-
Создайте файл с переменными окружения:
cp .env.example .env
-
Отредактируйте файл
.env, добавив свои токены:BOT_TOKEN=your_telegram_bot_token GEMINI_API_KEY=your_gemini_api_key -
Запустите бота:
python main.py
/start- Создать новое лобби/join <lobby_id>- Присоединиться к существующему лобби/lobby- Показать информацию о текущем лобби/leave- Покинуть текущее лобби/startgame- Начать игру (только для капитана)
- Первый игрок создаёт лобби командой
/start - Он становится капитаном и может пригласить других игроков, поделившись ID лобби
- Другие игроки присоединяются командой
/join <lobby_id> - Когда все игроки присоединились, капитан начинает игру
- Капитан выбирает сценарий или вводит свой
- Игроки отправляют свои действия в выбранном сценарии
- Нейросеть анализирует действия и создает историю
- Игроки получают результат с указанием выживших
- Капитан начинает новый раунд с новым сценарием
Вы можете добавить свои сценарии, отредактировав файл data/scenarios.txt. Каждый сценарий должен быть на отдельной строке.
main.py- Точка входа приложенияconfig.py- Конфигурационные параметрыmodels.py- Модели данных (лобби, игроки)handlers/- Обработчики команд и сообщенийservices/- Интеграция с внешними сервисами (Gemini API)utils/- Вспомогательные функцииdata/- Данные (сценарии)
Бот реализует ряд мер безопасности:
- Валидация имен и фамилий игроков
- Ограничение длины сценариев и действий
- Фильтрация специальных символов в текстовых данных
- Запуск в Docker с пользователем с ограниченными правами