A complete MLOps platform for multimodal (text + image) classification.
- Orchestration: Apache Airflow
- APIs: FastAPI microservices (gate-api, preprocess-api, train-api, predict-api)
- Tracking: MLflow
- Storage: MinIO (S3-compatible)
- Monitoring: Prometheus + Grafana
- Data Versioning: DVC + DagsHub
- gate-api: Authentication and user management
- preprocess-api: Feature extraction for text and images
- train-api: Model training with MLflow integration
- predict-api: Model serving and predictions
- mlflow: Experiment tracking and model registry
\\Bash docker-compose up -d \\
Large datasets are managed with DVC and stored on DagsHub S3:
\\Bash
dvc pull
dvc push \\
\
rakuten_mlops_services/
├── airflow/ # Airflow DAGs and configuration
├── gate-api/ # Authentication service
├── preprocess-api/ # Feature extraction
├── train-api/ # Model training
├── predict-api/ # Prediction service
├── monitoring/ # Prometheus & Grafana configs
├── data/ # Datasets (DVC managed)
├── artifacts/ # Model artifacts (DVC managed)
└── docker-compose.yml \\
- Code: https://github.com/zz75da/raku_mlops
- Data & Experiments: https://dagshub.com/zz75da/raku_mlops
The project includes a comprehensive test suite with both unit and integration tests.
- \ tests/unit/: Unit tests for individual components
- \ test_preprocess.py: Tests for preprocessing functions
- \ test_models.py: Tests for ML models and utilities
- \ tests/integration/: Integration tests
- \ test_api_integration.py: API integration tests
- \ test_workflow.py: End-to-end workflow tests
- \ tests/conftest.py: Shared test fixtures and configuration
- \ tests/run_tests.py: Main test runner script
\\Bash
pip install -r requirements-test.txt
python tests/run_tests.py
pytest tests/unit/ -v pytest tests/integration/ -v
pytest --cov=preprocess-api --cov=train-api --cov=gate-api --cov=predict-api tests/ --cov-report=html \\
Test-specific dependencies are in
equirements-test.txt\ and include:
- pytest
- pytest-cov
- requests-mock
- httpx