fix(ml-service): test logic + prediction_response status forward

- calibrate_probs_selects_top_label: use logits that produce confidence >= 0.70
- prediction_response: forward status from Prediction struct instead of hardcode

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
MythEclipse
2026-06-12 17:08:27 +00:00
co-authored by Claude
parent 9ab472ce1b
commit c116a2c4a5
2 changed files with 5 additions and 3 deletions
+4 -2
View File
@@ -161,13 +161,15 @@ mod tests {
#[test]
fn calibrate_probs_selects_top_label() {
let logits = [1.0, 2.0, 3.0, 0.5];
// [1, 2, 3, 0.5] → softmax ≈ [0.086, 0.235, 0.638, 0.040]
// 0.638 < 0.70 → "uncertain". Use larger gap for "confident".
let logits = [0.0, 0.0, 10.0, 0.0]; // softmax ≈ [0, 0, ~1, 0]
let result = ModelService::calibrate_prediction(&logits, T, HIGH, LOW);
assert!(result.is_ok());
let p = result.unwrap();
// Index 2 = Hawar Daun (highest logit)
assert_eq!(p.label, "Hawar Daun");
assert!(p.confidence > 0.5);
assert!(p.confidence >= 0.999);
assert_eq!(p.status, "confident");
}
+1 -1
View File
@@ -61,7 +61,7 @@ pub fn metadata_response(model_path: String, model_loaded: bool, input_size: u32
pub fn prediction_response(prediction: Prediction) -> PredictionResponse {
PredictionResponse {
status: "ok".to_string(),
status: prediction.status,
label: prediction.label,
confidence: prediction.confidence,
probabilities: prediction.probabilities,