How odakris/churn-mlops-pipeline works
This is a configurable telecom churn-classification application. Its main workflow downloads Telco customer data, cleans and splits it, trains a tuned scikit-learn pipeline with MLflow tracking, and evaluates it; separate serving paths provide JSON/web and batch inference. The graph distinguishes orchestration from the stage implementations and includes configuration, model construction, and persisted artifacts. The README documents several capabilities whose implementation was not sampled; those links are cited to the README rather than presented as inspected source behavior.
Main entry points: config.py Typed configuration · predict.py Batch prediction · train.py Tune and train · evaluate.py Test evaluation
Components 19
Training workflow
- Pipeline runner
src/run_pipeline.py - Data download
src/get_data.py - Clean and split
src/preprocess.py - Tune and train
src/train.py - Test evaluation
src/evaluate.py
Model and configuration
- Pipeline builder
src/pipeline.py - Typed configuration
src/config.py - Project settings
configs/config.yaml
Inference interfaces
- JSON inference API
src/api.py - Web interface
src/static/index.html - Batch prediction
src/predict.py - Prediction results
src/predict.py
Tracking and artifacts
- Prepared datasets
data - MLflow tracking and registry
- Saved model and metadata
data - Evaluation reports
data
Other components
- Project operator
- Source dataset
- New client CSV
Connections 32
- Project operator → Pipeline runner: starts
README.md - Pipeline runner → Data download: calls
src/run_pipeline.py - Pipeline runner → Clean and split: calls
src/run_pipeline.py - Pipeline runner → Tune and train: calls
src/run_pipeline.py - Pipeline runner → Test evaluation: calls
src/run_pipeline.py - Data download → Source dataset: downloads
README.md - Data download → Typed configuration: loads settings
src/get_data.py - Clean and split → Typed configuration: loads settings
src/preprocess.py - Clean and split → Prepared datasets: writes splits
src/preprocess.py - Prepared datasets → Tune and train: provides training data
README.md - Prepared datasets → Test evaluation: provides test data
README.md - Tune and train → Typed configuration: loads settings
src/train.py - Tune and train → Pipeline builder: builds search pipeline
src/train.py - Tune and train → Saved model and metadata: writes model metadata
src/train.py - Tune and train → MLflow tracking and registry: logs and registers
src/train.py - Pipeline builder → Typed configuration: uses model settings
src/pipeline.py - Typed configuration → Project settings: loads settings
README.md - Test evaluation → Typed configuration: loads settings
src/evaluate.py - Test evaluation → Saved model and metadata: loads model
src/evaluate.py - Test evaluation → Evaluation reports: writes metrics and plots
src/evaluate.py - Test evaluation → MLflow tracking and registry: logs evaluation
src/evaluate.py - Project operator → JSON inference API: uses
README.md - JSON inference API → Typed configuration: loads settings
src/api.py - JSON inference API → Saved model and metadata: loads model
src/api.py - JSON inference API → Prepared datasets: reads reference data
src/api.py - JSON inference API → Web interface: serves page
README.md - Project operator → Batch prediction: runs
README.md - Batch prediction → Typed configuration: loads settings
src/predict.py - Batch prediction → New client CSV: reads CSV
src/predict.py - Batch prediction → Saved model and metadata: loads local model
src/predict.py - Batch prediction → MLflow tracking and registry: loads registry model
src/predict.py - Batch prediction → Prediction results: writes predictions
src/predict.py