Skip to main content

Next-Generation ML Pipeline Framework

Project description

๐ŸŒŠ 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

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

flowyml-2.1.1.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.1.1-py3-none-any.whl (5.0 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flowyml-2.1.1.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.1.1.tar.gz
Algorithm Hash digest
SHA256 92ad1da0d586cde26dc1924c34f462e70686dc1c2f2c831a1f3175939ca54b54
MD5 e0f3439c0ccd41d55b22d730b4bcc8de
BLAKE2b-256 0b380d2238ea14f61e0e48440812920aaa5b0bb98069485b45ec396569d50ea8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flowyml-2.1.1-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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3089dcac73773549c2b42f364bff015575b3d015b3afa16166010ee4f1752de8
MD5 0f1b3cbe400d09332ff249a7f24899c3
BLAKE2b-256 5ec83cd48819e31692350086f1cdeb18f280e36caf12edc4f9905e9b814cea4d

See more details on using hashes here.

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