crusadersAI commited on
Commit
32b7861
·
verified ·
1 Parent(s): dbaf593

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -0
app.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from inference_example import AgribotInference
3
+
4
+ # 1) Charger le modèle UNE FOIS au démarrage
5
+ predictor = AgribotInference(model_path="agribot_models.pkl")
6
+
7
+ # 2) Fonction utilisée par l’UI Gradio
8
+ def infer(image):
9
+ """
10
+ image: PIL Image (Gradio gère ça pour toi)
11
+ """
12
+ # On adapte légèrement: le predict actuel prend un chemin de fichier,
13
+ # alors on peut soit modifier la classe, soit créer une variante.
14
+ # Ici, on réécrit une petite fonction dédiée.
15
+ image = image.convert("RGB")
16
+ img_tensor = predictor.transform(image).unsqueeze(0)
17
+ features = predictor.extract_features(img_tensor)
18
+ prediction_idx = predictor.model.predict(features)[0]
19
+ probabilities = predictor.model.predict_proba(features)[0]
20
+ confidence = float(probabilities.max() * 100)
21
+ diagnosis = predictor.class_labels[prediction_idx]
22
+ return f"{diagnosis} ({confidence:.2f}%)"
23
+
24
+ demo = gr.Interface(
25
+ fn=infer,
26
+ inputs=gr.Image(type="pil", label="Upload maize leaf image"),
27
+ outputs=gr.Textbox(label="Diagnosis"),
28
+ title="AgriBot - Maize Leaf Disease Diagnosis",
29
+ description="Upload a maize leaf image to get a disease diagnosis."
30
+ )
31
+
32
+ if __name__ == "__main__":
33
+ demo.launch()