Commit Graph
35 Commits
Author SHA1 Message Date
MythEclipse f9bd991bdf feat(ml): implement v3.0 architecture with CBAM and calibrated inference
- Integrate Convolutional Block Attention Module (CBAM) for improved feature focus
- Implement temperature scaling and confidence-based status reporting
- Automate dataset acquisition using kagglehub
- Update ONNX opset to 18 and refine preprocessing validation
2026-06-12 15:24:49 +00:00
MythEclipse 89dcbe8fa2 feat(ml-service): add detailed ML observability metrics for inference, predictions, and errors 2026-06-08 01:21:47 +07:00
MythEclipse 64567986e1 feat: update ML service Dockerfile to archlinux base and add port bindings for api/ml metrics 2026-06-07 21:40:09 +07:00
MythEclipse eefb16ad1d feat(ml-service): add Prometheus metrics and request telemetry instrumentation 2026-06-07 18:12:32 +07:00
Asep Haryana Saputra 73772f5f56 fix: update Rust and Debian base images in Dockerfile 2026-05-23 13:31:04 +00:00
Asep Haryana Saputra e848d20276 fix: update Rust version and improve Dockerfile build process 2026-05-23 13:27:06 +00:00
Asep Haryana Saputra 8d04a17d84 feat: add Python setup and ONNX model generation to CI workflow 2026-05-23 13:16:08 +00:00
Asep Haryana Saputra 5b4f8d29df fix: update .gitignore to include target directory 2026-05-23 12:32:52 +00:00
Asep Haryana SaputraandClaude Opus 4.7 e03c8a60fe fix: align Rust ML service with verified cargo build
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 12:21:33 +00:00
Asep Haryana SaputraandClaude Opus 4.7 e2e3addd66 fix: align Rust ML service verification
Corrected API response format documentation in README:
- Health endpoint: removed non-existent model_path field
- Metadata endpoint: fixed field names (service_name, service_version instead of service, version) and label order
- Prediction endpoint: corrected response structure to match implementation (single prediction object with probabilities map, not array)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 11:09:16 +00:00
Asep Haryana Saputra 86371a6e31 docs: clarify ML service command context 2026-05-23 11:05:49 +00:00
Asep Haryana Saputra ea35ae4322 docs: clarify ML service port defaults 2026-05-23 11:01:41 +00:00
Asep Haryana SaputraandClaude Opus 4.7 abff278f49 docs: document Rust ONNX ML service
Update documentation to reflect migration from FastAPI/Uvicorn to Rust/Axum with ONNX Runtime:

- Root README: Update ML service description, tech stack, prerequisites, and run instructions to use Rust/Cargo instead of Python/Uvicorn
- Root README: Update model path references from best_model.keras to model.onnx
- Root README: Add model.onnx to artifact lists and generated files
- Root README: Update troubleshooting section with Rust-specific guidance
- Machine_Learning/README: Add table of contents entry for ONNX conversion
- Machine_Learning/README: Add Tahap 5 section documenting ONNX conversion with convert_onnx.py and validate_onnx_parity.py
- Machine_Learning/README: Update output table to include model.onnx with Rust ONNX Runtime usage
- apps/ml-service/README: Create comprehensive documentation for Rust Axum ONNX service including setup, endpoints, environment variables, testing, and troubleshooting

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 10:51:59 +00:00
Asep Haryana SaputraandClaude Code ba33bc1f23 fix: make Rust ML Docker build include ONNX runtime assets
- Add 'download-binaries' feature to ort crate in Cargo.toml to ensure ONNX Runtime binaries are downloaded during build
- Update .dockerignore to allow Machine_Learning/model/model.onnx through build context while still excluding other generated model artifacts (saved_model, tfjs_model, tflite)
- Dockerfile can now successfully copy model.onnx at runtime

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-05-23 10:44:32 +00:00
Asep Haryana Saputra d33f334dc1 build: containerize Rust ML service 2026-05-23 10:38:58 +00:00
Asep Haryana Saputra 3d3f1d14fa refactor: replace Python ML service runtime with Rust 2026-05-23 09:50:39 +00:00
Asep Haryana Saputra b4975819eb feat: serve ML inference endpoints with Axum 2026-05-23 09:48:54 +00:00
Asep Haryana SaputraandClaude Opus 4.7 36e4a49ca7 fix: harden ONNX model wrapper
- Store ONNX Session in Option<Mutex<Session>> for thread-safe concurrent access
- Lock session before run() in predict(), map lock poisoning to PredictionFailed
- Preserve ModelUnavailable when session is None
- Reject non-finite values (NaN, +inf, -inf) in prediction_from_probabilities
- Add unit tests for NaN, positive infinity, and negative infinity rejection
- Keep all existing tests passing

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 09:44:25 +00:00
Asep Haryana Saputra fc34e52911 feat: add ONNX model inference wrapper 2026-05-23 09:41:30 +00:00
Asep Haryana Saputra ad4c897c41 feat: preprocess uploaded images in Rust 2026-05-23 09:38:10 +00:00
Asep Haryana Saputra ee872c644f fix: align ML service response schemas 2026-05-23 09:36:20 +00:00
Asep Haryana Saputra dce4d4f21c feat: define ML service API responses 2026-05-23 09:33:15 +00:00
Asep Haryana Saputra 96c38df124 feat: load ML service config from environment 2026-05-23 09:30:51 +00:00
Asep Haryana SaputraandClaude Opus 4.7 10e890cc42 feat: scaffold Rust ML service crate
Create Rust crate skeleton with Cargo.toml, main.rs, and config.rs.
Includes package metadata, dependencies (anyhow, axum, image, ndarray,
ort, serde, tokio, tower, tracing), and config module with LABELS
constants, SERVICE_NAME, SERVICE_VERSION, DEFAULT_INPUT_SIZE, and
resolve_model_path function. Config tests verify label order, relative
path resolution, and absolute path preservation.

Also includes approved spec and implementation plan documents.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 09:23:38 +00:00
Asep Haryana Saputra 64d63587c7 feat: validate deployment secrets and update SSH action version 2026-05-22 21:33:32 +00:00
Asep Haryana SaputraandClaude Opus 4.7 1978597bcf feat: add Docker deployment workflow
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 21:20:56 +00:00
Asep Haryana SaputraandClaude Opus 4.7 ed8cecc3f5 fix: align ML service labels with training order
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:40:41 +00:00
Asep Haryana Saputra 59877bc17f chore: add __pycache__ to .gitignore 2026-05-22 19:35:44 +00:00
Asep Haryana SaputraandClaude Opus 4.7 f08ba6753d chore: ignore ML service virtualenv
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:34:03 +00:00
Asep Haryana SaputraandClaude Opus 4.7 3b0416b946 docs: add ML service usage guide
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:30:05 +00:00
Asep Haryana SaputraandClaude Opus 4.7 a30071d8e8 feat: add ML service API routes
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:29:44 +00:00
Asep Haryana SaputraandClaude Opus 4.7 f3d2b8d72e feat: add ML model prediction service
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:29:13 +00:00
Asep Haryana SaputraandClaude Opus 4.7 ca9cbb12bf feat: add ML service response schemas
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:28:43 +00:00
Asep Haryana SaputraandClaude Opus 4.7 37831ba717 feat: add ML service Moon tasks
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:23:43 +00:00
Asep Haryana SaputraandClaude Opus 4.7 d21bd2e683 feat: scaffold ML service configuration
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 19:21:15 +00:00