Skip to main content

CLI and templates for production-ready MLOps projects โ€” Scikit-learn, PyTorch, TensorFlow, NLP (Hugging Face), and multi-cloud deployment

Project description

๐Ÿง  MLOps Project Generator

MLOps Project Generator Banner

Generate production-ready MLOps project scaffolds โ€” via Web UI or Python CLI.
Scikit-learn ยท PyTorch ยท TensorFlow ยท NLP (Hugging Face) ยท Multi-cloud ยท 40+ files per project

Stars PyPI License

This stack supports the full MLOps lifecycle:

Data โ†’ Train โ†’ Track โ†’ Orchestrate โ†’ Deploy โ†’ Monitor โ†’ Improve

๐ŸŽ‰ What's New (Web UI v1.2.0)

Recent improvements to the Next.js Web UI and TypeScript generator:

Web experience

  • Observatory UI โ€” redesigned landing with mission, features, how-it-works, and generator sections
  • Mobile-first layout โ€” compact on phones; desktop layout unchanged from sm breakpoint up
  • Archive preview โ€” GET /api/preview (partial config, no strict validation) and POST /api/preview?strict=true before download
  • File tree preview in the form โ€” see 40+ paths before generating
  • Recent projects โ€” browser-local history with quick re-download

Generator (TypeScript v1.2.0)

  • Legacy Jinja templates wired โ€” repo templates/ synced into web_ui/templates/ and rendered for classification / regression / timeseries
  • Hugging Face NLP โ€” src/nlp/finetune.py, configs/nlp.yaml, Trainer + optional FastAPI inference
  • Deployment artifacts โ€” root Dockerfile, docker-compose.yml, Kubernetes manifests (k8s/) when Docker/K8s is selected
  • Orchestration files โ€” Airflow DAG (dags/ml_training_dag.py), Kubeflow pipeline stub
  • Monitoring scripts โ€” Evidently drift report + custom metrics collector
  • Config presets & templates โ€” preset_config and custom_template now affect output (CI, notebooks, minimal/comprehensive/microservice bundles)
  • Stack presets โ€” also set preset + template fields when applied
  • generation_insights.json โ€” optional recommendations when analytics is enabled

Template fixes (templates/)

  • Unified timeseries naming (was mixed with time-series)
  • Fixed TimeSeriesModel imports via snippets/model_import.py.j2
  • Improved requirements.txt.j2, config.yaml.j2, README/Makefile/.env Jinja templates
  • New templates/nlp/ for Hugging Face fine-tuning (CLI + web sync)

๐Ÿš€ Features

๐Ÿ—๏ธ Core generation

Capability Web UI Python CLI
Frameworks sklearn, PyTorch, TensorFlow Same
Task types classification, regression, timeseries, nlp, computer-vision Same
Stack presets 6 curated stacks (form) init --preset
ZIP download Yes Project folder
Generator runtime Pure TypeScript (API routes) Jinja2 + Python

๐Ÿ”ฌ MLOps integration (generated into ZIP)

  • Experiment tracking โ€” MLflow, W&B, custom, or none
  • Orchestration โ€” Airflow DAG, Kubeflow pipeline YAML (not empty folders only)
  • Deployment โ€” FastAPI inference, Docker (+ compose), Kubernetes (deployment/service/configmap)
  • Monitoring โ€” Evidently drift script, custom metrics collector
  • Cloud packs โ€” AWS / GCP / Azure folders with Dockerfile, config, deploy scripts

๐Ÿ“ฆ Template profiles (Web UI โ€” optional fields)

Preset config Effect
quick-start Lean output (e.g. skips Makefile)
production-ready CI workflow + stronger tests
research Starter Jupyter notebook
enterprise CI + pre-commit + notebook
Custom template Effect
minimal Essentials only
comprehensive CI, pre-commit, notebook
microservice API middleware patterns for FastAPI

๐ŸŽฏ Stack presets (Web UI cards)

Preset Framework Tracking Orchestration Deploy Monitor
Quick Start Sklearn None None FastAPI None
Data Science Sklearn MLflow None FastAPI Custom
Deep Learning PyTorch W&B None Docker None
Production MLOps PyTorch MLflow Airflow Docker Evidently
Enterprise TensorFlow MLflow Kubeflow Kubernetes Evidently
Research PyTorch W&B None FastAPI None

๐ŸŒ Web UI (Recommended)

The fastest path: open the app, pick a stack preset, configure options, preview files, generate, and download a ZIP.

Run locally

cd web_ui
npm install
npm run dev
# Syncs templates/ from repo root, then starts Next.js
# โ†’ http://localhost:3000

API routes

Method Route Description
GET /api/options Dropdown values for the form
GET /api/preview?framework=...&task_type=... File tree preview (defaults for missing fields)
POST /api/preview Preview with partial body
POST /api/preview?strict=true Preview with full validation
POST /api/generate Start async generation โ†’ { task_id }
GET /api/status/[taskId] Poll progress
GET /api/download/[taskId] Download ZIP

Web UI tech stack

Layer Technology
Framework Next.js 16 (App Router, Turbopack)
UI Tailwind CSS v4, Syne + DM Sans + JetBrains Mono
Forms react-hook-form + Zod
Generator TypeScript (web_ui/src/lib/generator/)
Templates Jinja2 sources in templates/ (synced on dev/build)
Archive archiver (ZIP)

Deploy / self-host

cd web_ui
npm run build   # runs scripts/sync-templates.mjs then next build
npm start

Set the deploy root to web_ui. The generator runs in API routes โ€” no separate Python server required.


๐Ÿ“ฆ Python CLI

Install and use the classic Typer CLI (renders templates/ with Jinja2):

pip install mlops-project-generator==2.1.0
# or from source:
pip install -e .

Interactive

mlops-project-generator init

With preset

mlops-project-generator init --preset production-mlops --project-name my-ml-platform
mlops-project-generator list-presets

Non-interactive (CI/CD)

mlops-project-generator init \
  --framework pytorch \
  --task-type classification \
  --tracking mlflow \
  --orchestration airflow \
  --deployment docker \
  --monitoring evidently \
  --project-name enterprise-ml \
  --author-name "ML Team" \
  --description "Production ML pipeline"

Advanced CLI (v2.x)

mlops-project-generator clone <source> --name <target>
mlops-project-generator archive <project> --type zip
mlops-project-generator check_deps --update --security
mlops-project-generator profile --format json
mlops-project-generator migrate <old> <new-framework>
mlops-project-generator doctor --fix --deep

init flags

Flag Values
--framework / -f sklearn, pytorch, tensorflow
--task-type / -t classification, regression, timeseries, nlp, computer-vision
--tracking / -r mlflow, wandb, custom, none
--orchestration / -o airflow, kubeflow, none
--deployment / -d fastapi, docker, kubernetes
--monitoring / -m evidently, custom, none

๐Ÿ“ Generated project structure

Typical output (varies by stack, preset, and template):

your-project/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ train.py                 # or nlp/finetune.py for NLP
โ”‚   โ”œโ”€โ”€ inference.py
โ”‚   โ”œโ”€โ”€ data/                    # loaders (+ NLP/CV helpers)
โ”‚   โ”œโ”€โ”€ models/                  # task-specific model modules
โ”‚   โ””โ”€โ”€ nlp/                     # Hugging Face (NLP task)
โ”œโ”€โ”€ configs/
โ”‚   โ”œโ”€โ”€ config.yaml
โ”‚   โ””โ”€โ”€ nlp.yaml                 # NLP only
โ”œโ”€โ”€ dags/                        # Airflow (if selected)
โ”‚   โ””โ”€โ”€ ml_training_dag.py
โ”œโ”€โ”€ pipelines/                   # Kubeflow (if selected)
โ”œโ”€โ”€ k8s/                         # Kubernetes (if selected)
โ”‚   โ”œโ”€โ”€ deployment.yaml
โ”‚   โ”œโ”€โ”€ service.yaml
โ”‚   โ””โ”€โ”€ configmap.yaml
โ”œโ”€โ”€ scripts/monitoring/          # Evidently / custom monitoring
โ”œโ”€โ”€ cloud/                       # Optional cloud provider pack
โ”‚   โ””โ”€โ”€ <provider>/<service>/
โ”œโ”€โ”€ Dockerfile                   # Docker / K8s deploy
โ”œโ”€โ”€ docker-compose.yml           # Docker deploy
โ”œโ”€โ”€ .github/workflows/ci.yml     # production-ready / enterprise preset
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ notebooks/
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ Makefile
โ”œโ”€โ”€ .env.example
โ”œโ”€โ”€ generation_insights.json     # if analytics enabled
โ”œโ”€โ”€ project_config.json
โ””โ”€โ”€ README.md

๐Ÿ› ๏ธ Framework & task highlights

Scikit-learn

  • RandomForest / regression / time-series models via Jinja templates
  • DataLoader, FeatureEngineering, joblib persistence

PyTorch & TensorFlow

  • Task-specific model templates (classification_model, regression_model, timeseries_model)
  • Training loops with tracking hooks; FastAPI inference when selected

NLP (Hugging Face)

  • Fine-tune with transformers + datasets + Trainer
  • Config-driven (configs/nlp.yaml), demo data if CSV missing
  • FastAPI inference when deployment is FastAPI

Computer vision

  • Image dataset helper + OpenCV/Pillow in requirements

๐Ÿš€ Deployment & monitoring (generated)

Selection Generated artifacts
FastAPI src/inference.py with /health and /predict
Docker Dockerfile, .dockerignore, docker-compose.yml, scripts/run_docker.sh
Kubernetes k8s/*.yaml, scripts/deploy_k8s.sh
Evidently scripts/monitoring/drift_report.py
Custom monitoring scripts/monitoring/metrics_collector.py

๐Ÿ—๏ธ Repository structure

MLOps-Project-Generator/
โ”œโ”€โ”€ generator/                 # Python CLI (Typer, renderer, cloud deployer, โ€ฆ)
โ”œโ”€โ”€ templates/                 # Jinja2 sources (shared by CLI + Web UI sync)
โ”‚   โ”œโ”€โ”€ common/               # README, requirements, config, snippets, tests
โ”‚   โ”œโ”€โ”€ sklearn/ | pytorch/ | tensorflow/
โ”‚   โ””โ”€โ”€ nlp/                  # Hugging Face NLP templates
โ”œโ”€โ”€ web_ui/                    # Next.js application
โ”‚   โ”œโ”€โ”€ app/api/              # generate, status, download, options, preview
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/       # MLOpsForm, marketing, form sections
โ”‚   โ”‚   โ””โ”€โ”€ lib/
โ”‚   โ”‚       โ”œโ”€โ”€ generator/    # TS generator + legacy Jinja loader
โ”‚   โ”‚       โ”œโ”€โ”€ server/       # validation, generation pipeline
โ”‚   โ”‚       โ””โ”€โ”€ tasks/        # in-memory task store
โ”‚   โ””โ”€โ”€ scripts/
โ”‚       โ””โ”€โ”€ sync-templates.mjs  # copies ../templates โ†’ web_ui/templates
โ”œโ”€โ”€ tests/                     # Python CLI tests
โ”œโ”€โ”€ pyproject.toml
โ””โ”€โ”€ README.md

๐Ÿงช Development

Web UI

cd web_ui
npm install
npm run dev
npm run build

Python CLI

pip install -e ".[dev]"
pytest tests/ -v
black generator/ tests/
flake8 generator/ tests/

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Update templates/ and/or web_ui/src/lib/generator/ as needed
  4. Run cd web_ui && npm run build and pytest for CLI changes
  5. Open a pull request

๐Ÿ“„ License

MIT โ€” see LICENSE.


๐Ÿ—บ๏ธ Roadmap

Completed

  • Python CLI with interactive + non-interactive modes
  • Scikit-learn, PyTorch, TensorFlow templates
  • MLflow, W&B, Airflow, Kubeflow, Docker, K8s, Evidently scaffolds
  • Multi-cloud deployment templates (AWS, GCP, Azure)
  • Web UI โ€” Next.js generator with ZIP download
  • TypeScript generator โ€” no Python runtime on the server
  • Legacy Jinja integration โ€” templates/ rendered in Web UI for core ML tasks
  • Hugging Face NLP โ€” fine-tune + inference stubs
  • Archive preview API โ€” GET/POST /api/preview
  • Deployment & orchestration files โ€” real DAGs, K8s manifests, Docker Compose
  • Config preset + custom template profiles in generated ZIPs
  • UI redesign โ€” marketing sections, stack presets, mobile compact layout
  • Template quality pass โ€” timeseries naming, model imports, requirements fixes

Upcoming

  • Shareable project config links
  • Template marketplace
  • Additional frameworks (XGBoost, LightGBM)
  • Deeper NLP/CV model templates in Jinja (beyond stubs)

๐Ÿ“ž Support


โญ If this project helps you, consider starring the repo!

Generated with โค๏ธ by MLOps Project Generator

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

mlops_project_generator-2.1.0.tar.gz (157.9 kB view details)

Uploaded Source

Built Distribution

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

mlops_project_generator-2.1.0-py3-none-any.whl (128.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mlops_project_generator-2.1.0.tar.gz
  • Upload date:
  • Size: 157.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for mlops_project_generator-2.1.0.tar.gz
Algorithm Hash digest
SHA256 d5e7cc542586da0309336f71e50648eccae020f5d08bdc4158a7b580f3c3727e
MD5 f2376f4b84cf64696f17f9762390259f
BLAKE2b-256 3d2fb2cc7c0de3d624107edd35b5a0378c84d8fd8ad5d8c8d7fafa75a10a81b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mlops_project_generator-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e01f062a38f346832691328cb6cc589bae7f21ca486fc7c21da886e225a3273f
MD5 68daf3ad4aba2efad832bd0914a21cbd
BLAKE2b-256 c6db1e332631269c87d02b8b3c4ce3892a446c185df246cfc5a14c3642dac637

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