الدليل التشغيلي النهائي: تشغيل المشروع كاملًا

يجمع هذا الدليل كل الأجزاء في مكان واحد. اتبع هذه الخطوات لتشغيل الواجهة الخلفية وتطبيق الدردشة على الجوال معًا من البداية إلى النهاية.

قائمة التحقق من المتطلبات المسبقة

قبل أن تبدأ، تحقق من الإصدارات:

python --version        # يجب أن يكون 3.10+
node --version          # يجب أن يكون 18+
npm --version           # يجب أن يكون 9+
git --version           # أي إصدار

ستحتاج أيضًا إلى: - مفتاح OpenAI API (أو مفتاح مزوّد آخر) - محرر كود (ننصح باستخدام VS Code) - تطبيق Expo Go على هاتفك (iOS/Android) أو محاكي


الخطوة 1: إعداد الواجهة الخلفية

اختر طريقة واحدة: بيئة افتراضية أو Docker.

الخيار أ: بيئة افتراضية

# انتقل إلى المشروع
cd aiproject/backend

# أنشئ بيئة افتراضية وفعّلها
python3 -m venv venv
source venv/bin/activate       # على Windows: venv\Scripts\activate

# ثبّت التبعيات
pip install -r app/requirements.txt

# اضبط مفتاح API الخاص بك
cp app/.env.example app/.env
# عدّل app/.env وأضف OPENAI_API_KEY

الخيار ب: Docker

# انتقل إلى المشروع
cd aiproject/backend

# ابنِ صورة Docker
docker compose build

# اضبط مفتاح API (يحمّله Docker Compose تلقائيًا)
cp app/.env.example app/.env
# عدّل app/.env وأضف OPENAI_API_KEY

الخطوة 2: تشغيل الواجهة الخلفية

الخيار أ: بيئة افتراضية

cd aiproject/backend
source venv/bin/activate
python app/__init__.py

الخيار ب: Docker

cd aiproject/backend
docker compose up

من المفترض أن ترى:

 * Running on http://127.0.0.1:5000

اختبره:

curl http://127.0.0.1:5000/api/status
# → {"status":"ok"}

الخطوة 3: إعداد الجوال

# في طرفية جديدة
cd aiproject/mobile

# ثبّت Expo CLI عالميًا (إن لم يكن مثبتًا بالفعل)
npm install -g expo-cli

# ثبّت تبعيات المشروع
npm install

# شغّل خادم التطوير الخاص بـ Expo
npx expo start

امسح رمز QR بتطبيق Expo Go على هاتفك، أو اضغط a لمحاكي Android أو i لمحاكي iOS.

الخطوة 4: تهيئة الجوال للوصول إلى الواجهة الخلفية

اعرف عنوان IP المحلي لحاسوبك:

# macOS/Linux
ip addr show | grep inet

# Windows (PowerShell)
ipconfig

في mobile/App.tsx، حدّث API_BASE_URL ليشير إلى عنوان IP المحلي لحاسوبك:

const API_BASE_URL = 'http://192.168.1.100:5000';  // استبدله بعنوان IP الخاص بك

ملاحظة: على محاكي Android، استخدم http://10.0.2.2:5000 بدلًا من ذلك. ملاحظة: على محاكي iOS، http://localhost:5000 يعمل.

الخطوة 5: اختبار المسار الكامل

  1. الواجهة الخلفية تعمل على المنفذ 5000
  2. تطبيق الجوال يعمل عبر Expo
  3. اكتب رسالة في تطبيق الدردشة واضغط «إرسال»
  4. يجب أن تظهر الرسالة في الدردشة، ثم يردّ الذكاء الاصطناعي

إذا ظهرت الرسائل وردّ الذكاء الاصطناعي، فكل شيء يعمل!


استكشاف الأخطاء وإصلاحها

ما تراه السبب المحتمل الحل
الجوال لا يستطيع الوصول إلى الواجهة الخلفية عنوان IP خاطئ في API_BASE_URL استخدم عنوان IP المحلي لحاسوبك (وليس localhost)
ModuleNotFoundError تبعية مفقودة نفّذ pip install -r app/requirements.txt
يعيد OpenAI خطأ مفتاح API مفقود أو غير صالح تحقق من ملف app/.env
المنفذ مستخدم بالفعل عملية أخرى على المنفذ 5000 أوقفها: kill $(lsof -t -i:5000) أو استخدم منفذًا آخر
خطأ CORS في المتصفح flask-cors غير مفعّل الإصلاح موجود في backend/step-06-cors.md
رمز QR الخاص بـ Expo لا يعمل مشكلة في الشبكة تأكد من أن الهاتف والحاسوب على شبكة WiFi نفسها

الخطوات التالية

  • تبديل مزوّدي الذكاء الاصطناعي: راجع concepts/05-llm-comparison.md
  • إضافة قاعدة معرفة RAG: راجع advanced/rag/step-01-what-is-rag.md
  • اجعله وكيليًا: راجع advanced/agentic/step-01.md
  • تشغيل الاختبارات: cd backend && python -m pytest tests/ -v
  • فحص الكود الخاص بك: ruff check backend/ advanced/
  • إعداد CI/CD: راجع deployment/ci-cd.md
  • النشر إلى الإنتاج: راجع deployment/overview.md
  • جرّب التحديات: كل قسم يحتوي على challenges.md مع تمارين