Skip to main content

Web-based GUI for LizyML

Project description

LizyStudio

PyPI version Python License: MIT CI

A web-based GUI for machine-learning workflows. Configure, train, evaluate, tune, and run inference — all from your browser, no code required.

LizyStudio wraps ML backend libraries (starting with LizyML) behind an adapter layer, so the same interface works across different backends.

Workspace

Features

Workspace — iterative ML workflow in a single page

Configure data, model parameters, cross-validation, and run training — all without leaving the page. Results appear in real-time via WebSocket.

  • JSON-Schema-driven config forms — backend schemas are rendered automatically; no hand-written UI per backend
  • CV fold preview and column value distribution bars
  • BlockedGroupKFold 2-axis editor for complex split strategies
  • Config upload/download (YAML/JSON)

Jobs — training lifecycle management

Jobs

Browse all fit and tune jobs. Inspect metrics, feature importance, learning curves, and confusion matrices. Export trained models or standalone Python code.

  • KPI cards with key metrics at a glance
  • Feature importance with kind selection (split, gain, SHAP)
  • Learning curve plots with per-fold filtering
  • Model export as artifacts or dependency-free Python code

Tune — hyperparameter optimization

Tune

Define search spaces with fixed/range modes, run Optuna-powered hyperparameter tuning, and compare trial results.

  • Search space editor with default range auto-population
  • Real-time trial progress with fold-level scores

Inference — apply models to new data

Predict on new datasets using any completed job's model. Optionally include SHAP explanations and evaluate against ground truth.

  • Prediction table with pagination
  • Evaluation metrics and plots (when ground truth is available)
  • Distribution comparison between inference runs
  • CSV download of results

Adapter architecture

Plug in new ML backends by implementing a single Python protocol. The GUI adapts automatically — no frontend changes needed.

See the Adapter Guide for implementation details.

Requirements

  • Python 3.10+

Installation

pip install lizystudio

Quick start

lizystudio              # starts the server on http://localhost:8501
lizystudio --port 9000  # custom port

Open your browser and navigate to the URL shown in the terminal.

Typical workflow

  1. Load data — upload a CSV/Parquet or select a local file
  2. Configure model — adjust parameters or use smart defaults
  3. Train — click Fit (single run) or Tune (hyperparameter search)
  4. Review results — metrics, plots, and feature importance appear in real-time
  5. Export — save the trained model or generate standalone Python code
  6. Inference — apply the model to new data

Tech stack

Layer Technology
Backend Python, FastAPI, Uvicorn
Frontend React 19, TypeScript, Vite
UI Tailwind CSS, shadcn/ui
ML backend LizyML (LightGBM + scikit-learn)
Type safety Pydantic → OpenAPI → openapi-typescript
Linting Ruff (Python), Biome (TypeScript)
Testing pytest, Vitest, Playwright

Development

Prerequisites

  • Python 3.10+ with uv
  • Node.js 20+ with pnpm v9

Setup

# Clone
git clone https://github.com/nbx-liz/LizyStudio.git
cd LizyStudio

# Backend
uv sync
uv run lizystudio --reload          # dev server on http://localhost:8501

# Frontend (in a separate terminal)
cd frontend
pnpm install
pnpm dev                            # Vite dev server on http://localhost:5173

Commands

# Backend
uv run pytest                       # run tests
uv run ruff check .                 # lint
uv run ruff format --check .        # format check
uv run mypy src/lizystudio/         # type check

# Frontend
cd frontend
pnpm build                          # production build → src/lizystudio/static/
pnpm check                          # Biome lint + format
pnpm test                           # Vitest
pnpm test:e2e                       # Playwright E2E
pnpm generate:api                   # regenerate API types from OpenAPI
pnpm storybook                      # component development

Documentation

Document Description
Architecture System overview, layer responsibilities, data flow
API Reference REST endpoints, WebSocket, error codes
Adapter Guide How to implement a new ML backend
Contributing Development workflow, conventions, quality gates
Changelog Release history
Security Vulnerability reporting, security design

Contributing

Contributions are welcome! Please read the Contributing Guide for the development workflow, commit conventions, and quality requirements.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lizystudio-0.3.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lizystudio-0.3.0-py3-none-any.whl (111.5 kB view details)

Uploaded Python 3

File details

Details for the file lizystudio-0.3.0.tar.gz.

File metadata

  • Download URL: lizystudio-0.3.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lizystudio-0.3.0.tar.gz
Algorithm Hash digest
SHA256 1ee7971043d00be8e34a2b07399b21e5d319ed5a8a5302af7b235ed329eec6c2
MD5 578c8ec413aaeadcaf7d352ad1a30959
BLAKE2b-256 718a9bc16a933b3433b0ad0de1abe781c751805fd66df2883d57fb124943e7e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for lizystudio-0.3.0.tar.gz:

Publisher: publish.yml on nbx-liz/LizyStudio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lizystudio-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: lizystudio-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 111.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lizystudio-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f9dda387317ed6f86dfdcd049ec95abef6790b731975902363414d0aeb7783c7
MD5 8222859748e2d29e906b4ac5b7351743
BLAKE2b-256 9fe1a02a5d82a291d176d5bbe0af6c301560b8f90e6a1e2ed1c21889e4093036

See more details on using hashes here.

Provenance

The following attestation bundles were made for lizystudio-0.3.0-py3-none-any.whl:

Publisher: publish.yml on nbx-liz/LizyStudio

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page