fAIr-models
Model registry and ML pipeline orchestration for fAIr.
fair-py-ops is the Python package for building ZenML pipelines, validating STAC items, and testing locally. The models/ directory is the single source of truth for base model contributions.
Quick Start
Prerequisites: Docker, uv, just.
git clone https://github.com/hotosm/fAIr-models.git
cd fAIr-models
just setup
just build
just example
just setup installs Python deps, brings up the full stack via Docker Compose (Postgres + MinIO + STAC + MLflow + ZenML), and registers the ZenML stack. just build builds the model Docker images that the local_docker orchestrator runs each pipeline step in. just example runs all example pipelines end-to-end.
| Service | URL | Credentials |
|---|---|---|
| ZenML dashboard | http://localhost:8080 | default / (empty) |
| MLflow | http://localhost:5000 | none |
| STAC API | http://localhost:8082 | none |
| MinIO console | http://localhost:9001 | minioadmin / minioadmin |
See Getting Started for the full guide. For Kubernetes parity or production deploys, see infra/README.md.
Documentation
- Getting Started : Installation and running the examples
- Architecture : STAC catalog structure, flows, identity model, infrastructure
- Contributing a Model : Guide for adding base models to fAIr
- API Reference : Python package documentation
- Changelog : Release history
Examples
Reference implementations demonstrate the full workflow:
| Example | Task | Model | Run |
|---|---|---|---|
| Building footprints | Semantic segmentation | DINOv3 ViT-S/16 + UperNet (PyTorch) | just example dinov3s_buildings |
| Solid waste grid | Semantic segmentation | YOLO26x classifier (ultralytics) | just example yolo_swag_waste_grid_segmentation |
| RGB pixels (minimal) | Semantic segmentation | Logistic regression (scikit-learn) | just example sklearn_rgb_segmentation |
Commands
Run just to see all recipes.
just setup # install deps + bring up stack + register ZenML stack
just example # run all example pipelines
just down # stop the stack (state preserved, fast restart)
just up # restart after `just down`
just tear # destroy stack + volumes + local ZenML state
just lint # ruff + ty
just test # pytest
just validate # validate STAC items + model pipelines
just docs # serve documentation locally
just commit # run pre-commit hooks + commitizen
Key Concepts
| Concept | Description |
|---|---|
| Base model | Reusable ML blueprint (weights, code, Docker image, STAC item) |
| Local model | Finetuned model produced by ZenML pipeline on user data |
| STAC catalog | Model/dataset registry with MLM and Version extensions |
| ZenML pipeline | Orchestrated training and inference workflows |
Metadata
Release files for fair-py-ops 0.3.25
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fair_py_ops-0.3.25.tar.gz | 4.0 MB | Without provenance | Details for fair_py_ops-0.3.25.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fair_py_ops-0.3.25-py3-none-any.whl | Python 3 | none | any | Details for fair_py_ops-0.3.25-py3-none-any.whl |
Total release size: 8.1 MB
Release files / fair_py_ops-0.3.25.tar.gz
| Download URL | fair_py_ops-0.3.25.tar.gz |
|---|---|
| Size | 4.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
404da4bb9c31b7a362ff1f54f75fed2cca8049fb6b0bb1af165cb2ae83f53aad
|
|
BLAKE2b-256 checksum How to use checksums |
6211a86910a096a5dd2641f654f2fb781d126fae9cebffc428b5948885df402e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fair_py_ops-0.3.25-py3-none-any.whl
| Download URL | fair_py_ops-0.3.25-py3-none-any.whl |
|---|---|
| Size | 4.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d96ad17493a4f39055042c9e133d30e84525d3f0abcd16806542f5431a8cc543
|
|
BLAKE2b-256 checksum How to use checksums |
45171af6a8e954850eff23e97d0ca472dcb8111aa20546383441d0a551af7115
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for fair-py-ops 0.3.25
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.