How fenilkaneria/personal-ml-studio works
Personal ML Studio is an interactive workspace for structured-data machine learning: users upload a dataset, inspect it, choose advisory-guided preparation and modeling actions, then train, compare, predict, explain, and export. The React step registry and API client carry user choices to FastAPI; server-side sessions retain stage outputs and invalidate downstream results when earlier choices change. The README documents major ML capabilities not shown in sampled implementations; their modules are included, but uncertain internal call wiring is omitted.
Main entry points: main.py FastAPI application · predictions.py Prediction routes · advisors.py Advisor routes · pipeline.py Preparation routes
Components 25
Workspace
- Workflow screens
frontend/src/App.tsx - Pipeline navigation
frontend/src/store/pipeline.ts - Typed API client
frontend/src/api/client.ts
API and State
- FastAPI application
backend/main.py - Session state
backend/core/session.py - Dataset routes
backend/api/datasets.py - Advisor routes
backend/api/advisors.py - Preparation routes
backend/api/pipeline.py - Training routes
backend/api/training.py - Evaluation routes
backend/api/evaluation.py - Prediction routes
backend/api/predictions.py
Dataset Preparation
- Dataset profiler
src/profiling/dataset_profiler.py - Recommendation engines
src/advisors - Preprocessing pipeline
src/preprocessing/preprocessing_pipeline.py - Feature engineering
src/features/feature_engineering.py
Modeling and Results
- Model training
src/models/model_trainer.py - Custom SVM and kNN
src/models - Hybrid ensemble
src/ensemble/hybrid_ensemble.py - Evaluation metrics
src/evaluation/metrics.py - SHAP explanations
src/explainability/explainer.py - Pipeline report
src/reporting/report.py
Optional Narration
- Narration modules
src/llm - Provider client
src/llm/client.py
Other components
- ML practitioner
- LLM provider
Connections 29
- ML practitioner → Workflow screens: chooses steps
- Workflow screens → Pipeline navigation: tracks progress
- Workflow screens → Typed API client: requests results
- Typed API client → FastAPI application: sends requests
- FastAPI application → Dataset routes: dispatches routes
- FastAPI application → Advisor routes: dispatches routes
- FastAPI application → Preparation routes: dispatches routes
- FastAPI application → Training routes: dispatches routes
- FastAPI application → Evaluation routes: dispatches routes
- FastAPI application → Prediction routes: dispatches routes
- FastAPI application → Session state: creates sessions
- Dataset routes → Session state: stores dataset
- Advisor routes → Session state: reads stage state
- Preparation routes → Session state: reads and writes
- Preparation routes → Preprocessing pipeline: fits transforms
- Preparation routes → Feature engineering: fits features
- Dataset routes → Dataset profiler: profiles dataset
- Advisor routes → Recommendation engines: requests advice
- Training routes → Model training: trains models
- Model training → Custom SVM and kNN: trains alternatives
- Evaluation routes → Evaluation metrics: computes comparison
- Prediction routes → Hybrid ensemble: runs ensemble
- Prediction routes → SHAP explanations: computes attribution
- Prediction routes → Pipeline report: exports report
- Advisor routes → Narration modules: requests narration
- Evaluation routes → Narration modules: requests narration
- Prediction routes → Narration modules: requests narration
- Narration modules → Provider client: requests completion
- Provider client → LLM provider: sends prompt