Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 =
|
34 |
-
data.
|
35 |
-
data.
|
36 |
-
data.
|
37 |
-
data.
|
38 |
-
data.
|
39 |
-
data.
|
40 |
-
data.
|
41 |
-
data.
|
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]),
|