navjotk commited on
Commit
6e0db99
·
verified ·
1 Parent(s): acbe280

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -0
app.py CHANGED
@@ -44,6 +44,34 @@ def predict_crop(N, P, K, temperature, humidity, ph, rainfall):
44
  crop_name = le.inverse_transform([pred])[0]
45
  return f"🌾 ਸਿਫਾਰਸ਼ੀ ਫਸਲ: *{crop_name}*"
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
 
49
  # ---------------------------
@@ -147,6 +175,12 @@ with gr.Blocks() as demo:
147
  predict_btn = gr.Button("ਫਸਲ ਦੀ ਭਵਿੱਖਬਾਣੀ ਕਰੋ")
148
  crop_output = gr.Markdown()
149
  predict_btn.click(predict_crop, inputs=[N, P, K, temperature, humidity, ph, rainfall], outputs=crop_output)
 
 
 
 
 
 
150
 
151
  with gr.TabItem("🗣️ ਆਵਾਜ਼ ਰਾਹੀਂ ਪੁੱਛੋ"):
152
  gr.Markdown("### ਆਪਣਾ ਸਵਾਲ ਆਵਾਜ਼ ਰਾਹੀਂ ਪੁੱਛੋ (ਪੰਜਾਬੀ ਵਿੱਚ)")
 
44
  crop_name = le.inverse_transform([pred])[0]
45
  return f"🌾 ਸਿਫਾਰਸ਼ੀ ਫਸਲ: *{crop_name}*"
46
 
47
+ # ---------------------------
48
+ # Reverse Prediction Setup
49
+ # ---------------------------
50
+ data['crop_encoded'] = le.transform(data['label'])
51
+ reverse_X = data[['crop_encoded']]
52
+ y_cols = ['N', 'P', 'K', 'temperature', 'humidity', 'ph', 'rainfall']
53
+ reverse_models = {}
54
+ for col in y_cols:
55
+ y = data[col]
56
+ X_train, X_test, y_train, y_test = train_test_split(reverse_X, y, test_size=0.2, random_state=42)
57
+ model_r = lgb.LGBMRegressor()
58
+ model_r.fit(X_train, y_train)
59
+ reverse_models[col] = model_r
60
+
61
+ label_to_encoded = {label: le.transform([label])[0] for label in le.classes_}
62
+
63
+ def predict_crop_parameters(crop_name):
64
+ crop_name = crop_name.lower()
65
+ if crop_name not in label_to_encoded:
66
+ return f"❌ Error: '{crop_name}' not found in crop labels."
67
+ encoded_value = label_to_encoded[crop_name]
68
+ input_data = [[encoded_value]]
69
+ predictions = {}
70
+ for param, model_r in reverse_models.items():
71
+ predicted_value = model_r.predict(input_data)[0]
72
+ predictions[param] = round(predicted_value, 2)
73
+ return predictions
74
+
75
 
76
 
77
  # ---------------------------
 
175
  predict_btn = gr.Button("ਫਸਲ ਦੀ ਭਵਿੱਖਬਾਣੀ ਕਰੋ")
176
  crop_output = gr.Markdown()
177
  predict_btn.click(predict_crop, inputs=[N, P, K, temperature, humidity, ph, rainfall], outputs=crop_output)
178
+
179
+ with gr.TabItem("🔁 ਫਸਲ ਤੋਂ ਪੈਰਾਮੀਟਰ"):
180
+ crop_input = gr.Textbox(label="🌿 ਫਸਲ ਦਾ ਨਾਂ ਲਿਖੋ")
181
+ result_output = gr.JSON(label="🧪 ਅਨੁਕੂਲ ਪੈਰਾਮੀਟਰ")
182
+ run_btn = gr.Button("➡️ ਭਵਿੱਖਬਾਣੀ ਲਵੋ")
183
+ run_btn.click(fn=predict_crop_parameters, inputs=[crop_input], outputs=[result_output])
184
 
185
  with gr.TabItem("🗣️ ਆਵਾਜ਼ ਰਾਹੀਂ ਪੁੱਛੋ"):
186
  gr.Markdown("### ਆਪਣਾ ਸਵਾਲ ਆਵਾਜ਼ ਰਾਹੀਂ ਪੁੱਛੋ (ਪੰਜਾਬੀ ਵਿੱਚ)")