AL-NAQEEP's picture
Update app.py
f03a497 verified
import gradio as gr
import joblib
import numpy as np
# تحميل النموذج
model = joblib.load("my_model.pkl")
# عدد الميزات المطلوبة
NUM_FEATURES = 18
# دالة التنبؤ
def predict_from_input(text_input):
try:
# تقسيم المدخلات بفاصلة أو مسافة
if "," in text_input:
values = [float(x.strip()) for x in text_input.split(",")]
else:
values = [float(x.strip()) for x in text_input.split()]
if len(values) != NUM_FEATURES:
return f"❌ يجب إدخال {NUM_FEATURES} قيمة مفصولة بفاصلة أو مسافة فقط."
arr = np.array(values).reshape(1, -1)
pred = model.predict(arr)[0]
if pred == 1:
return "✅ التنبؤ: المجموعة 1 ( حالة نشطة)"
else:
return "✅ التنبؤ: المجموعة 0 ( حالة مستقرة)"
except Exception as e:
return f"❌ حدث خطأ أثناء المعالجة: {str(e)}"
# واجهة Gradio مع شرح للمدخلات
iface = gr.Interface(
fn=predict_from_input,
inputs=gr.Textbox(
label="🧾 أدخل 18 قيمة مفصولة بفاصلة أو مسافة",
placeholder="مثال: 1, 30, 12, 1, 0, 1, 2, 1, 0, 1, 1, 1, 1, 0, 0, 1, 2, 2",
lines=2
),
outputs="text",
title="🔍 نموذج تصنيف المرضى",
description="""
💡 أدخل القيم الرقمية المرتبطة بالحالة الصحية للمريض بالترتيب التالي:
1. **الجنس**: 0 = أنثى، 1 = ذكر  
2. **العمر** (بالسنوات)  
3. **سنوات التعليم**  
4. **الرضاعة الطبيعية**: 0 = لا، 1 = نعم  
5. **Varicella (الحماق / جدري الماء)**:  1,2,3
6. **Initial_Symptom (الاعراض الاولية)** من 1 الى 15
7. **Mono_or_Polysymptomatic (أحادي الأعراض أو متعدد الأعراض)**: 0 = أحادي، 1 = متعدد  
8. **Oligoclonal_Bands (الشرائط قليلة النسيلة)**: قد تكون قيمًا عددية 0 أو 1  .*
9. **LLSSEP (اختبار جهد الإمكانات الحسية الجسدية للأطراف السفلية)**: 0 = سليم، 1 = غير طبيعي  
10. **ULSSEP (اختبار جهد الإمكانات الحسية الجسدية للأطراف العلوية)**: 0 = سليم، 1 = غير طبيعي  
11. **VEP (  فحص الرؤية البصرية )**: 0 = سليم، 1 = غير طبيعي  
12. **BAEP (فحص السمع)**: 0 = سليم، 1 = غير طبيعي  
13. **Periventricular_MRI (التصوير بالرنين المغناطيسي حول البطينات)**: 0 = لا، 1 = نعم (لوجود آفات)  
14. **Infratentorial_MRI (التصوير بالرنين المغناطيسي تحت الخيمة)**: 0 = لا، 1 = نعم (لوجود آفات)  
15. **Cortical_MRI (التصوير بالرنين المغناطيسي القشري)**: 0 = لا، 1 = نعم (لوجود آفات)  
16. **Spinal_Cord_MRI (التصوير بالرنين المغناطيسي للحبل الشوكي)**: 0 = لا، 1 = نعم (لوجود آفات)  
17. **Initial_EDSS (مقياس الإعاقة الممتدة الأولي)**: (درجة عددية، مثل 1 أو 2 أو 3 أو أكثر)  
18. **Final_EDSS (مقياس الإعاقة الممتدة النهائي)**: (درجة عددية، مثل 1 أو 2 أو 3 أو أكثر)  
"""
)
iface.launch()