Стриминговая игра «Мафия» с AI-игроками. Backend на FastAPI ведёт игру и оркестрирует вызовы моделей, frontend на React показывает круглый стол, реплики игроков и журнал событий в реальном времени.
Windows:
ЗАПУСК.bat
Linux / macOS:
./start.sh
В меню:
- УСТАНОВКА (первый раз) — поставит Python и Node.js зависимости
- ЗАПУСК ИГРЫ — откроет интерфейс с круглым столом
- Играйте на http://localhost:3000
- Python 3.9+ — backend (AI логика)
- Node.js 16+ — frontend (UI). Без Node.js доступен только API.
Положите ключи в Примеры/scout_keys.json:
{
"openrouter": ["sk-or-..."],
"gemini": ["..."],
"cerebras": ["..."],
"github": ["ghp_..."]
}Альтернативно — задайте переменные окружения:
OPENROUTER_API_KEY, GEMINI_API_KEY, CEREBRAS_API_KEY, GITHUB_TOKEN.
Если ключей нет — игра работает в offline-режиме (заглушка вместо AI), все фазы и логика по-прежнему отрабатывают.
Через интерфейс (http://localhost:3000)
- Жмёте «+ Новая игра»
- Указываете название и число игроков
- На вкладке «Настройки» раздаёте роли (мафия, мирные, комиссар, доктор, маньяк)
- Кнопка «▶ Следующая фаза» прокручивает игру по фазам — или «▶▶ Авто» для автостриминга
Через API (http://localhost:8000/docs)
POST /games/create
{ "name": "Моя игра", "players": ["A","B","C","D","E","F"], "season": "season_1" }
POST /games/{game_id}/setup
{ "mafia": 2, "civilian": 2, "commissioner": 1, "doctor": 1, "maniac": 0 }
POST /games/{game_id}/night-actions
POST /games/{game_id}/discussion
POST /games/{game_id}/voting
GET /games/{game_id}
POST /games/{game_id}/auto-step # автоматически продвигает на следующую фазуПодбираются автоматически из ваших ключей с фолбэком при ошибке:
- OpenRouter — Llama 3.3 70B, Qwen 2.5 72B (бесплатные)
- Cerebras — Llama3.1 8B (быстрая)
- Google Gemini — Flash
- GitHub Models — GPT-4o, GPT-4o Mini
При ошибке провайдера запрос автоматически переходит к следующему доступному.
- 🔴 Мафия — убивает ночью
- 🟢 Мирный — ищет мафию голосованием
- 🔵 Комиссар — ночью проверяет игрока
- 💚 Доктор — ночью защищает игрока
- 🟣 Маньяк — убивает в одиночку, играет сам за себя
backend/
app/
ai/ # AI оркестратор (мультипровайдер + offline-stub)
game/ # роли, состояние, движок фаз
memory/ # заметки игроков между фазами
main.py # FastAPI приложение
requirements.txt
frontend/
src/
components/ # RoundTable, SidePanel, NewGameDialog
styles/ # стили круглого стола
App.jsx
package.json
Примеры/
scout_keys.json # ⭐ ваши ключи
ЗАПУСК.bat # ⭐ Windows-лаунчер
start.sh # ⭐ Linux/macOS-лаунчер
ЗАПУСК.bat → 3. ТЕСТ + ПРОВЕРКА покажет состояние Python/Node/бэкенда.
Логи backend идут в /tmp/neuro-mafia-backend.log.
- UI: http://localhost:3000
- API Swagger: http://localhost:8000/docs
- Health: http://localhost:8000/health
Приятной игры! 🎭🎮