GodfreyOwino commited on
Commit
b6fa28f
1 Parent(s): 3a883b6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -11
app.py CHANGED
@@ -13,8 +13,9 @@ app.add_middleware(
13
  allow_headers=["*"], # Allows all headers
14
  )
15
 
16
- # Loading the model
17
  model = joblib.load("soil_npk_joblib_model.joblib")
 
18
 
19
  class InputData(BaseModel):
20
  crop_name: str
@@ -30,16 +31,21 @@ class InputData(BaseModel):
30
  @app.post("/predict")
31
  async def predict(data: InputData):
32
  try:
33
- input_data = np.array([[
34
- data.target_yield,
35
- data.field_size,
36
- data.ph,
37
- data.organic_carbon,
38
- data.nitrogen,
39
- data.phosphorus,
40
- data.potassium,
41
- data.soil_moisture
42
- ]])
 
 
 
 
 
43
  prediction = model.predict(input_data)
44
  return {
45
  "nitrogen_need": float(prediction[0][0]),
 
13
  allow_headers=["*"], # Allows all headers
14
  )
15
 
16
+ # Loading the model and label encoder
17
  model = joblib.load("soil_npk_joblib_model.joblib")
18
+ le = joblib.load("label_encoder.joblib")
19
 
20
  class InputData(BaseModel):
21
  crop_name: str
 
31
  @app.post("/predict")
32
  async def predict(data: InputData):
33
  try:
34
+ input_data = pd.DataFrame({
35
+ 'crop_name': [data.crop_name],
36
+ 'target_yield': [data.target_yield],
37
+ 'field_size': [data.field_size],
38
+ 'ph': [data.ph],
39
+ 'organic_carbon': [data.organic_carbon],
40
+ 'nitrogen': [data.nitrogen],
41
+ 'phosphorus': [data.phosphorus],
42
+ 'potassium': [data.potassium],
43
+ 'soil_moisture': [data.soil_moisture]
44
+ })
45
+
46
+ # Use the encoder to transform the crop_name
47
+ input_data['crop_name'] = le.transform(input_data['crop_name'])
48
+
49
  prediction = model.predict(input_data)
50
  return {
51
  "nitrogen_need": float(prediction[0][0]),