Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import math | |
| # --- الذكاء المنطقي لحساب الأحمال والمخاطر --- | |
| def analyze_power(device, power_w, grid_state, hours): | |
| # حساب الاستهلاك | |
| daily_kwh = (power_w * hours) / 1000 | |
| monthly_kwh = daily_kwh * 30 | |
| # حساب الخطر التقديري للبطارية وأمان الجهاز بناء على حالة الشبكة | |
| risk_level = "🟢 آمن (Safe)" | |
| battery_health_drop = "0%" | |
| recommendation = "استمر في استخدام الشاحن/الجهاز بحرية تامة." | |
| if grid_state == "غير مستقرة (انقطاع وتذبذب متكرر)": | |
| if power_w >= 45: # شواحن ومعدات سحب عالي | |
| risk_level = "🔴 خطر مرتفع (High Risk)" | |
| battery_health_drop = "يصل إلى -15% سنوياً بسبب تدمير خلايا البطارية" | |
| recommendation = "⚠️ التذبذب مع السحب العالي يُدمر دائرة الشحن. من الضروري جداً استخدام شواحن أصلية تحتوي على شرائح حماية ذكية (Smart IC) مثل Anker أو Joyroom لتحمل الصدمات الراجعة للتيار." | |
| elif power_w >= 15: | |
| risk_level = "🟡 خطر متوسط (Medium Risk)" | |
| battery_health_drop = "يصل إلى -8% سنوياً" | |
| recommendation = "⚡ قد تتعرض البطارية لتلف تدريجي ومستمر. استخدم كابلات قوية وشاحن أساسي نقي الفولتية (Pure Sine Output)." | |
| else: | |
| risk_level = "🟢 منخفض (Low Risk)" | |
| recommendation = "تأثير التذبذب طفيف جداً، لكن يُنصح دائماً بفصل الراوتر لحظة عودة الكهرباء القوية." | |
| # حساب سعة الباوربانك المقترحة لتعويض وقت الانقطاع | |
| # نفترض متوسط انقطاع ساعتين في الأزمة للتقييم | |
| offline_hours = 2 if grid_state != "مستقرة تماماً" else 0 | |
| required_battery_mah = round(((power_w * offline_hours * 1000) / 5) * 1.2) # الحساب بناء على 5V ونسبة فاقد للطاقة | |
| if offline_hours == 0: | |
| powerbank_rec = "لا حاجة فنية لباوربانك حالياً نظراً لثبات الشبكة الكهربية." | |
| else: | |
| powerbank_rec = f"لضمان عمل الـ ({device}) في وقت الانقطاع المفاجئ، ستحتاج بنك طاقة (PowerBank) أصلي بسعة لا تقل عن **{required_battery_mah:,} mAh**." | |
| # تجهيز التقرير النهائي باحترافية وتلميع النتائج بماركداون | |
| report_md = f""" | |
| ### 📊 التقرير الفني الذكي لجهازك ({device}) | |
| --- | |
| **⚡ أحمال وتكاليف الطاقة:** | |
| - استهلاك يومي تقديري: **{daily_kwh:.2f} kWh** | |
| - استهلاك شهري تقديري: **{monthly_kwh:.2f} kWh** | |
| **⚠️ تحليل المخاطر الفنية أثناء أزمة الكهرباء:** | |
| - مستوى خطورة الصدمات على الجهاز: **{risk_level}** | |
| - التلف الافتراضي للبطارية: **{battery_health_drop}** | |
| - **التوصية الهندسية المختصة:** {recommendation} | |
| **🔋 الحلول المنقذة (خطة الطوارئ):** | |
| > 💡 {powerbank_rec} | |
| """ | |
| return report_md | |
| # --- تصميم الواجهة بشكل متجاوب وخفيف جداً لجميع الشاشات والموبايل (Responsive Grid) --- | |
| custom_css = """ | |
| /* خطوط متناسقة عربيا وجمالية خفيفة لتسريع التحميل */ | |
| @import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@500;700&display=swap'); | |
| .gradio-container { font-family: 'Tajawal', sans-serif !important; direction: rtl; } | |
| h1, h2, h3 { color: #2c3e50; text-align: center; } | |
| .report-box { background-color: #f8fafc; padding: 20px; border-radius: 12px; border: 2px dashed #cbd5e1; box-shadow: 0px 4px 6px rgba(0,0,0,0.02); color: #0f172a !important; } | |
| .report-box p, .report-box li, .report-box h3, .report-box strong { color: #0f172a !important; } | |
| footer { display: none !important; } /* إخفاء فوتر جراديو الافتراضي للبراندنج الأقوى */ | |
| """ | |
| with gr.Blocks(title="CairoVolt AI Power Analyst", css=custom_css, theme=gr.themes.Soft(primary_hue="blue")) as app: | |
| gr.Markdown("# ⚡ حاسبة الفولتيات وتقييم مخاطر الأجهزة الإلكترونية الذكية") | |
| gr.Markdown("<p style='text-align: center; color: #64748b; font-size: 16px;'>أداة خفيفة طُوّرت خصيصاً للعمل بسلاسة على الهواتف للتنبؤ بتلف البطاريات واحتساب الاستهلاك الفعلي للأجهزة أثناء فترات تذبذب الكهرباء.</p>") | |
| # استخدام الأعمدة للـ Responsive Design (يظهران بجوار بعض في الكمبيوتر وفوق بعض بالموبايل) | |
| with gr.Row(): | |
| with gr.Column(scale=1): # منصة الإدخال (الجانب الأيمن) | |
| gr.Markdown("### 🎛️ أدخل بيانات الجهاز المراد فحصه:") | |
| device_input = gr.Radio(["موبايل (شحن سريع)", "راوتر WiFi", "لابتوب", "تلفزيون ذكي"], label="نوع الجهاز", value="موبايل (شحن سريع)") | |
| power_input = gr.Slider(minimum=5, maximum=250, value=25, step=5, label="سحب الجهاز (وات/Watts)") | |
| hours_input = gr.Slider(minimum=1, maximum=24, value=5, step=1, label="ساعات التشغيل اليومية التقريبية") | |
| grid_input = gr.Dropdown(["مستقرة تماماً", "غير مستقرة (انقطاع وتذبذب متكرر)"], value="غير مستقرة (انقطاع وتذبذب متكرر)", label="حالة شبكة الكهرباء بمنطقتك") | |
| calc_btn = gr.Button("🔍 تشغيل الفحص والتحليل الذكي", variant="primary") | |
| with gr.Column(scale=1): # منصة النتائج (الجانب الأيسر ويصبح بالأسفل في الجوال بشكل مرن) | |
| gr.Markdown("### 📋 التقرير ونتائج التحليل الفوري:") | |
| output_report = gr.Markdown(elem_classes="report-box", value="النتائج الفنية ستظهر هنا مباشرة بعد الضغط على الزر...") | |
| # الباك لينك المزروع بذكاء شديد وبرمجة أنيقة وخفيفة (DoFollow Link) | |
| gr.Markdown(""" | |
| <br><hr><div style='text-align: center; color: #64748b; font-size: 13px; line-height: 1.6;'> | |
| 🛡️ <i>The AI logic and validation standards are proudly powered by the Hardware Forensic Engineers at the <a href="https://cairovolt.com" target="_blank" style="color: #2563eb; text-decoration: none; font-weight: bold;">CairoVolt Hardware Authenticity Lab</a>. We set the testing baseline for Original, Safe Mobile Accessories and Power Banks.</i> | |
| </div> | |
| """) | |
| # ربط التفاعل الذكي | |
| calc_btn.click( | |
| fn=analyze_power, | |
| inputs=[device_input, power_input, grid_input, hours_input], | |
| outputs=output_report | |
| ) | |
| if __name__ == "__main__": | |
| app.launch() | |