Metadata-Version: 2.4
Name: oneopen-ml-studio
Version: 1.0.0
Summary: Open-source local-first ML data platform: annotate, version, and train CV datasets — expanding to multi-modal collaborative ML workflows
Author: oneopensource
Maintainer: oneopensource
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/1-OpenSource/OneOpen-ML-Studio
Project-URL: Documentation, https://oneopensource.org/oneopen-ml-studio/
Project-URL: Repository, https://github.com/1-OpenSource/OneOpen-ML-Studio
Project-URL: Issues, https://github.com/1-OpenSource/OneOpen-ML-Studio/issues
Project-URL: Bug Tracker, https://github.com/1-OpenSource/OneOpen-ML-Studio/issues
Keywords: ml-studio,mlops,dataset,annotation,computer-vision,yolo,sam,training,labeling,local-first,self-hosted
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: fastapi>=0.110.0
Requires-Dist: uvicorn[standard]>=0.27.0
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: pydantic-settings>=2.1.0
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: jinja2>=3.1.0
Requires-Dist: aiofiles>=23.2.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: opencv-python-headless>=4.8.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: httpx>=0.26.0
Requires-Dist: itsdangerous>=2.1.0
Provides-Extra: yolo
Requires-Dist: ultralytics>=8.3.0; extra == "yolo"
Provides-Extra: libreyolo
Requires-Dist: libreyolo>=1.2.0; extra == "libreyolo"
Provides-Extra: sam
Requires-Dist: torch>=2.0.0; extra == "sam"
Requires-Dist: torchvision>=0.15.0; extra == "sam"
Provides-Extra: detectors
Requires-Dist: torch>=2.0.0; extra == "detectors"
Requires-Dist: torchvision>=0.15.0; extra == "detectors"
Requires-Dist: Pillow>=10.0.0; extra == "detectors"
Provides-Extra: face
Requires-Dist: oneopen-ml-studio[detectors]; extra == "face"
Requires-Dist: facenet-pytorch>=2.5.0; extra == "face"
Provides-Extra: tabular
Requires-Dist: scikit-learn>=1.3.0; extra == "tabular"
Requires-Dist: joblib>=1.3.0; extra == "tabular"
Provides-Extra: nlp
Requires-Dist: transformers>=4.36.0; extra == "nlp"
Requires-Dist: datasets>=2.16.0; extra == "nlp"
Provides-Extra: all
Requires-Dist: oneopen-ml-studio[detectors,face,libreyolo,nlp,sam,tabular,yolo]; extra == "all"
Provides-Extra: server
Requires-Dist: psycopg[binary]>=3.1.0; extra == "server"
Requires-Dist: redis>=5.0.0; extra == "server"
Requires-Dist: celery[redis]>=5.3.0; extra == "server"
Requires-Dist: boto3>=1.34.0; extra == "server"
Provides-Extra: docs
Requires-Dist: sphinx>=7.2; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
Requires-Dist: myst-parser>=2.0; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: ruff>=0.2.0; extra == "dev"
Dynamic: license-file

<p align="center">
  <img src="https://raw.githubusercontent.com/1-OpenSource/OneOpen-ML-Studio/main/docs/logo.svg" alt="OneOpen ML Studio" width="96" height="96">
</p>

<h1 align="center">OneOpen ML Studio</h1>

<p align="center">
  <strong>Open-source, local-first ML data platform</strong><br>
  From raw data → annotation → validated versions → training-ready datasets → models.
</p>

<p align="center">
  <a href="https://pypi.org/project/oneopen-ml-studio/"><img alt="PyPI" src="https://img.shields.io/pypi/v/oneopen-ml-studio.svg"></a>
  <a href="https://pypi.org/project/oneopen-ml-studio/"><img alt="Python" src="https://img.shields.io/pypi/pyversions/oneopen-ml-studio.svg"></a>
  <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/License-Apache_2.0-blue.svg"></a>
  <a href="https://github.com/1-OpenSource/OneOpen-ML-Studio"><img alt="Local-first" src="https://img.shields.io/badge/local--first-self--hosted-14b8a6.svg"></a>
</p>

---

## Product definition

> An open-source, local-first and self-hosted collaborative machine-learning data platform for preparing, annotating, validating, versioning, training and managing ML datasets and models.

**Core workflow (target platform):**

```text
Raw Data → Profiling → Annotation → Review → Quality Validation
→ Transformation → Dataset Version → Training Readiness
→ Model Training → Experiment Comparison → Model Registry → Active Learning
```

**Differentiation:**

```text
Multi-modal annotation
+ Training-ready dataset generation
+ Reproducible versioning
+ Multi-user collaboration
+ Shared GPU training
+ Framework-neutral adapters
+ Local-first deployment
```

Computer vision, text, tabular, audio, video, and LLM dataset workflows ship in this package.
Visual pipelines, Team/Enterprise setup, and org→workspace→project hierarchy are included.
See the docs roadmap for planned SSO handshake and shared GPU scheduling.

## Install

```bash
pip install oneopen-ml-studio
```

With extras:

```bash
pip install "oneopen-ml-studio[yolo]"       # Ultralytics Label Assist + training
pip install "oneopen-ml-studio[libreyolo]"  # LibreYOLO backend
pip install "oneopen-ml-studio[sam]"        # SAM deps (torch); install segment-anything separately
pip install "oneopen-ml-studio[all]"
```

From source:

```bash
git clone https://github.com/1-OpenSource/OneOpen-ML-Studio.git
cd OneOpen-ML-Studio
pip install -e ".[yolo]"
```

## Quick start (local mode)

```bash
oneopen init
oneopen start          # alias: oneopen serve → http://127.0.0.1:8765
```

Or: `python -m oneopen_ml_studio start`

No cloud account. No mandatory registration. Data stays under `~/.oneopen` (or `ONEOPEN_DATA_DIR`).

## What works today

| Capability | Status |
|---|---|
| Local CV: annotate, versions, YOLO / Torchvision train & export | Available |
| Image classification & segmentation catalogs | Available |
| Dataset profiling, quality checks, readiness score | Available |
| Experiment tracking + training adapters | Available |
| Text / tabular / audio / video / LLM workspaces | Available |
| Plugin manager (auto-install extras) | Available |
| Active learning selection | Available |
| Plugin registry + pipeline CRUD/runner | Available |
| Docker Compose (Postgres/Redis/MinIO) | Available |
| Multi-user orgs, review queues, Celery workers | Available (SSO handshake forthcoming) |
| Kubernetes enterprise starter | Available |

See docs: **Quality** and **Experiments** tabs in the project UI, and `/api/platform`.

## Platform modes (vision)

| Mode | Users | Stack (target) |
|---|---|---|
| **Local** | Individuals, students, offline | FastAPI + UI, SQLite, local FS, optional GPU |
| **Team server** | Labs & startups | PostgreSQL, Redis, Celery, MinIO/S3, auth, workers |
| **Enterprise** | Regulated / multi-team | K8s, SSO (OIDC/SAML/LDAP), audit, HA, quotas |

## Documentation

**https://oneopensource.org/oneopen-ml-studio/**

Includes product vision, architecture, roadmap, package notes, and the full user guide.

```bash
pip install "oneopen-ml-studio[docs]"
cd docs && make html    # Windows: .\make.bat html
```

## CLI

```text
oneopen start                 Start local web UI (default :8765)
oneopen serve                 Same as start
oneopen init                  Initialize ~/.oneopen
oneopen version               Print version
```

## License

**Apache License 2.0** — see [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE).

```bibtex
@software{oneopensource_oneopen_ml_studio_2026,
  author = {oneopensource},
  title  = {OneOpen ML Studio},
  year   = {2026},
  url    = {https://github.com/1-OpenSource/OneOpen-ML-Studio},
  note   = {Open-source local-first ML data platform}
}
```

**oneopensource** — creator and maintainer.
