navpan2 commited on
Commit
88b9db3
·
verified ·
1 Parent(s): ffe6f85

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +16 -4
main.py CHANGED
@@ -3,6 +3,7 @@ from fastapi.responses import JSONResponse
3
  import tensorflow as tf
4
  import numpy as np
5
  import os
 
6
  from tensorflow.keras.models import load_model
7
  from tensorflow.keras.preprocessing import image
8
  from tensorflow.keras.layers import Layer, Conv2D, Softmax, Concatenate
@@ -114,7 +115,7 @@ async def predict_plant_disease(plant_name: str, file: UploadFile = File(...)):
114
  file (UploadFile): The image file uploaded by the user.
115
 
116
  Returns:
117
- JSON response with the predicted class.
118
  """
119
  # Ensure the plant name is valid
120
  if plant_name not in loaded_models:
@@ -137,9 +138,20 @@ async def predict_plant_disease(plant_name: str, file: UploadFile = File(...)):
137
 
138
  # Make prediction
139
  prediction = model.predict(img_array)
140
- predicted_class = plant_disease_dict[plant_name][np.argmax(prediction)]
141
-
142
- return JSONResponse(content={"plant": plant_name, "predicted_disease": predicted_class})
 
 
 
 
 
 
 
 
 
 
 
143
  finally:
144
  # Clean up temporary file
145
  os.remove(temp_path)
 
3
  import tensorflow as tf
4
  import numpy as np
5
  import os
6
+ import requests
7
  from tensorflow.keras.models import load_model
8
  from tensorflow.keras.preprocessing import image
9
  from tensorflow.keras.layers import Layer, Conv2D, Softmax, Concatenate
 
115
  file (UploadFile): The image file uploaded by the user.
116
 
117
  Returns:
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:
 
138
 
139
  # Make prediction
140
  prediction = model.predict(img_array)
141
+ class_label = plant_disease_dict[plant_name][np.argmax(prediction)]
142
+
143
+ # Fetch additional data from external API
144
+ try:
145
+ response = requests.get(f"https://navpan2-sarva-ai-back.hf.space/kotlinback/{class_label}")
146
+ external_data = response.json() if response.status_code == 200 else {"error": "Failed to fetch external data"}
147
+ except Exception as e:
148
+ external_data = {"error": str(e)}
149
+
150
+ return JSONResponse(content={
151
+ "plant": plant_name,
152
+ "predicted_disease": class_label,
153
+ "external_data": external_data
154
+ })
155
  finally:
156
  # Clean up temporary file
157
  os.remove(temp_path)