yasyn14 commited on
Commit
a251760
·
1 Parent(s): 46f1618

changed all predictions class

Browse files
Files changed (1) hide show
  1. main.py +10 -5
main.py CHANGED
@@ -103,6 +103,11 @@ class DiseaseInfo(BaseModel):
103
  return v
104
 
105
 
 
 
 
 
 
106
  class PredictionResponse(BaseModel):
107
  success: bool
108
  predicted_class: str
@@ -110,7 +115,7 @@ class PredictionResponse(BaseModel):
110
  clean_class_name: str = Field(description="Human-readable class name")
111
  confidence: float
112
  confidence_level: str = Field(description="High/Medium/Low confidence level")
113
- all_predictions: Dict[str, float] = Field(description="Top 5 predictions with confidence scores")
114
  disease_info: DiseaseInfo
115
  recommendations: List[str] = Field(description="Action recommendations based on prediction")
116
  message: str
@@ -456,18 +461,19 @@ def predict_image(image_bytes: bytes) -> PredictionResponse:
456
 
457
  # Top 5 predictions
458
  top_indices = np.argsort(predictions[0])[-5:][::-1]
459
- all_predictions = {}
460
 
461
  for idx in top_indices:
462
  class_str = str(idx)
463
  class_confidence = float(predictions[0][idx])
464
  class_info = disease_guide.get(class_str, None)
465
  readable_name = clean_class_name(class_str, class_info)
466
- all_predictions[class_str] = {
 
467
  "confidence": round(class_confidence, 4),
468
  "label": readable_name,
469
  "confidence_level": get_confidence_level(class_confidence)
470
- }
471
 
472
  # Generate recommendations
473
  recommendations = get_recommendations(predicted_class, confidence, disease_info)
@@ -484,7 +490,6 @@ def predict_image(image_bytes: bytes) -> PredictionResponse:
484
  label=class_id,
485
  confidence=round(confidence, 4),
486
  confidence_level=confidence_level,
487
- predictions=all_predictions,
488
  disease_info=disease_info,
489
  recommendations=recommendations
490
  )
 
103
  return v
104
 
105
 
106
+ class PredictionItem(BaseModel):
107
+ confidence: float
108
+ label: str
109
+ confidence_level: str
110
+
111
  class PredictionResponse(BaseModel):
112
  success: bool
113
  predicted_class: str
 
115
  clean_class_name: str = Field(description="Human-readable class name")
116
  confidence: float
117
  confidence_level: str = Field(description="High/Medium/Low confidence level")
118
+ all_predictions: list[PredictionItem] = Field(description="Top 5 predictions with confidence scores")
119
  disease_info: DiseaseInfo
120
  recommendations: List[str] = Field(description="Action recommendations based on prediction")
121
  message: str
 
461
 
462
  # Top 5 predictions
463
  top_indices = np.argsort(predictions[0])[-5:][::-1]
464
+ all_predictions = []
465
 
466
  for idx in top_indices:
467
  class_str = str(idx)
468
  class_confidence = float(predictions[0][idx])
469
  class_info = disease_guide.get(class_str, None)
470
  readable_name = clean_class_name(class_str, class_info)
471
+
472
+ all_predictions.append({
473
  "confidence": round(class_confidence, 4),
474
  "label": readable_name,
475
  "confidence_level": get_confidence_level(class_confidence)
476
+ })
477
 
478
  # Generate recommendations
479
  recommendations = get_recommendations(predicted_class, confidence, disease_info)
 
490
  label=class_id,
491
  confidence=round(confidence, 4),
492
  confidence_level=confidence_level,
 
493
  disease_info=disease_info,
494
  recommendations=recommendations
495
  )