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

Uploaded Python 3

File details

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

File metadata

  • Download URL: flowyml-2.1.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-1015-azure

File hashes

Hashes for flowyml-2.1.0.tar.gz
Algorithm Hash digest
SHA256 685280058b2f997a21e24dd9e5d1b3428187a7e181eee7e37c634c5d57225ff5
MD5 4b44d3e9a3ac1e854d345af4f8390f95
BLAKE2b-256 4c66beb12342f9f83729ea3155a39a553690414748c47aa10046d6871d7283cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: flowyml-2.1.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-1015-azure

File hashes

Hashes for flowyml-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9adc944e9dc13fecb6b63077b1831119713b7a28218cf28bafe477dfdaf71a5c
MD5 a0bcf7fae08356eb491978fd6c43ee98
BLAKE2b-256 e06a1a2f1c086fb71a36c3a33afe6f35f3cb6a1c295e4f2199ab470b9dd4643b

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