How opelliusai/radio-mlops works
RADIO-MLOps is a chest-radiograph diagnosis and model-lifecycle application. Users submit images for predictions, review their analyses, and contribute corrected labels; administrators manage datasets and models and inspect performance and drift. The documented data lifecycle brings Kaggle and production data into reference datasets for training, while MLflow tracks and serves model versions. Airflow schedules health checks, deployment, and drift jobs; Prometheus and Grafana support service monitoring. The graph follows documented capabilities and sampled call paths; unsampled API and monitoring implementations are represented only at their documented boundaries.
Main entry points: scripts Monitoring jobs · utils_streamlit.py UI API client · admin_api.py Admin API · model_tracking.py Model tracking
Components 27
User interface
- Streamlit app
src/streamlit/Accueil.py - Workflow pages
src/streamlit/st_pages - UI API client
src/utils/utils_streamlit.py
APIs
- User API
src/api/user_api.py - Admin API
src/api/admin_api.py - Monitoring API
src/api/monitoring_api.py
Data and models
- Image prediction
src/models/predict_model.py - Image preprocessing
src/datasets/image_preprocessing.py - Kaggle ingestion
src/datasets/download_dataset.py - Dataset update
src/datasets/update_dataset.py - Dataset cleaning
src/datasets/clean_dataset.py - Model training
src/models/train_model.py - Model building
src/models/build_model.py - Model tracking
src/mlflow/model_tracking.py - Model serving
src/mlflow/model_serving.py - Drift detection
src/models/data_drift_detection.py - Model drift
src/models/model_drift_detection.py - Versioned datasets
src/utils/utils_data.py - MLflow registry
Operations
- Airflow schedules
airflow/dags - Monitoring jobs
src/scripts - Prometheus
- Grafana
Other components
- User
- Administrator
- Kaggle
- Email alerts
Connections 34
- User → Streamlit app: uses
- Administrator → Streamlit app: uses
- Streamlit app → Workflow pages: dispatches
- Workflow pages → UI API client: requests
- UI API client → User API: calls
- UI API client → Admin API: calls
- UI API client → Monitoring API: calls
- User API → Image prediction: runs prediction
- Image prediction → Image preprocessing: preprocesses image
- Image prediction → Model serving: loads production model
- User API → Dataset update: records contribution
- Dataset update → Versioned datasets: updates versions
- Admin API → Kaggle ingestion: starts download
- Kaggle ingestion → Kaggle: downloads data
- Admin API → Dataset update: updates reference data
- Admin API → Model training: starts training
- Model training → Dataset cleaning: prepares data
- Model training → Model tracking: trains and logs
- Model tracking → Model building: builds model
- Model tracking → MLflow registry: registers version
- Model serving → MLflow registry: loads production model
- Admin API → Model tracking: manages deployment
- Monitoring API → Drift detection: calculates data drift
- Monitoring API → Model drift: calculates model drift
- Airflow schedules → Monitoring jobs: runs scheduled jobs
- Airflow schedules → Monitoring API: triggers monitoring
- Monitoring jobs → Drift detection: checks data drift
- Monitoring jobs → Model drift: checks model drift
- Monitoring jobs → Model tracking: may retrain
- Monitoring jobs → MLflow registry: deploys candidate
- Monitoring jobs → Email alerts: sends alerts
- User API → Prometheus: exposes metrics
- Prometheus → Grafana: provides metrics
- UI API client → Prometheus: checks service status