HaramGuard / RUN.md
munals's picture
Upload 96 files
9c69d05 verified
# 🚀 كيفية تشغيل HaramGuard
## المتطلبات الأساسية
1. Python 3.9+ مع virtual environment
2. Node.js 18+ (للفرونت إند)
---
## خطوات التشغيل
### 1️⃣ تشغيل Backend (FastAPI)
```bash
# الانتقال لمجلد backend
cd backend
# تفعيل البيئة الافتراضية (إن وجدت)
# إذا كان اسم البيئة HaramG:
source ../HaramG/bin/activate
# أو إنشاء بيئة جديدة:
# python -m venv venv
# source venv/bin/activate # على macOS/Linux
# venv\Scripts\activate # على Windows
# تثبيت المكتبات
pip install -r requirements.txt
# تشغيل الـ API Server
python api.py
```
**النتيجة:** سترى رسالة:
```
🚀 [API] HaramGuard REST API ready on http://0.0.0.0:8000
```
✅ Backend يعمل الآن على `http://127.0.0.1:8000`
---
### 2️⃣ تشغيل Frontend (React Dashboard)
**الطريقة الأسهل - استخدم script جاهز:**
```bash
cd frontend
./run-frontend.sh install # أول مرة فقط
./run-frontend.sh dev # لتشغيل الـ dev server
```
**أو يدوياً (في terminal جديد):**
```bash
# 1. تأكد أنك خارج virtual environment
deactivate # إذا كنت داخل (HaramG)
# 2. أضف node إلى PATH
export PATH="/usr/local/bin:$PATH"
# 3. اذهب لمجلد frontend
cd frontend
# 4. ثبت المكتبات (أول مرة فقط)
npm install
# 5. شغل الـ dev server
npm run dev
```
**أو استخدم node مباشرة:**
```bash
cd frontend
/usr/local/bin/node /usr/local/lib/node_modules/npm/bin/npm-cli.js install
/usr/local/bin/node /usr/local/lib/node_modules/npm/bin/npm-cli.js run dev
```
**النتيجة:** سترى رسالة مثل:
```
VITE v7.x.x ready in xxx ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
```
✅ Frontend يعمل الآن على `http://localhost:5173`
---
### 3️⃣ فتح الداشبورد
افتح المتصفح واذهب إلى:
```
http://localhost:5173
```
سترى الداشبورد يعرض:
- 📹 فيديو مباشر مع detection
- 📊 Risk metrics (LOW/MEDIUM/HIGH)
- 🚨 Alerts والإجراءات المقترحة
- 🪞 ReflectionAgent statistics
- 🚪 حالة البوابات
---
## 🔧 استكشاف الأخطاء
### Backend لا يعمل؟
1. **تحقق من API Keys:**
```bash
# افتح config.py وتأكد من وجود:
# GROQ_API_KEY
# ANTHROPIC_KEY (اختياري)
```
2. **تحقق من الفيديو:**
```bash
# تأكد من وجود الملف:
ls backend/hajj_real_video.mp4
```
3. **تحقق من المنافذ:**
```bash
# تأكد أن port 8000 غير مستخدم:
lsof -i :8000 # على macOS/Linux
```
### Frontend لا يتصل بالـ Backend؟
1. **تحقق من أن Backend يعمل:**
```bash
curl http://127.0.0.1:8000/health
# يجب أن يعيد: {"status":"ok","pipeline_ready":true}
```
2. **تحقق من CORS:** Backend مضبوط للسماح بجميع الأصول (`allow_origins=['*']`)
### npm لا يعمل (command not found أو env: node: No such file or directory)?
**المشكلة:** `node` غير موجود في PATH حتى بعد الخروج من virtual environment
**الحل الأسهل - استخدم script جاهز:**
```bash
cd frontend
./run-frontend.sh install
./run-frontend.sh dev
```
**الحلول اليدوية:**
1. **إضافة node إلى PATH ثم استخدام npm:**
```bash
export PATH="/usr/local/bin:$PATH"
cd frontend
npm install
npm run dev
```
2. **استخدام node مباشرة لتشغيل npm:**
```bash
cd frontend
/usr/local/bin/node /usr/local/lib/node_modules/npm/bin/npm-cli.js install
/usr/local/bin/node /usr/local/lib/node_modules/npm/bin/npm-cli.js run dev
```
3. **إضافة PATH دائمياً في ~/.zshrc:**
```bash
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
```
---
## 📝 ملاحظات
- **Backend** يعالج الفيديو في background thread
- **Frontend** يطلب state كل ثانية من `/api/realtime/state`
- البيانات تُحفظ تلقائياً في `backend/outputs/hajjflow_rt.db`
---
## 🧪 تشغيل Evaluation
```bash
cd backend
python evaluation.py
```
سيُنشئ:
- `outputs/plots/` - رسوم بيانية
- `outputs/eval/summary.json` - ملخص النتائج