soil_api0 / app.py
haidarsamar's picture
Upload 3 files
1509def verified
Raw
History Blame Contribute Delete
1.66 kB
import gradio as gr
import pandas as pd
import pickle
# تحميل النموذج
with open("random_forest_pkl.pkl", "rb") as f:
model = pickle.load(f)
# التصنيفات باللغة العربية
categories = ["غير خصبة", "خصبة", "شديدة الخصوبة"]
# دالة التوقع
def predict_fertility(N, P, K, ph, ec, oc, S, zn, fe, cu, Mn, B):
try:
input_data = pd.DataFrame([{
"N": N,
"P": P,
"K": K,
"ph": ph,
"ec": ec,
"oc": oc,
"S": S,
"zn": zn,
"fe": fe,
"cu": cu,
"Mn": Mn,
"B": B
}])
prediction = model.predict(input_data)[0]
return categories[prediction]
except Exception as e:
return f"خطأ: {str(e)}"
# واجهة Gradio
iface = gr.Interface(
fn=predict_fertility,
inputs=[
gr.Number(label="النيتروجين (N)"),
gr.Number(label="الفسفور (P)"),
gr.Number(label="البوتاسيوم (K)"),
gr.Number(label="درجة الحموضة (pH)"),
gr.Number(label="التوصيل الكهربائي (EC)"),
gr.Number(label="الكربون العضوي (OC)"),
gr.Number(label="الكبريت (S)"),
gr.Number(label="الزنك (Zn)"),
gr.Number(label="الحديد (Fe)"),
gr.Number(label="النحاس (Cu)"),
gr.Number(label="المنغنيز (Mn)"),
gr.Number(label="البورون (B)")
],
outputs=gr.Text(label="درجة الخصوبة")
)
iface.launch()