| # 🚀 دليل النشر على Hugging Face Spaces |
|
|
| ## المتطلبات |
| - حساب على [Hugging Face](https://huggingface.co/) (مجاني) |
| - [Git](https://git-scm.com/) مثبّت على جهازك |
|
|
| --- |
|
|
| ## الخطوات |
|
|
| ### 1. إنشاء Space جديد |
|
|
| 1. اذهب إلى: https://huggingface.co/new-space |
| 2. **Space name**: `murshid` |
| 3. **SDK**: اختر **Docker** |
| 4. **Visibility**: Public (مجاني) أو Private |
| 5. اضغط **Create Space** |
|
|
| ### 2. رفع المشروع |
|
|
| ```powershell |
| cd d:\murishd |
| |
| # تهيئة Git (إذا لم يكن موجوداً) |
| git init |
| |
| # إضافة الـ remote (غيّر YOUR_USERNAME باسم حسابك) |
| git remote add space https://huggingface.co/spaces/YOUR_USERNAME/murshid |
| |
| # إضافة الملفات والرفع |
| git add . |
| git commit -m "Initial deployment" |
| git push space main |
| ``` |
|
|
| > ⚠️ إذا طلب كلمة مرور، استخدم **Access Token** من: |
| > https://huggingface.co/settings/tokens |
|
|
| ### 3. إعداد المتغيرات البيئية (Secrets) |
|
|
| اذهب إلى إعدادات الـ Space: `Settings → Variables and secrets` |
|
|
| أضف هذه المتغيرات: |
|
|
| | الاسم | القيمة | النوع | |
| |-------|--------|-------| |
| | `MURSHID_DB_URL` | `sqlite:////app/data/murshid.db` | Variable | |
| | `MURSHID_MODELS_DIR` | `/app/Needed` | Variable | |
| | `MURSHID_SKIP_LLM` | `true` | Variable | |
| | `SECRET_KEY` | (اختر كلمة سر عشوائية) | **Secret** | |
| | `HF_TOKEN` | (اختياري — لو تبغى Llama) | **Secret** | |
|
|
| ### 4. انتظر البناء |
|
|
| - HF Spaces يبني الـ Docker image تلقائياً |
| - يأخذ **3-5 دقائق** للبناء الأول |
| - بعد النجاح، الرابط يكون: |
| ``` |
| https://YOUR_USERNAME-murshid.hf.space |
| ``` |
|
|
| --- |
|
|
| ## الروابط بعد النشر |
|
|
| | الرابط | الوصف | |
| |--------|-------| |
| | `https://YOUR_USERNAME-murshid.hf.space` | الواجهة الرئيسية | |
| | `https://YOUR_USERNAME-murshid.hf.space/docs` | توثيق Swagger | |
| | `https://YOUR_USERNAME-murshid.hf.space/health` | فحص الحالة | |
|
|
| --- |
|
|
| ## ملاحظات |
|
|
| ### الوضع الحالي (LITE mode) |
| - المشروع ينشر بوضع **LITE** (بدون torch/SecureBERT+) |
| - تحليل القواعد يعمل لكن بدقة أقل (embeddings عشوائية) |
| - مناسب لاختبار الواجهة والـ API |
|
|
| ### للترقية إلى LOCAL mode (SecureBERT+ بدون Llama) |
| عدّل `Dockerfile` وأزل التعليق من سطر torch: |
| ```dockerfile |
| RUN pip install --no-cache-dir torch --index-url https://download.pytorch.org/whl/cpu transformers sentencepiece |
| ``` |
| > ⚠️ هذا يزيد حجم الصورة ~800MB ويحتاج ذاكرة أكثر |
|
|
| ### للترقية إلى FULL mode (مع Llama 3) |
| - غيّر الـ Space إلى **GPU (T4)** من الإعدادات ($0.60/ساعة) |
| - عدّل `MURSHID_SKIP_LLM=false` |
| - أضف `HF_TOKEN` في الـ Secrets |
| - استخدم `requirements.txt` الكامل بدل `requirements_light.txt` |
|
|
| --- |
|
|
| ## استكشاف الأخطاء |
|
|
| | المشكلة | الحل | |
| |---------|------| |
| | Build فشل | تحقق من الـ Logs في تبويب الـ Space | |
| | 502 Bad Gateway | انتظر دقيقة — الخادم يبدأ | |
| | DB خطأ | تحقق من `MURSHID_DB_URL` في المتغيرات | |
| | Frontend لا يتصل | الـ BASE URL أصبح تلقائي (`window.location.origin`) | |
|
|