| import gradio as gr | |
| import pandas as pd | |
| import pickle | |
| # تحميل الموديل | |
| with open("random_forest_pkl.pkl", "rb") as f: | |
| model = pickle.load(f) | |
| # التصنيفات | |
| labels = ["Less Fertile", "Fertile", "Highly Fertile"] | |
| # دالة التوقع | |
| def predict_fertility(N, P, K, ph, ec, oc, S, zn, fe, cu, Mn, B): | |
| 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 | |
| }]) | |
| pred = model.predict(input_data)[0] | |
| return { | |
| "label": labels[pred] | |
| } | |
| # واجهة 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="json" | |
| ) | |
| iface.launch() | |