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()