الفهرسة والجاهزية

تبني الفهرسة فهارس متجهية ونصية للبحث الهجين. تستخدم المحادثة استرجاعاً تدريجياً — يمكنك طرح الأسئلة قبل اكتمال الفهرسة.

مراحل الجاهزية (واجهة الإضافة)

المرحلة إرسال المحادثة المعنى
Offline محظور Engine/الخادم غير قابل للوصول
Starting محظور فحص الصحة قيد التنفيذ أو الخادم قيد الإقلاع
Error محظور فشل الفهرسة أو الجلسة — تحقق من Engine ← الفهرسة
Indexing مسموح المسح الخلفي قيد التقدّم؛ فهرس جزئي متاح
Limited مسموح قد يعمل البحث؛ Ollama غير متصل — التوليد متدهور
Ready مسموح اكتمل الفهرس؛ يتعامل المراقب مع تغييرات الملفات

ما تنتجه الفهرسة

  • مخزن المتجهات (ChromaDB) — تمثيلات لكل مقطع
  • BM25 — فهرس كلمات مفتاحية لكل مساحة عمل
  • رسم التبعيات — توسيع اختياري للجيران في البحث
  • مخزن تجزئة الملفات — تخطي الملفات غير المتغيرة عند إعادة الفهرسة

الملفات ذات الأولوية

تُفهرَس هذه المسارات وتُعزَّز أولاً:

  • تبويبات المحرر المفتوحة (تُرسَل عند تسجيل مساحة العمل)
  • الملف النشط عند تغيير المحرر / الحفظ (prioritize-file)
  • مرفقات المحادثة ونتائج grep من العميل (hot-paths)

RAG التدريجي أثناء الفهرسة

عند إرسال محادثة والحالة Indexing:

  1. تُقرأ ملف المحرر النشط من القرص فوراً
  2. يعمل البحث الهجين على أي مقاطع موجودة حتى الآن
  3. احتياطي grep من جانب الخادم إذا كانت نتائج الفهرس فارغة
  4. قد يعمل grep من عميل الإضافة قبل التدفق (مساري Repo / Hybrid)

محفّزات إعادة الفهرسة

  • إعادة فهرسة يدوية من Engine ← الفهرسة
  • تغيير نموذج التضمين (يتطلب إعادة فهرسة كاملة)
  • لحاق التشغيل الدافئ للملفات المفقودة بعد إعادة تشغيل الخادم
  • أحداث مراقب الملفات عند الحفظ وإعادة التسمية

استطلاع سطح المكتب مقابل الإضافة

يستطلع تبويب الفهرسة في Engine على فاصل زمني أبطأ من شريط حالة الإضافة. قد تُظهر الإضافة Indexing بينما لا تزال النظرة العامة في Engine تبدو خاملة — استخدم تفاصيل الفهرسة لمعرفة الحقيقة.

الإكمال المضمّن أثناء الفهرسة

النص الشبحي (المضمّن) معطّل افتراضياً. عند تفعيله، تكون سياسة الإيقاف المؤقت في الخادم inline.pause_mode:

  • off — لا يوقف مؤقتاً أبداً للتضمين/إعادة الفهرسة (الافتراضي المشحون)
  • shared_runtime — يوقف مؤقتاً فقط عندما تشترك المحادثة والتضمين في مضيف Ollama واحد
  • on_embed_busy — يوقف مؤقتاً كلما كان أي تضمين/إعادة فهرسة للجلسة مشغولاً

يمكن لإعداد VS Code contextmint.inline.pauseWhileIndexing فقط أن يُشدّد إلى on_embed_busy؛ ولا يمكنه تخفيف وضع خادم أكثر صرامة. يُفضَّل shared_runtime على خوادم الفريق المتنازع عليها — راجع الإعدادات ← الإكمال المضمّن (الخادم).

مشكلات: استكشاف الأخطاء ← الفهرسة.