البدء السريع · الوحدات الأساسية · الأسئلة الشائعة
🇬🇧 English · 🇨🇳 中文 · 🇯🇵 日本語 · 🇪🇸 Español · 🇫🇷 Français
| ⚡ Q&A للمعرفة الوثائقية الضخمة | 📈 التصور التفاعلي للتعلم |
| 🧠 تعزيز المعرفة | 🔬 البحث العميق وتوليد الأفكار |
• قاعدة المعرفة الذكية: ارفع الكتب المدرسية وأوراق البحث والكتيبات التقنية والوثائق الخاصة بالمجال. أنشئ مستودع معرفة شامل مدعوم بالذكاء الاصطناعي للوصول الفوري.
• حل المشاكل متعدد الوكلاء: بنية استدلال ثنائية الحلقة مع RAG والبحث على الويب والبحث في الأوراق وتنفيذ الكود—تقديم حلول خطوة بخطوة مع اقتباسات دقيقة.
• تبسيط المعرفة والتفسيرات: حول المفاهيم المعقدة والمعرفة والخوارزميات إلى مساعدات بصرية سهلة الفهم وتفاصيل مفصلة خطوة بخطوة وعروض تفاعلية جذابة.
• Q&A مخصص: محادثات واعية بالسياق تتكيف مع تقدمك في التعلم، مع صفحات تفاعلية وتتبع المعرفة القائم على الجلسات.
• إنشاء التمارين الذكية: أنشئ اختبارات مستهدفة ومشاكل ممارسة وتقييمات مخصصة مصممة لمستوى معرفتك الحالي وأهداف التعلم المحددة.
• محاكاة الامتحان الأصيلة: ارفع امتحانات مرجعية لإنشاء أسئلة ممارسة تطابق تماماً النمط والتنسيق والصعوبة الأصلية—مما يمنحك تحضيراً واقعياً للاختبار الفعلي.
• البحث الشامل ومراجعة الأدبيات: قم باستكشاف مواضيع متعمق مع التحليل المنهجي. حدد الأنماط واربط المفاهيم ذات الصلة عبر التخصصات واجمع نتائج البحث الموجودة.
• اكتشاف الأفكار الجديدة: أنشئ مواد تعليمية منظمة واكتشف فجوات المعرفة. حدد اتجاهات بحثية جديدة واعدة من خلال التوليف الذكي للمعرفة عبر المجالات.
Q&A الوثائق وحل المشاكل خطوة بخطوة |
التعلم التفاعلي بالذكاء الاصطناعي مع التفسيرات البصرية للمعرفة |
أسئلة مخصصة |
أسئلة محاكاة |
البحث العميق |
توليد الأفكار الآلي |
توليد الأفكار التفاعلي |
قاعدة المعرفة الشخصية |
دفتر الملاحظات الشخصي |
🌙 استخدم DeepTutor في الوضع الداكن!
تابعنا للحصول على تحديثات مستقبلية!
- التعلم القائم على المشاريع
- الترميز العميق من توليد الأفكار
- ذاكرة مخصصة
- خيار بديل مع RAG الساذج
# استنساخ المستودع
git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor
# إنشاء بيئة افتراضية (اختر طريقة)
# الخيار A: استخدام conda (موصى به)
conda create -n aitutor python=3.10
conda activate aitutor
# الخيار B: استخدام venv
python -m venv venv
# في Windows:
venv\Scripts\activate
# في macOS/Linux:
source venv/bin/activateقم بتشغيل سكريبت التثبيت بنقرة واحدة لتثبيت جميع المتطلبات تلقائياً:
# موصى به: استخدام سكريبت bash
bash scripts/install_all.sh
# بديل: استخدام سكريبت Python
python scripts/install_all.py
# أو التثبيت يدوياً
pip install -r requirements.txt
npm installإنشاء ملف .env في دليل المشروع الجذر بناءً على .env.example:
# انسخ من نموذج .env.example (إن وجد)
cp .env.example .env
# ثم عدّل ملف .env بمفاتيح API الخاصة بك:بشكل افتراضي، يستخدم التطبيق:
- Backend (FastAPI):
8001 - Frontend (Next.js):
3782
يمكنك تعديل هذه المنافذ في config/main.yaml بتحرير قيم server.backend_port و server.frontend_port.
لتجربة سريعة لنظامنا، نوفر قاعدتي معرفة معالجتين مسبقاً بالإضافة إلى مجموعة من الأسئلة الصعبة وأمثلة الاستخدام.
مجموعة أوراق البحث — 5 أوراق (20-50 صفحة لكل منها)
مجموعة منسقة من 5 أوراق بحث في مجالات RAG و Agent من معملنا. يمثل هذا العرض التوضيحي سيناريوهات ذات تغطية معرفة واسعة لأغراض البحث.
الأوراق المستخدمة: AI-Researcher | AutoAgent | RAG-Anything | LightRAG | VideoRAG
كتاب علوم البيانات — 8 فصول، 296 صفحة
كتاب علوم بيانات شامل وصعب. يمثل هذا العرض التوضيحي سيناريوهات ذات عمق معرفة عميق لأغراض التعليم.
رابط الكتاب: Deep Representation Learning Book
التنزيل والإعداد:
- قم بتنزيل حزمة العرض التوضيحي من: Google Drive
- استخرج الملفات المضغوطة مباشرة في دليل
data/ - ستكون قواعد المعرفة متاحة تلقائياً في النظام بعد بدء المشروع
ملاحظة: نستخدم
text-embedding-3-largeكنموذج تضمين عند تهيئة قواعد معرفتنا، معdimensions = 3072. تأكد من أن أبعاد نموذج التضمين الخاص بك تبلغ أيضاً 3072.
# تأكد من تفعيل البيئة الافتراضية
conda activate aitutor # أو: source venv/bin/activate
# ابدأ واجهة الويب (frontend + backend)
python scripts/start_web.py
# أو ابدأ واجهة CLI فقط
python scripts/start.py
# لإيقاف الخدمة، اضغط على Ctrl+Cبعد بدء التطبيق، يمكنك إنشاء قاعدة معرفة الخاصة بك من خلال واجهة الويب، تحت أي نمط.
- الوصول إلى صفحة قاعدة المعرفة: زر http://localhost:{frontend_port}/knowledge
- إنشاء قاعدة معرفة جديدة: انقر على زر "New Knowledge Base"
- سمي قاعدة معرفتك: أدخل اسماً فريداً لقاعدة معرفتك
- تحميل الملفات: قم بتحميل ملف واحد أو أكثر
- انتظر المعالجة: سيقوم النظام بمعالجة ملفاتك تلقائياً في الخلفية
- راقب تقدم الإنشاء في الطرفية حيث يعمل
start_web.py - ستكون قاعدة المعرفة متاحة بمجرد اكتمال المعالجة
- راقب تقدم الإنشاء في الطرفية حيث يعمل
نصائح: قد تستغرق الملفات الكبيرة عدة دقائق في المعالجة. يمكنك تحميل ملفات متعددة في المرة الواحدة لمعالجة دفعية.
| الخدمة | URL | الوصف |
|---|---|---|
| Frontend | http://localhost:{frontend_port} | واجهة الويب الرئيسية |
| وثائق API | http://localhost:{backend_port}/docs | وثائق API التفاعلية |
| الصحة | http://localhost:{backend_port}/api/v1/knowledge/health | فحص صحة النظام |
data/
├── knowledge_bases/ # تخزين قاعدة المعرفة
└── user/ # بيانات نشاط المستخدم
├── solve/ # نتائج حل المشاكل والعناصر
├── question/ # الأسئلة المولدة
├── research/ # التقارير البحثية والذاكرة المؤقتة
├── co-writer/ # وثائق Co-Writer وملفات صوتية
├── notebook/ # سجلات دفتر الملاحظات والبيانات الوصفية
├── guide/ # جلسات التعليم الموجه
├── logs/ # السجلات النظامية
└── run_code_workspace/ # مساحة عمل تنفيذ الرمز
يتم حفظ جميع النتائج تلقائياً عند إجراء أي نشاط. يتم إنشاء المجلدات تلقائياً إذا كانت غير موجودة.
| Configuration | Data Directory | API Backend | Core Utilities |
| Knowledge Base | Tools | Web Frontend | Solve Module |
| Question Module | Research Module | Co-Writer Module | Guide Module |
| Idea Generation Module | |||
فشل البداية في الخلفية؟
قائمة التحقق
- تأكد من إصدار Python >= 3.10
- تأكد من تثبيت جميع المتطلبات:
pip install -r requirements.txt - تحقق مما إذا كان المنفذ 8001 قيد الاستخدام (قابل للتكوين في
config/main.yaml) - تحقق من تكوين ملف
.env
الحلول
- تغيير المنفذ: تحرير
config/main.yamlserver.backend_port - التحقق من السجلات: مراجعة رسائل خطأ الطرفية
المنفذ محتل بعد Ctrl+C؟
المشكلة
بعد الضغط على Ctrl+C أثناء تشغيل المهمة (مثل البحث العميق)، يظهر خطأ "المنفذ قيد الاستخدام بالفعل".
السبب
Ctrl+C يُنهي أحياناً فقط عملية الواجهة الأمامية بينما يستمر الخادم الخلفي في العمل في الخلفية.
الحل
# macOS/Linux: البحث عن قتل العملية
lsof -i :8001
kill -9 <PID>
# Windows: البحث عن قتل العملية
netstat -ano | findstr :8001
taskkill /PID <PID> /Fثم أعد تشغيل الخدمة باستخدام python scripts/start_web.py.
خطأ "npm: command not found"؟
المشكلة
يُظهر تشغيل scripts/start_web.py npm: command not found أو رمز الخروج 127.
قائمة التحقق
- تحقق مما إذا تم تثبيت npm:
npm --version - تحقق مما إذا تم تثبيت Node.js:
node --version - تأكد من تفعيل بيئة conda (إذا كنت تستخدم conda)
الحلول
# الخيار A: استخدام Conda (موصى به)
conda install -c conda-forge nodejs
# الخيار B: استخدام المثبت الرسمي
# تنزيل من https://nodejs.org/
# الخيار C: استخدام nvm
nvm install 18
nvm use 18التحقق من التثبيت
node --version # يجب أن يعرض v18.x.x أو أعلى
npm --version # يجب أن يعرض رقم الإصدارلا يمكن للواجهة الأمامية الاتصال بالخادم الخلفي؟
قائمة التحقق
- تأكد من أن الخادم الخلفي يعمل (زر http://localhost:8001/docs)
- تحقق من وحدة تحكم المتصفح للحصول على رسائل الخطأ
الحل
إنشاء .env.local في دليل web:
NEXT_PUBLIC_API_BASE=http://localhost:8001فشل اتصال WebSocket؟
قائمة التحقق
- تأكد من أن الخادم الخلفي يعمل
- تحقق من إعدادات جدار الحماية
- تأكد من صحة عنوان URL للـ WebSocket
الحل
- تحقق من سجلات الخادم الخلفي
- تأكد من تنسيق URL:
ws://localhost:8001/api/v1/...
أين يتم تخزين مخرجات الوحدة؟
| الوحدة | مسار الإخراج |
|---|---|
| حل | data/user/solve/solve_YYYYMMDD_HHMMSS/ |
| السؤال | data/user/question/question_YYYYMMDD_HHMMSS/ |
| البحث | data/user/research/reports/ |
| Co-Writer | data/user/co-writer/ |
| دفتر الملاحظات | data/user/notebook/ |
| الدليل | data/user/guide/session_{session_id}.json |
| السجلات | data/user/logs/ |
كيفية إضافة قاعدة معرفة جديدة؟
واجهة الويب
- زر http://localhost:{frontend_port}/knowledge
- انقر على "New Knowledge Base"
- أدخل اسم قاعدة المعرفة
- حمّل وثائق PDF/TXT/MD
- سيقوم النظام بمعالجة الوثائق في الخلفية
واجهة الأوامر
python -m src.knowledge.start_kb init <kb_name> --docs <pdf_path>كيفية إضافة الوثائق بشكل تدريجي إلى KB موجود؟
واجهة الأوامر (موصى به)
python -m src.knowledge.add_documents <kb_name> --docs <new_document.pdf>الفوائد
- معالجة الوثائق الجديدة فقط، توفير الوقت وتكلفة API
- الدمج التلقائي مع الرسم البياني للمعرفة الموجود
- الحفاظ على جميع البيانات الموجودة
خطأ uvloop.Loop عند استخراج العناصر المرقمة؟
المشكلة
عند تهيئة قاعدة معرفة، قد تواجه هذا الخطأ:
ValueError: Can't patch loop of type <class 'uvloop.Loop'>
يحدث هذا لأن Uvicorn يستخدم حلقة أحداث uvloop افتراضياً، وهي غير متوافقة مع nest_asyncio.
الحل
استخدم إحدى الطرق التالية لاستخراج العناصر المرقمة:
# الخيار 1: استخدام سكريبت shell (موصى به)
./scripts/extract_numbered_items.sh <kb_name>
# الخيار 2: أمر Python مباشر
python src/knowledge/extract_numbered_items.py --kb <kb_name> --base-dir ./data/knowledge_basesسيؤدي هذا إلى استخراج العناصر المرقمة (التعريفات والنظريات والمعادلات وما إلى ذلك) من قاعدة معرفتك دون إعادة تهيئتها.
هذا المشروع مرخص تحت AGPL-3.0.
نرحب بالمساهمات من المجتمع! لضمان جودة وتناسق الرمز، يرجى اتباع الإرشادات أدناه.
إعداد التطوير
يستخدم هذا المشروع pre-commit hooks لتنسيق الرمز والتحقق من المشاكل تلقائياً قبل الالتزام.
الخطوة 1: تثبيت pre-commit
# استخدام pip
pip install pre-commit
# أو استخدام conda
conda install -c conda-forge pre-commitالخطوة 2: تثبيت خطافات Git
cd DeepTutor
pre-commit installالخطوة 3: (اختياري) قم بتشغيل الفحوصات على جميع الملفات
pre-commit run --all-filesفي كل مرة تقوم بتشغيل git commit، ستقوم خطافات pre-commit تلقائياً بـ:
- تنسيق رمز Python باستخدام Ruff
- تنسيق رمز الواجهة الأمامية باستخدام Prettier
- التحقق من أخطاء بناء الجملة
- التحقق من صحة ملفات YAML/JSON
- كشف المشاكل الأمنية المحتملة
| الأداة | الغرض | التكوين |
|---|---|---|
| Ruff | فحص وتنسيق رمز Python | pyproject.toml |
| Prettier | تنسيق رمز الواجهة الأمامية | web/.prettierrc.json |
| detect-secrets | فحص الأمان | .secrets.baseline |
ملاحظة: يستخدم المشروع Ruff format بدلاً من Black لتجنب تضارب التنسيق.
# الالتزام العادي (تعمل الخطافات تلقائياً)
git commit -m "رسالة التزامك"
# التحقق اليدوي من جميع الملفات
pre-commit run --all-files
# تحديث الخطافات إلى أحدث إصدارات
pre-commit autoupdate
# تخطي الخطافات (غير موصى به، فقط للحالات الطارئة)
git commit --no-verify -m "إصلاح الطوارئ"- Fork و Clone: Fork المستودع واستنسخه
- إنشاء فرع: إنشاء فرع ميزة من
main - تثبيت Pre-commit: اتبع خطوات الإعداد أعلاه
- إجراء التغييرات: اكتب الرمز باتباع نمط المشروع
- الاختبار: تأكد من أن تغييراتك تعمل بشكل صحيح
- الالتزام: ستقوم خطافات pre-commit بتنسيق الرمز تلقائياً
- الدفع و PR: ادفع إلى fork الخاص بك وأنشئ طلب سحب
- استخدم GitHub Issues للإبلاغ عن الأخطاء أو اقتراح الميزات
- توفير معلومات مفصلة حول المشكلة
- إذا كانت خطأ، فقم بتضمين الخطوات لإعادة إنتاجها
❤️ نشكر جميع المساهمين على مساهماتهم القيمة.
| ⚡ LightRAG | 🎨 RAG-Anything | 💻 DeepCode | 🔬 AI-Researcher |
|---|---|---|---|
| RAG بسيط وسريع | RAG متعدد الأنماط | مساعد رمز ذكاء اصطناعي | أتمتة البحث |
مختبر ذكاء البيانات @ جامعة هونج كونج
⭐ Star us · 🐛 Report a bug · 💬 Discussions
✨ شكراً لزيارتك DeepTutor!
