يُستخدم هذا المستودع لتمارين وواجبات AI Engineering Pilot Course (AIE2026). ستعمل طوال المقرر على تطوير وكيل يدعم تعلم هندسة الذكاء الاصطناعي تدريجيًا.
صُممت التمارين لتُنجَز بالكامل في المتصفح. لا تحتاج إلى تثبيت شيء على حاسوبك.
| ما تحتاجه | الغرض | ملاحظات |
|---|---|---|
| حساب GitHub شخصي | إنشاء نسخة متفرعة من هذا المستودع وتسليم العمل عبر فرع عمل وPull Request | قد تقيّد الحسابات التي تديرها شركة أو مؤسسة تعليمية استخدام Codespaces وCopilot |
| GitHub Codespaces | بيئة التطوير لـ Lecture 01 وLecture 03 وLecture 05 وغيرها. يجهّز إعداد .devcontainer/ تلقائيًا حاوية تضم Python 3.12 وuv وNode.js |
تتيح الحسابات الشخصية حصة مجانية قدرها 120 ساعة نواة شهريًا (نحو 60 ساعة بنواتين). أوقف Codespace عند الانتهاء |
| GitHub Copilot (تكفي الخطة المجانية Free) | إكمال الشيفرة والمحادثة. يُستخدم أيضًا كعميل MCP في الواجب المتقدم لـ Lecture 05 | للخطة المجانية حدود شهرية لعمليات الإكمال والمحادثة |
| Gemini API (الحصة المجانية في Google AI Studio) | استدعاء النموذج اللغوي الكبير. أنشئ مفتاحًا باستخدام حساب Google شخصي ومرّره عبر سر Codespaces المسمى GEMINI_API_KEY |
للحصة المجانية حدود لكل دقيقة ولكل يوم (راجع «الافتراضات والقيود» أدناه) |
| Google Colab (وحدة T4 GPU، الحصة المجانية) | يُستخدم فقط لتدريب LoRA في Lecture 02 | مدة استخدام GPU محدودة. افصل بيئة التشغيل واحذفها عند الانتهاء |
إذا أردت التشغيل محليًا على حاسوبك، فثبّت Python 3.12 وuv، ونفّذ uv sync --frozen، واضبط متغير البيئة GEMINI_API_KEY.
- أنشئ نسخة Fork من هذا المستودع في حسابك
- أنشئ مفتاح Gemini API في Google AI Studio
- سجّل
GEMINI_API_KEYضمن GitHub Settings → Codespaces → Secrets، واختر نسختك المتفرعة ضمن المستودعات المسموح لها باستخدام السرّ - في نسختك المتفرعة، اختر Code → Codespaces → Create codespace on main
- تحقق من عمل البيئة في الطرفية
uv run pytest -q
uv run python -m app.ask "ما هو LoRA؟"راجع lectures/01/problem.md لمعرفة الخطوات بالتفصيل.
.devcontainer/ تعريف بيئة Codespaces (Python 3.12 وuv وNode.js؛ ينفّذ uv sync --frozen عند البدء)
.github/workflows/test.yml يشغّل الاختبارات لكل Pull Request (فعّل سير العمل في تبويب Actions داخل نسختك المتفرعة)
app/
config.py يقرأ اسم النموذج ومفتاح API
ask.py Lecture 01: يطرح سؤالًا على النموذج اللغوي الكبير
tools.py Lecture 03: أدوات الوكيل (مثل البحث في المسرد)
agent.py Lecture 03: وكيل لدعم التعلم باستخدام Pydantic AI (Lecture 05: عبر MCP مع --mcp)
mcp_server.py Lecture 05: خادم MCP يتيح المسرد
mcp_servers.json Lecture 05: إعداد خوادم MCP المستخدمة (بصيغة mcpServers)
data/
glossary.json مسرد المقرر
lectures/ النقاط الرئيسة لكل محاضرة
lectures/NN/
problem.md تمارين وواجبات المحاضرة
answer.md ملف تملؤه وتسلّمه
notebooks/ Lecture 02: دفتر LoRA لـ Google Colab (lora_format_tuning.ipynb)
scripts/ برامج مساعدة
tests/ اختبارات (لا تتطلب مفتاح API)
pyproject.toml / uv.lock التبعيات وإصداراتها المثبّتة
- أنشئ فرع عمل لكل محاضرة (مثل
git switch -c lec01) - أنجز التمارين والواجب واملأ
lectures/NN/answer.md - ادفع التغييرات ثم أنشئ Pull Request من فرع العمل إلى
mainداخل نسختك المتفرعة
للواجب ثلاثة مستويات: «أساسي» و«تطبيقي» و«متقدم». يكفي إكمال مستوى واحد منها.
- إصدارات التبعيات مثبّتة (في
uv.lock: Python 3.12 وpydantic-ai-slim 2.57.0 وgoogle-genai 2.31.0). لن نرفع إصداراتها أثناء المقرر. ثبّتها كما هي باستخدامuv sync --frozen. - النموذج الافتراضي هو
gemini-3.5-flash-lite. غيّره بمتغير البيئةAIE_MODEL(راجع «تغيير النموذج» أدناه). يمكنك أيضًا استخدام نماذج أخرى أو API باشتراكك الخاص - للحصة المجانية من Gemini API حدود على معدل الطلبات. يستدعي الوكلاء (من Lecture 03 فصاعدًا) النموذج اللغوي الكبير عدة مرات للسؤال الواحد، فيصلون إلى الحد أسرع من Lecture 01. إذا ظهرت رسالة
بلغت حد معدل الطلباتفانتظر نحو دقيقة. وإذا تكررتالنموذج مشغول (503)فجرّبAIE_MODEL=gemini-3.1-flash-lite - مرّر مفتاح API من خلال متغير البيئة
GEMINI_API_KEYفقط. لا تلصقه في الشيفرة أو الالتزامات (commits) أو المحادثة. إذا تسرّب، فاحذفه من AI Studio وأنشئ مفتاحًا جديدًا - يستطيع Codespaces الاتصال بالإنترنت، لكن لا يمكن للاتصالات الخارجية الدخول إلى Codespace (المنافذ المُحوَّلة خاصة افتراضيًا). شغّل خادم MCP الخاص بـ Lecture 05 داخل Codespaces
- تعمل الاختبارات (
uv run pytest -q) دون مفتاح API (إذ تستخدم TestModel الذي لا يستدعي نموذجًا لغويًا كبيرًا)
- لا تضع مفاتيح API في الشيفرة أو الالتزامات. مرّرها عبر أسرار Codespaces
- أوقف Codespaces عند الانتهاء. لن تتمكن من تشغيل Codespace بعد استنفاد الحصة المجانية
- يمكنك استخدام أدوات ذكاء اصطناعي مثل Copilot. اقرأ الشيفرة المقترحة وافهمها قبل قبولها
النموذج الافتراضي هو gemini-3.5-flash-lite. يمكنك تغييره بمتغير البيئة AIE_MODEL.
AIE_MODEL=gemini-3.5-flash uv run python -m app.ask "ما هو LoRA؟"للحصة المجانية حدود لعدد الطلبات في الدقيقة واليوم. راجع صفحة حدود معدل طلبات Gemini API لمعرفة هذه الحدود.