FAIRS is a research web application for roulette training and inference experiments. It includes:
- A FastAPI backend for dataset ingestion, training orchestration, checkpoint management, inference sessions, and persistence.
- A React + Vite frontend for training and inference workflows.
The GitHub Releases page provides the versioned repository source ZIP for each release. This project is distributed as source for local web-mode execution; it does not provide a desktop installer or Windows executable.
Run from repository root:
start_on_windows.ps1The interactive launcher prepares local dependencies, builds the frontend, and starts FastAPI plus the Vite preview server. Select option 2 to install or update dependencies without launching.
Runtime profile files:
- Template:
settings/.env.example - Active profile: ignored local file
settings/.env(created automatically from the template) - Non-database backend settings:
settings/configurations.json
Initialize .env manually if needed:
copy /Y settings\.env.example settings\.envUse .env for runtime variables and all database settings; use configurations.json only for non-database backend settings such as job polling and device defaults. A database block in configurations.json is invalid and rejected at startup.
Database backend selection is defined in settings/.env (EMBEDDED_DATABASE).
SQLite(EMBEDDED_DATABASE=true):- The application initializes the database automatically on startup only when the user-data database is missing.
- Initialization creates schema objects and seeds required data.
- If
database.dbalready exists, startup skips initialization.
PostgreSQL(EMBEDDED_DATABASE=false):- The application does not initialize PostgreSQL automatically during startup.
- Initialization is manual via:
.\start_on_windows.ps1Select option 3, Initialize database, to run app/scripts/initialize_database.py.
app/scripts/initialize_database.py can also initialize SQLite when SQLite mode is selected, but this is normally unnecessary because SQLite initialization is already handled automatically by app startup.
- Start the app:
start_on_windows.ps1 - Open the UI and upload or generate dataset data.
- Run training and manage checkpoints.
- Start inference sessions using a selected checkpoint.
Run full automated tests:
app\tests\run_tests.batOptional direct pytest commands:
uv run pytest -q app/tests/unit
uv run pytest -q app/tests/e2eUse:
start_on_windows.ps1The interactive menu supports launching, dependency installation, database initialization, tests, log cleanup, cache cleanup, and uninstalling local dependencies while preserving user data.
- Application data:
app/resources;FAIRS_USER_DATA_DIRcan override the mutable data root - Launcher-managed runtimes and environment:
runtimes
Detailed operational guidance is available in:
assets/docs/project_index.mdassets/docs/operations/quick_start.mdassets/docs/operations/workflows.mdassets/docs/operations/troubleshooting.mdassets/docs/runtime/startup.mdassets/docs/runtime/deployment.mdassets/docs/architecture/system_overview.md
DQN agent learning roulette over 30 episodes (epsilon-greedy exploration with decay):
Desktop view of dataset upload, dataset selection, checkpoint panels, and the live training monitor.
Mobile rendering of the same training workspace with the controls stacked for a narrow viewport.
This project is licensed under the MIT License. See LICENSE for details.


