3ddcc02e2ff796b35731c20bada46c8707f4c505
AI RPG — гибкая ролевая игра с ИИ
Веб-приложение для проведения ролевых игр с искусственным интеллектом. FastAPI (backend) + React/Vite/TypeScript (frontend) + PostgreSQL + Redis + Qdrant. Упаковано в Docker Compose.
Возможности
- Регистрация / аутентификация пользователей
- Первичная инициализация администратора по одноразовому токену (выводится в консоль backend при первом запуске)
- Панель администратора: настройка OpenAI-совместимого endpoint'а, токена, модели, параметров генерации, лимитов контекста
- Создание мира: пресет (встроенный Fantasy) или с нуля через многошаговый диалог с ИИ
- ИИ генерирует: расширенный сеттинг, правила, JSON-схему состояния мира (характеристики, инвентарь, статы), начальную дату/время, общие рельсы сюжета
- Игрок правит и подтверждает → запускается первая итерация
- Сессия: чат-интерфейс со стримингом, глоссарий (RAG), лист персонажа, кнопки опций + свободный ввод
- Итерация: ИИ использует инструменты (dice, RAG, обновление состояния, sub-агенты, отложенные триггеры) и пишет сценарный шаг + технический "за-кадровый" шаг
- Контекстный менеджер: гарантированные последние N сообщений + динамическая граница с суммаризацией
- Отложенные триггеры, привязанные к дате/времени мира (background worker)
- Двуязычный UI (RU/EN)
- Логирование всех LLM-вызовов в БД
Быстрый старт
# 1. Скопировать .env и при необходимости отредактировать
cp .env.example .env
# 2. Поднять стек
docker compose up --build
# 3. В логах backend найти строку:
# "ADMIN_SETUP_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx"
# (или задать ADMIN_SETUP_TOKEN в .env вручную)
# 4. Открыть http://localhost:5173
# - Перейти на /admin/setup
# - Ввести токен → создать учётку администратора
# - Зайти в Admin Panel → настроить LLM endpoint
# 5. Зарегистрировать обычного пользователя и начать создавать мир
Архитектура
┌────────────┐ SSE ┌────────────────────────────┐
│ Frontend │ <──────► │ FastAPI backend │
│ React/Vite │ HTTP │ - auth (JWT) │
└────────────┘ │ - admin / settings │
│ - worlds / sessions │
│ - engine (orchestrator) │
│ - tools (dice/rag/...) │
│ - context manager │
│ - trigger runner │
└──┬──────────┬──────────┬───┘
│ │ │
┌────────▼─┐ ┌─────▼────┐ ┌───▼─────┐
│PostgreSQL│ │ Redis │ │ Qdrant │
│ (data) │ │ (queues) │ │ (RAG) │
└──────────┘ └──────────┘ └─────────┘
Локальная разработка
# Backend hot reload
docker compose up backend postgres redis qdrant
# Frontend dev
docker compose up frontend
# Миграции (автоматически при старте backend, но можно вручную)
docker compose exec backend python -m app.migrations.init_db
Структура проекта
ai-rpg/
├── docker-compose.yml
├── .env.example
├── backend/
│ ├── Dockerfile
│ ├── requirements.txt
│ └── app/
│ ├── main.py # FastAPI entrypoint
│ ├── config.py # Settings
│ ├── api/ # Routers
│ ├── core/ # LLM client, security, rag
│ ├── engine/ # Game orchestrator
│ │ └── tools/ # LLM tool-call handlers
│ ├── models/ # SQLAlchemy models
│ ├── schemas/ # Pydantic schemas
│ ├── prompts/ # Bilingual prompt templates
│ └── workers/ # Background workers (triggers)
└── frontend/
├── Dockerfile
├── package.json
└── src/
├── api/ # API client
├── components/ # UI components
├── pages/ # Page components
├── store/ # Zustand stores
├── hooks/ # React hooks
└── i18n/ # RU/EN translations
Лицензия
MIT
Description
Languages
Python
53.9%
TypeScript
45.4%
CSS
0.4%
JavaScript
0.2%