Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from inference_example import AgribotInference | |
| # 1) Charger le modèle UNE FOIS au démarrage | |
| predictor = AgribotInference(model_path="agribot_models.pkl") | |
| # 2) Fonction utilisée par l’UI Gradio | |
| def infer(image): | |
| """ | |
| image: PIL Image (Gradio gère ça pour toi) | |
| """ | |
| # On adapte légèrement: le predict actuel prend un chemin de fichier, | |
| # alors on peut soit modifier la classe, soit créer une variante. | |
| # Ici, on réécrit une petite fonction dédiée. | |
| image = image.convert("RGB") | |
| img_tensor = predictor.transform(image).unsqueeze(0) | |
| features = predictor.extract_features(img_tensor) | |
| prediction_idx = predictor.model.predict(features)[0] | |
| probabilities = predictor.model.predict_proba(features)[0] | |
| confidence = float(probabilities.max() * 100) | |
| diagnosis = predictor.class_labels[prediction_idx] | |
| return f"{diagnosis} ({confidence:.2f}%)" | |
| demo = gr.Interface( | |
| fn=infer, | |
| inputs=gr.Image(type="pil", label="Upload maize leaf image"), | |
| outputs=gr.Textbox(label="Diagnosis"), | |
| title="AgriBot - Maize Leaf Disease Diagnosis", | |
| description="Upload a maize leaf image to get a disease diagnosis." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |