navpan2 commited on
Commit
bbd60c8
·
verified ·
1 Parent(s): 202e823

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +26 -0
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