Spaces:
Running
Running
Update main.py
Browse files
main.py
CHANGED
@@ -118,6 +118,32 @@ async def predict_plant_disease(plant_name: str, file: UploadFile = File(...)):
|
|
118 |
JSON response with the predicted class and additional details from an external API.
|
119 |
"""
|
120 |
# Ensure the plant name is valid
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
if plant_name not in loaded_models:
|
122 |
raise HTTPException(status_code=400, detail=f"Invalid plant name or model not loaded: {plant_name}")
|
123 |
|
|
|
118 |
JSON response with the predicted class and additional details from an external API.
|
119 |
"""
|
120 |
# Ensure the plant name is valid
|
121 |
+
if len(plant_disease_dict.get(plant_name, [])) == 1:
|
122 |
+
single_disease = plant_disease_dict[plant_name][0] # Get the only class available
|
123 |
+
|
124 |
+
# 🔥 Fetch external data directly
|
125 |
+
try:
|
126 |
+
response = requests.get(f"https://navpan2-sarva-ai-back.hf.space/kotlinback/{single_disease}")
|
127 |
+
external_data = response.json() if response.status_code == 200 else {"error": "Failed to fetch external data"}
|
128 |
+
except Exception as e:
|
129 |
+
external_data = {"error": str(e)}
|
130 |
+
|
131 |
+
return JSONResponse(content={
|
132 |
+
"plantName": external_data.get("plantName", plant_name),
|
133 |
+
"botanicalName": external_data.get("botanicalName", "Unknown"),
|
134 |
+
"diseaseDesc": {
|
135 |
+
"diseaseName": external_data.get("diseaseDesc", {}).get("diseaseName", single_disease),
|
136 |
+
"symptoms": external_data.get("diseaseDesc", {}).get("symptoms", "Not Available"),
|
137 |
+
"diseaseCauses": external_data.get("diseaseDesc", {}).get("diseaseCauses", "Not Available")
|
138 |
+
},
|
139 |
+
"diseaseRemedyList": [
|
140 |
+
{
|
141 |
+
"title": remedy.get("title", "Unknown"),
|
142 |
+
"diseaseRemedyShortDesc": remedy.get("diseaseRemedyShortDesc", "Not Available"),
|
143 |
+
"diseaseRemedy": remedy.get("diseaseRemedy", "Not Available")
|
144 |
+
} for remedy in external_data.get("diseaseRemedyList", [])
|
145 |
+
]
|
146 |
+
})
|
147 |
if plant_name not in loaded_models:
|
148 |
raise HTTPException(status_code=400, detail=f"Invalid plant name or model not loaded: {plant_name}")
|
149 |
|