A CLI tool that generates production-ready MLOps project templates for Scikit-learn, PyTorch, and TensorFlow
Project description
๐ง MLOps Project Generator
Generate production-ready MLOps project templates โ via Web UI or CLI.
Scikit-learn ยท PyTorch ยท TensorFlow ยท Multi-cloud ยท Zero setup required.
This stack supports the full MLOps lifecycle:
Data โ Train โ Track โ Orchestrate โ Deploy โ Monitor โ Improve
๐ Features
- ๐ง Framework Support: Scikit-learn, PyTorch, TensorFlow/Keras
- ๐ Task Types: Classification, Regression, Time-Series, NLP, Computer Vision
- ๐ฌ Experiment Tracking: MLflow, W&B, Custom solutions
- ๐ฏ Orchestration: Airflow, Kubeflow
- ๐ Deployment: FastAPI, Docker, Kubernetes, Cloud platforms
- ๐ Monitoring: Evidently AI, Custom solutions
- โ๏ธ Cloud Deployment: Multi-cloud templates (AWS, GCP, Azure)
- ๐ Web UI: Browser-based generator โ no install needed
- ๐ค CI/CD Ready: Non-interactive CLI mode for DevOps pipelines
- โ๏ธ Config Presets: Save, load, and reuse project configurations
- ๐จ Custom Templates: Create and manage framework templates
๏ฟฝ MLOps Presets
Choose from 6 pre-configured MLOps stacks tailored for different use cases:
| 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 |
Use presets via CLI: mlops-project-generator init --preset <name> or select them in the Web UI.
๏ฟฝ๐ Web UI (Recommended)
The fastest way to generate a project โ open it in your browser, fill in the form, and download a ready-to-use ZIP.
Run locally
cd web_ui
npm install
npm run dev
# โ http://localhost:3000
Self-host / Deploy
The web UI is a Next.js 15 app with no external backend dependency. The generator runs entirely as Next.js API routes โ deploy to Vercel, Netlify, Railway, or any Node.js host:
cd web_ui
npm run build
npm start
Vercel one-click deploy: set the root directory to
web_uiand it works out of the box.
Web UI Tech Stack
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| Styling | Tailwind CSS v4 + Glassmorphism |
| Forms | react-hook-form + zod |
| Generator | Pure TypeScript (no Python runtime needed) |
| ZIP output | archiver |
๐ฆ CLI Installation
Prefer the command line? Install the Python package:
From PyPI
pip install mlops-project-generator
From Source
git clone https://github.com/NotHarshhaa/MLOps-Project-Generator.git
cd MLOps-Project-Generator
pip install -e .
Development Install
pip install -e ".[dev]"
๐ฏ CLI Quick Start
Interactive mode (recommended for beginners)
mlops-project-generator init
Non-interactive mode (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"
Available CLI Commands
Core
| Command | Description |
|---|---|
init |
Generate a new MLOps project |
validate |
Validate an existing project structure |
version |
Show version |
Configuration Management
| Command | Description |
|---|---|
save-preset <name> |
Save current config as a preset |
list-presets |
List all presets |
load-preset <name> |
Load a preset |
delete-preset <name> |
Delete a preset |
Template Management
| Command | Description |
|---|---|
create-template <name> <framework> |
Create a custom template |
list-templates |
List custom templates |
delete-template <name> |
Delete a template |
add-template-file <template> <path> |
Add a file to a template |
Analytics & Cloud
| Command | Description |
|---|---|
stats |
Show generation statistics |
analyze <path> |
Analyze a generated project |
cloud-services |
List available cloud services |
cloud-deploy <provider> <service> |
Generate cloud deployment templates |
init Flag Reference
| Flag | Short | 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 |
--project-name |
-p |
Any valid identifier |
--author-name |
-a |
Any string |
--description |
--desc |
Any string |
๐ผ๏ธ Screenshots
CLI Commands
Scikit-learn Generation
PyTorch Generation
TensorFlow Generation
๐ Generated Project Structure
your-project/
โโโ src/
โ โโโ data/ # Data loading utilities
โ โโโ models/ # Model implementations
โ โโโ features/ # Feature engineering (sklearn)
โ โโโ utils/ # Training utilities (pytorch/tensorflow)
โ โโโ train.py # Training entry point
โ โโโ inference.py # Inference / FastAPI server
โโโ configs/
โ โโโ config.yaml # Project configuration
โโโ data/
โ โโโ raw/
โ โโโ processed/
โ โโโ external/
โโโ models/
โ โโโ checkpoints/
โ โโโ production/
โโโ notebooks/
โโโ tests/
โ โโโ test_model.py
โโโ cloud/ # Cloud deployment files (if selected)
โ โโโ <provider>/<service>/
โ โโโ Dockerfile
โ โโโ cloud-config.yaml
โ โโโ deploy.sh
โโโ requirements.txt
โโโ Makefile
โโโ .gitignore
โโโ .env.example
โโโ project_config.json
โโโ README.md
๐ ๏ธ Framework-Specific Features
Scikit-learn
- RandomForest / Ridge with cross-validation and joblib serialization
DataLoader+FeatureEngineerclasses ready to extend- FastAPI inference server included when
--deployment fastapi
PyTorch
- Configurable
nn.Sequentialmodel with Dropout - Full training loop with
DataLoader, early stopping torch.save/torch.loadmodel persistence
TensorFlow / Keras
keras.Sequentialwith BatchNorm and DropoutEarlyStoppingcallback pre-configuredmodel.save()/tf.keras.models.load_model()persistence
๐ Experiment Tracking
MLflow
mlflow.set_tracking_uri("http://localhost:5000")
with mlflow.start_run():
mlflow.log_params(config["model"])
mlflow.log_metrics({"accuracy": 0.95})
W&B
wandb.init(project="my-project")
wandb.log({"loss": 0.12, "accuracy": 0.95})
wandb.finish()
๐ Deployment Options
FastAPI
uvicorn src.inference:app --reload
# โ http://localhost:8000/docs
Docker
docker build -t my-ml-project .
docker run -p 8000:8000 my-ml-project
Kubernetes
kubectl apply -f k8s/
๐ Monitoring
Evidently AI
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset
report = Report(metrics=[DataDriftPreset()])
report.run(current_data=current, reference_data=reference)
๐ค CI/CD Integration
GitHub Actions
name: Generate ML Project
on:
workflow_dispatch:
inputs:
framework:
type: choice
options: [sklearn, pytorch, tensorflow]
project_name:
type: string
default: ml-project
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: pip install mlops-project-generator
- run: |
mlops-project-generator init \
--framework ${{ github.event.inputs.framework }} \
--project-name ${{ github.event.inputs.project_name }} \
--tracking mlflow \
--deployment docker
- uses: actions/upload-artifact@v3
with:
name: ${{ github.event.inputs.project_name }}
path: ${{ github.event.inputs.project_name }}/
GitLab CI
generate_ml_project:
image: python:3.11
script:
- pip install mlops-project-generator
- mlops-project-generator init \
--framework $FRAMEWORK \
--project-name $PROJECT_NAME \
--tracking mlflow \
--deployment docker
artifacts:
paths: [$PROJECT_NAME/]
expire_in: 1 week
๐๏ธ Repository Structure
MLOps-Project-Generator/
โโโ generator/ # Python CLI source
โ โโโ cli.py # Typer CLI entry point
โ โโโ renderer.py # Jinja2 template renderer
โ โโโ validators.py # Input validation
โ โโโ cloud_deployer.py # Cloud template generation
โ โโโ ...
โโโ templates/ # Jinja2 project templates
โ โโโ common/ # Shared across all frameworks
โ โโโ sklearn/
โ โโโ pytorch/
โ โโโ tensorflow/
โโโ web_ui/ # Next.js web application
โ โโโ app/
โ โ โโโ api/ # Next.js API routes (generator backend)
โ โ โโโ generate/ # POST โ start generation
โ โ โโโ status/ # GET โ poll task status
โ โ โโโ download/ # GET โ download ZIP
โ โ โโโ options/ # GET โ dropdown options
โ โโโ src/
โ โโโ lib/
โ โโโ generator/ # Pure TS generator (no Python needed)
โ โโโ task-store.ts
โโโ tests/ # Python CLI tests
โโโ pyproject.toml
โโโ README.md
๐งช Testing (CLI)
pytest tests/ -v
pytest tests/ --cov=generator --cov-report=html
๐ ๏ธ Development (CLI)
git clone https://github.com/NotHarshhaa/MLOps-Project-Generator.git
cd MLOps-Project-Generator
pip install -e ".[dev]"
black generator/ tests/
isort generator/ tests/
flake8 generator/ tests/
mypy generator/
๐ค Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request
๐ License
MIT โ see LICENSE for details.
๐ Acknowledgments
- Typer ยท Beautiful Python CLI framework
- Next.js ยท React framework powering the Web UI
- Rich ยท Stunning terminal output
- archiver ยท ZIP generation for project downloads
๐ Support
- ๐ GitHub Issues
- ๐ฌ GitHub Discussions
๐บ๏ธ Roadmap
โ Completed
- Python CLI with interactive + non-interactive modes
- Scikit-learn, PyTorch, TensorFlow project templates
- MLflow, W&B experiment tracking integration
- Multi-cloud deployment templates (AWS, GCP, Azure)
- Configuration presets and template customization
- Project analytics and validation
- Web UI โ Next.js app with glassmorphism UI (v1.0.8)
- Backend migration โ generator ported to pure TypeScript, no Python runtime needed on the server (v1.0.8)
๐ Upcoming
- Additional frameworks (XGBoost, LightGBM, HuggingFace)
- Shareable project config links
- Template marketplace
- Team collaboration features
โญ If you find this useful, please give it a star on GitHub!
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mlops_project_generator-1.0.8.tar.gz.
File metadata
- Download URL: mlops_project_generator-1.0.8.tar.gz
- Upload date:
- Size: 94.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f17df5b1d49a6fa3764d558608778ec2da18d9a12f8ce7acbc908357f5e76d71
|
|
| MD5 |
ca1c4a731cef01cba2d142ce9a43ae22
|
|
| BLAKE2b-256 |
224daa87062e705b3c75f90018afc92b5f3af78ca3eeafabf205127ad89374b0
|
File details
Details for the file mlops_project_generator-1.0.8-py3-none-any.whl.
File metadata
- Download URL: mlops_project_generator-1.0.8-py3-none-any.whl
- Upload date:
- Size: 47.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48772bf935bca0070c3572533ba3ce792e9176c6e81e0757ebfadb4ea98a9c75
|
|
| MD5 |
04705df15c6beb811de5ab271986d324
|
|
| BLAKE2b-256 |
aeb7a071ca8300b9de7724e4e28a085b7fec9835cda7d13c3e2d0a243050f19f
|