Skip to main content

๐ŸŒŠ flowyml

flowyml Logo
The Enterprise-Grade ML Pipeline Framework for Humans

CI Status PyPI Version Python 3.10+ License UnicoLab


FlowyML is a lightweight yet powerful ML pipeline orchestration framework. It bridges the gap between rapid experimentation and enterprise production by making assets first-class citizens. Write pipelines in pure Python, and scale them to production without changing a single line of code.

๐Ÿš€ Why FlowyML?

Feature FlowyML Traditional Orchestrators
Developer Experience ๐Ÿ Native Python - No DSLs, no YAML hell. ๐Ÿ“œ Complex YAML or rigid DSLs.
Type-Based Routing ๐Ÿง  Auto-Routing - Define WHAT, we handle WHERE. ๐Ÿ”Œ Manual wiring to cloud buckets.
Smart Caching โšก Multi-Level - Smart content-hashing skips re-runs. ๐Ÿข Basic file-timestamp checking.
Asset Management ๐Ÿ“ฆ First-Class Assets - Models & Datasets with lineage. ๐Ÿ“ Generic file paths only.
Multi-Stack ๐ŸŒ Abstract Infra - Switch local/prod with one env var. ๐Ÿ”’ Vendor lock-in or complex setup.
GenAI Ready ๐Ÿค– LLM Tracing - Built-in token & cost tracking. ๐Ÿงฉ Requires external tools.
Build-Time Validation โœ… Type Safety - Catches mismatches at build time. ๐Ÿ’ฅ Runtime errors only.
Map Tasks ๐Ÿ—บ๏ธ Parallel Maps - @map_task with retries & concurrency. ๐Ÿ” Manual parallelism boilerplate.
Dynamic Workflows ๐Ÿ”€ Runtime DAGs - Generate pipelines based on data. ๐Ÿ“ Static definitions only.
GenAI Assets ๐ŸŽฏ Prompt & Checkpoint - First-class prompt versioning and training resumability. ๐Ÿ“ Unmanaged text files.
Stack Hydration ๐Ÿ—๏ธ YAML โ†’ Live Stack - StackConfig.to_stack() wires infra automatically. โš™๏ธ Manual component assembly.

โšก๏ธ Quick Start

This is a complete, multi-step ML pipeline with auto-injected context:

from flowyml import Pipeline, step, context

@step(outputs=["dataset"])
def load_data(batch_size: int = 32):
    return [i for i in range(batch_size)]

@step(inputs=["dataset"], outputs=["model"])
def train_model(dataset, learning_rate: float = 0.01):
    print(f"Training on {len(dataset)} items with lr={learning_rate}")
    return "model_v1"

# Configure and Run
ctx = context(learning_rate=0.05, batch_size=64)
pipeline = Pipeline("quickstart", context=ctx)
pipeline.add_step(load_data).add_step(train_model)

pipeline.run()

๐ŸŒŸ Key Features

1. ๐Ÿง  Type-Based Artifact Routing (New in 1.8.0)

Define artifact types in code, and FlowyML automatically routes them to your cloud infrastructure.

@step
def train(...) -> Model:
    # Auto-saved to GCS/S3 and registered to Vertex AI / SageMaker
    return Model(obj, name="classifier")

2. ๐ŸŒ Multi-Stack Configuration

Manage local, staging, and production environments in a single flowyml.yaml.

export FLOWYML_STACK=production
python pipeline.py  # Now runs on Vertex AI with GCS storage

3. ๐Ÿ›ก๏ธ Intelligent Step Grouping

Group consecutive steps to run in the same container. Perfect for reducing overhead while maintaining clear step boundaries.

4. ๐Ÿ“Š Built-in Observability

Beautiful dark-mode dashboard to monitor pipelines, visualize DAGs, and inspect artifacts in real-time.

5. ๐ŸŽฏ Evaluations Framework

Production-grade evaluation system with 29+ scorers โ€” classification, regression, GenAI (LLM-as-a-judge), and adapters for DeepEval, RAGAS, and Phoenix:

from flowyml.evals import evaluate, EvalDataset, get_scorer

data = EvalDataset.create_genai("my_test", examples=[...])
result = evaluate(data=data, scorers=[get_scorer("relevance"), get_scorer("ragas.faithfulness")])
result.notify_if_regression(threshold=0.05)

6. ๐Ÿ—บ๏ธ Map Tasks & Dynamic Workflows

Distribute work over collections with @map_task and generate pipelines at runtime with @dynamic:

from flowyml import map_task, dynamic

@map_task(concurrency=8, retries=2, min_success_ratio=0.95)
def process_document(doc: dict) -> dict:
    return transform(doc)

@dynamic(outputs=["best_model"])
def hyperparameter_search(config: dict):
    sub = Pipeline("hp_search")
    for lr in config["learning_rates"]:
        sub.add_step(train_with_lr(lr))
    return sub

7. ๐Ÿ“ฆ Artifact Catalog with Lineage

Centralized artifact discovery, tagging, and lineage tracking โ€” works local and remote:

from flowyml import ArtifactCatalog

catalog = ArtifactCatalog()  # Auto-selects local SQLite or remote API
catalog.register(name="classifier", artifact_type="Model", parent_ids=[dataset_id])
lineage = catalog.get_lineage(model_id)  # Full parentโ†’child graph

๐Ÿ“ฆ Installation

# Install core
pip install flowyml

# Install with everything (recommended)
pip install "flowyml[all]"

๐Ÿ““ FlowyML Notebook โ€” Design Pipelines Visually

FlowyML Notebook is the companion reactive notebook environment for FlowyML. It replaces Jupyter with a DAG-powered, production-ready notebook that ships directly to FlowyML pipelines.

Feature Description
๐Ÿ”„ Reactive DAG Cells form a dependency graph โ€” change a variable, only dependent cells re-execute
๐Ÿ“ Pure .py Storage Git-friendly, lintable, importable โ€” no .ipynb JSON
๐Ÿš€ Pipeline Promotion Promote notebooks to production FlowyML pipelines with one click
๐Ÿงพ 43 Recipes Reusable code templates across Core, Assets, ML, Evals, and more
๐Ÿค– AI Assistant Context-aware code generation (OpenAI, Google AI, Ollama, Anthropic)
๐Ÿ“Š Rich Data Explorer Automatic DataFrame profiling with statistics, charts, and correlations
๐ŸŒ Publish as App Turn any notebook into a web app with 5 layout options
pip install flowyml-notebook
fml-notebook dev  # ๐Ÿ”ฅ Launch with hot-reload

๐Ÿ“– FlowyML Notebook Documentation ยท GitHub ยท PyPI


๐Ÿ“š Documentation

Visit FlowyML Docs for the full guide:


Built with โค๏ธ by UnicoLab

Download files

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

Source Distribution

flowyml-2.2.0.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

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

flowyml-2.2.0-py3-none-any.whl (5.0 MB view details)

Uploaded Python 3

File details

Details for the file flowyml-2.2.0.tar.gz.

File metadata

  • Download URL: flowyml-2.2.0.tar.gz
  • Upload date:
  • Size: 4.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Linux/6.17.0-1018-azure

File hashes

Hashes for flowyml-2.2.0.tar.gz
Algorithm Hash digest
SHA256 ab283e5f78b21ae91763fa7e570509477f65aa3ca14dfc34fa2da49752119310
MD5 d01627c0bfc82e77c508ce8fa3808666
BLAKE2b-256 6a52880542cf4116dd9355f69cec0c10e23c37f27475c1af88c5391e2647fe4b

See more details on using hashes here.

File details

Details for the file flowyml-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: flowyml-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Linux/6.17.0-1018-azure

File hashes

Hashes for flowyml-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f8616c51a7645fbced22427a1957ebb8da5be25e1ab098daf4f0d9d24018f8f
MD5 5699c9efa147bb5ae98b15c8dc260dce
BLAKE2b-256 ed405e407874cb74e138cb59bf95c4372466159f47cf36d446a0839197c28fb5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.2.0 This release

2 files

2.1.1

2 files

2.1.0

2 files

1.10.0

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.8.0

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

Supported by

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