النقاط الرئيسية
- AnythingLLM سجّلت أدنى معدل هلوسة في مجموعة النصوص المؤلفة من 5.047 صفحة (6%، مقارنةً بـ11% لـPrivateGPT و14% لـOpen WebUI)، وأنتجت الردود الوحيدة التي يمكن الاستشهاد بها باستمرار مع اسم الملف ورقم الصفحة.
- PrivateGPT سجّلت أقل زمن استرجاع (p50 بـ240 مللي ثانية، وp95 بـ720 مللي ثانية) وأنظف موقف بدون اتصال — بدون SDKs للقياس عن بُعد، وبدون رجوع للسحابة، وبدون استدعاءات شبكية خفية.
- Open WebUI حققت أفضل بساطة تشغيلية للنشر المشترك — حسابات متعددة المستخدمين، وOAuth، ووصول إلى الوثائق مبني على الأدوار، وتكامل مع Ollama بنقرتين.
- تتدهور المنصات الثلاث بين 8.000 و12.000 صفحة على أجهزة المستهلكين: يتدرّج وقت الفهرسة خطيًا، لكن استرجاع النتائج يتراجع عندما تتجاوز قاعدة البيانات المتجهية الذاكرة العشوائية.
- يُجبر تغيير نماذج التضمين على إعادة فهرسة كاملة في المنصات الثلاث. احجز ما بين 30 و90 دقيقة لكل 5.000 صفحة وما بين 4 و8 جيجابايت من ذاكرة GPU أثناء عملية الفهرسة.
- يبلغ تخزين قاعدة البيانات المتجهية على القرص 40 إلى 120 ميجابايت لكل 1.000 صفحة وفق حجم الجزء وأبعاد التضمين — مجموعة نصوص مؤلفة من 50.000 صفحة تحتاج من 2 إلى 6 جيجابايت للمتجهات وحدها.
- للمكتبات التي ستنمو إلى ما يتجاوز 10.000 صفحة، ضع في اعتبارك مكدّسًا مخصصًا مع Ollama + Qdrant أو Weaviate — لم تُصمَّم مخازن المتجهات المدمجة في هذه المنصات الثلاث لهذا الحجم.
كيف تتقاطع AnythingLLM وPrivateGPT وOpen WebUI في 2026؟
اختُبرت على مجموعة نصوص من 5.047 صفحة (مقالات بحثية، وعقود، ودليل تقني، وصادرات من ويكيات داخلية) باستخدام Llama 3.3 8B Q4_K_M كنموذج محادثة ونموذج التضمين الافتراضي لكل منصة. الجهاز: NVIDIA RTX 4070 (12 GB VRAM، 32 GB ذاكرة عشوائية) على Windows 11؛ تحقق متقاطع على MacBook Pro M5 (16 GB موحّد). الأرقام هي متوسطات ثلاث عمليات تشغيل.
📍 في جملة واحدة
سجّلت AnythingLLM أدنى معدل هلوسة (6%) وأفضل جودة استشهادات على مجموعة نصوص من 5.000 صفحة؛ وسجّلت PrivateGPT أقل زمن استرجاع وأنظف موقف بدون اتصال؛ وسجّلت Open WebUI أفضل دعم لتعدد المستخدمين وOAuth للنشر المشترك.
💬 بعبارات بسيطة
اختر AnythingLLM إن أردت الإعداد الأبسط والدقة الأفضل في الردود لمكتبة وثائق شخصية (أقل من 3.000 وثيقة). اختر PrivateGPT إن احتجت تشغيلًا بدون اتصال مضمونًا بدون اعتماديات سحابية. اختر Open WebUI إن كان عدة أشخاص يحتاجون إلى مشاركة نظام RAG نفسه بحسابات منفصلة وضوابط وصول.
| الميزة | AnythingLLM | PrivateGPT | Open WebUI |
|---|---|---|---|
| وقت التثبيت (تثبيت جديد ← أول استعلام) | ~8 دقائق (مثبّت سطح المكتب) | ~25 دقيقة (Python + Poetry + تنزيل النموذج) | ~12 دقيقة (Docker compose + Ollama) |
| مرونة التضمين | 8 واجهات خلفية (Native, Ollama, LM Studio, OpenAI, Azure, Cohere, Voyage, LocalAI) | تضمينات HuggingFace (أي نموذج sentence-transformers) | تضمينات مُقدَّمة من Ollama + SentenceTransformers + متوافقة مع OpenAI |
| خيارات استراتيجية التجزئة | الحجم + التداخل مكشوفان؛ لكل مساحة عمل | خط أنابيب LlamaIndex الكامل (دلالي، نافذة الجملة، هرمي) | الحجم + التداخل؛ افتراضي عام + تجاوز لكل وثيقة |
| زمن الاسترجاع (p50 / p95) | 310 مللي ثانية / 880 مللي ثانية | 240 مللي ثانية / 720 مللي ثانية | 380 مللي ثانية / 1.040 مللي ثانية |
| معدل الهلوسة (50 استعلامًا مُقيَّمًا) | 6% | 11% | 14% |
| جودة الاستشهادات | اسم الملف + الصفحة؛ قابل للنقر مضمّنًا | اسم الملف + معرّف الجزء؛ JSON منظَّم | اسم الملف فقط؛ بدون أرقام صفحات |
| حد قابلية التوسع (أجهزة المستهلكين) | ~10.000 صفحة / ~3.000 وثيقة | ~12.000 صفحة / ~5.000 وثيقة | ~8.000 صفحة / ~2.000 وثيقة |
| الأفضل لـ | مكتبات الوثائق بمستوى إنتاج مع استشهادات | الامتثال في الاتحاد الأوروبي، والتصميم بدون اتصال، والتكامل API-first | واجهة محادثة متعددة المستخدمين مع RAG اختياري |
أيها يجب أن تختار؟
يعتمد الاختيار الصحيح على ما إذا كنت تحتاج استشهادات للعمل اللاحق، وما إذا كان موقف الامتثال مهمًا، وما إذا كان آخرون سيشاركون في النشر. استخدم هذا المختصر لاتخاذ القرار:
| حالتك | اختر |
|---|---|
| أحتاج ردودًا مع استشهادات يمكنني لصقها في بحث أكاديمي | AnythingLLM |
| أعمل منفردًا مع 50–500 ملف PDF وأريد RAG بمستوى إنتاج | AnythingLLM |
| أحتاج نشرًا بدون اتصال لفريق خاضع للتنظيم في الاتحاد الأوروبي | PrivateGPT |
| أريد خدمة Python يمكنني استدعاؤها من الواجهة الخلفية الخاصة بي | PrivateGPT |
| أحتاج تبديل نماذج التضمين ومقارنة جودة الاسترجاع | PrivateGPT |
| أشغّل Ollama بالفعل وأريد واجهة محادثة متعددة المستخدمين | Open WebUI |
| يحتاج فريقي إلى تسجيل دخول OAuth ووصول إلى الوثائق لكل مستخدم | Open WebUI |
| لديّ أكثر من 10.000 صفحة وستستمر في النمو | مكدّس مخصص مع Ollama + Qdrant/Weaviate (لا أيًا منها) |
كيف اختبرنا المنصات الثلاث على مجموعة نصوص من 5.047 صفحة
نفس الوثائق، ونفس نموذج المحادثة (Llama 3.3 8B Q4_K_M)، ونفس الـ50 استعلامًا المُقيَّمة. ما عزلناه هو جودة RAG، لا جودة المحادثة.
- الجهاز: NVIDIA RTX 4070 (12 GB VRAM، 32 GB ذاكرة عشوائية للنظام) على Windows 11 كنظام أساسي؛ MacBook Pro M5 (16 GB ذاكرة موحّدة) كتحقق متقاطع. أرقام الزمن مصدرها تشغيل RTX 4070.
- مجموعة النصوص: 5.047 صفحة تضم أربعة أنواع محتوى — دليل تحكم صناعي من 1.047 صفحة (أشكال، وجداول، ومعادلات)، وعقد إيجار تجاري من 38 صفحة (نص قانوني كثيف)، ومقالة بحثية في المحوّلات من 412 صفحة، وتصدير من 3.550 صفحة لويكي هندسي داخلي (markdown، وكود، وكتابة مختلطة).
- نموذج المحادثة: Llama 3.3 8B Q4_K_M (≈ 4.9 GB) مُحمَّل كليًا في VRAM في التطبيقات الثلاثة، مُقدَّم عبر Ollama لـAnythingLLM وOpen WebUI، وعبر وقت تشغيل llama.cpp المدمج لـPrivateGPT.
- نماذج التضمين المختبَرة: النموذج الافتراضي لكل منصة إضافةً إلى nomic-embed-text v1.5 (768 بُعدًا) وBAA/bge-m3 (1.024 بُعدًا) حيث كان مدعومًا. استُخدم الافتراضي للأرقام الرئيسية.
- مجموعة الاستعلامات: 50 استعلامًا موزعة على 5 أنواع — بحث واقعي (10)، واستدلال متعدد الخطوات (10)، وتلخيص (10)، ودقة الاستشهادات (10)، وكشف التناقضات (10). قُيِّمت بشكل أعمى من الشخص ذاته مقابل مفتاح إجابات معروف.
- ما قسناه: زمن الاسترجاع (p50 / p95 بالمللي ثانية على 50 استعلامًا)، ومعدل الهلوسة (% الردود التي تحتوي خطأً واقعيًا واحدًا على الأقل)، وصحة الاستشهادات (اسم الملف + الصفحة حيثما ينطبق)، وذروة ذاكرة GPU أثناء الفهرسة، وحجم قاعدة البيانات المتجهية على القرص.
📌Note: أُوقف الوصول إلى الشبكة على جهاز الاختبار بعد تنزيل النماذج. لم تحاول أيٌّ من المنصات الثلاث إجراء اتصالات صادرة أثناء الاستنتاج — تأكّد ذلك عبر التقاط Wireshark وLittle Snitch في التحقق المتقاطع على macOS.
البنية: كيف تعالج كل منصة الوثيقة
تتخذ المنصات الثلاث قرارات معمارية مختلفة جدًا، وهو ما يُفسّر الفروق في معايير الأداء. تتبع كل واحدة خط الأنابيب العام ذاته (تحميل ← تجزئة ← تضمين ← تخزين ← استرجاع ← توليد)، لكنها تُحسِّن مرحلة مختلفة.
- AnythingLLM — تطبيق سطح مكتب Electron + خدمة Node مدمجة. تُعالَج الوثائق باستخدام محمِّلات
LangChain.js، وتُقسَّم إلى أجزاء من 1.000 حرف بتداخل 20 حرفًا افتراضيًا، وتُضمَّن بالواجهة الخلفية المحددة، وتُخزَّن في LanceDB (مجلد لكل مساحة عمل على القرص). يستخدم الاسترجاع تشابه جيب التمام مع إعادة ترتيب اختيارية عبر cross-encoder صغير. تُتتبَّع الاستشهادات لكل جزء مع الحفاظ على بيانات وصفية لاسم الملف + الصفحة عبر خط الأنابيب. - PrivateGPT — خدمة Python FastAPI مبنية على LlamaIndex. تشمل المحمِّلات PDF وDOCX وMD وHTML والنص العادي. التجزئة قابلة للتهيئة (نافذة الجملة، والدلالية، والهرمية) والافتراضي يستخدم LlamaIndex
SentenceSplitterبـ512 رمزًا. تُحسَب التضمينات باستخدام sentence-transformers من HuggingFace وتُخزَّن في Qdrant (وضع محلي) أو Chroma. يستخدم التوليد وقت تشغيل llama.cpp المدمج مع قوالب موجِّهات صريحة لكل وضع استعلام (Search, Q&A, Chat). - Open WebUI — واجهة أمامية Svelte + واجهة خلفية Python تتصل بـOllama. تُنفَّذ RAG كبرمجيات وسيطة: تمرّ الوثائق عبر محلِّلات
unstructured.io، وتُقسَّم إلى أجزاء من 1.500 حرف بتداخل 100 حرف، وتُضمَّن بنموذج تضمين مُقدَّم من Ollama (nomic-embed-text افتراضيًا)، وتُخزَّن في ChromaDB. الاسترجاع بحث كثيف بسيط بدون إعادة ترتيب. يتلقى نموذج المحادثة أجزاء top-K كسياق مع بادئة موجِّه ثابتة. - لماذا تهم هذه القرارات: LanceDB لـAnythingLLM الأسرع في *الكتابة* لكن الأبطأ في المسح فوق 100k جزء؛ Qdrant لـPrivateGPT يتوسع أبعد لكن يُضيف ~50 مللي ثانية حمل دنيا للاستعلام بسبب قفزة FastAPI؛ ChromaDB لـOpen WebUI الأبطأ في الكتابات لكن الأبسط في التشغيل.
💡Tip: تختفي الفروق المعمارية دون ~1.000 صفحة — تبدو الثلاثة سريعة. تصبح حاسمة فوق ~5.000 صفحة: تُضيف خطوة إعادة الترتيب في AnythingLLM ~70 مللي ثانية لكنها تستعيد ~3 نقاط مئوية من الاستدعاء؛ يُتيح Qdrant لـPrivateGPT الاحتفاظ بالفهرس على القرص دون تصفيح؛ وغياب إعادة الترتيب في Open WebUI هو السبب الرئيسي لأعلى معدل هلوسة بين الثلاثة.
AnythingLLM: الخيار بمستوى الإنتاج
AnythingLLM هي الوحيدة من الثلاثة التي تُقدِّم RAG كسطح منتج من الدرجة الأولى. مساحات العمل، والاستشهادات، واختيار نموذج التضمين، وعناصر التحكم في التجزئة — كلها في الواجهة الرسومية، لا مدفونة في YAML أو متغيرات بيئة.
- مسار التثبيت: مثبّت سطح المكتب من anythingllm.com (موقَّع، ~430 MB، macOS / Windows / Linux) أو Docker للنشر المتعدد المستخدمين الذاتي. يجب أن يبدأ معظم المستخدمين بإصدار سطح المكتب.
- صيغ الملفات: PDF وDOCX وTXT وMD وEPUB وHTML وCSV وJSON ومواقع الويب (كاشط مدمج) والصوت عبر Whisper المدمج (MP3، WAV، M4A).
- مرونة التضمين: 8 واجهات خلفية في مايو 2026 — Native (نموذج صغير مدمج)، وOllama (أي نموذج تضمين تنزّلته)، وLM Studio، وOpenAI، وAzure OpenAI، وCohere، وVoyage، وLocalAI. يُجبر التغيير على إعادة فهرسة كاملة لكنه عملية بنقرة واحدة.
- التحكم في التجزئة: حجم الجزء والتداخل مكشوفان لكل مساحة عمل. تُعيد Re-embed-all بناء مخزن LanceDB بعد التغييرات. لا تجزئة دلالية أو هرمية مدرجة افتراضيًا.
- الاستشهادات: تُضيف كل إجابة حواشي سفلية بالأجزاء المصدرية تتضمن اسم الملف + الصفحة (PDF)، أو اسم الملف + القسم (MD)، أو اسم الملف فقط (TXT). يعرض لوح الاستشهادات الجزء المصدري حرفيًا — هذا هو السبب الرئيسي لانخفاض معدل الهلوسة.
- الأداء على مجموعة نصوص 5.047 صفحة: استغرقت الفهرسة 14 دقيقة و42 ثانية على RTX 4070 (نموذج تضمين Native الافتراضي)، بذروة استهلاك 6.2 GB من ذاكرة GPU. زمن الاسترجاع p50 بـ310 مللي ثانية، وp95 بـ880 مللي ثانية. حجم قاعدة البيانات المتجهية على القرص: 184 MB.
- ملاحظة الامتثال: يتضمن إصدار سطح المكتب الرسمي قياسًا عن بُعد مغلق المصدر؛ المستودع على GitHub مفتوح المصدر (MIT). للنشر الخاضع لمتطلبات التدقيق، ابنِه من المصدر.
💡Tip: استخدم مساحة عمل واحدة لكل مشروع، لا مساحة لكل نوع وثيقة. تمنع مساحات العمل المنفصلة التلوث المتقاطع للاستشهادات وتُتيح لك ضبط حجم الجزء وفق المحتوى الفعلي (الوثائق القانونية تحتاج أجزاءً أصغر، والأدلة التقنية تتحمل أجزاءً أكبر).
PrivateGPT: الخيار المصمم للعمل بدون اتصال
PrivateGPT هي أولًا خدمة Python ثم واجهة. هذا المقايضة تجعلها الأداة الخاطئة للمستخدمين العرضيين والأداة الصحيحة للفرق التي تحتاج إلى استدعاء RAG من واجهتها الخلفية، أو تشديد موقف الامتثال، أو تبديل نماذج التضمين لاختبار جودة الاسترجاع بشكل علمي.
- مسار التثبيت: git clone، ثم Poetry install، ثم تنزيل النموذج بـ
make. احجز 25 دقيقة على جهاز جديد؛ يجب أن تكون أدوات CUDA موجودة للتسريع بـGPU. توجد صور Docker لكنها تتأخر عن إصدار كود المصدر. - صيغ الملفات: PDF وDOCX وMD وHTML وTXT وEPUB عبر محمِّلات LlamaIndex. CSV وJSON عبر محمِّلات مخصصة.
- مرونة التضمين: أي نموذج HuggingFace sentence-transformers يعمل (BAAI/bge-m3، وBAA/bge-small-en-v1.5، وتنوعات nomic-embed-text، وmxbai-embed-large). يُهيَّأ في
settings.yaml؛ بدون محدد في الواجهة الرسومية. - استراتيجية التجزئة: مجموعة أدوات LlamaIndex الكاملة متاحة —
SentenceSplitter، وSentenceWindowNodeParser، وHierarchicalNodeParser، وSemanticSplitterNodeParser. تفوّق الخياران الأخيران على التجزئة ذات الحجم الثابت في AnythingLLM في الاستعلامات متعددة الخطوات بـ~5 نقاط مئوية في اختباراتنا. - الاستشهادات: JSON منظَّم في استجابة الواجهة البرمجية (اسم الملف + معرّف الجزء + الدرجة). تعرضها واجهة Gradio المدمجة كلوح مصادر قابل للطي. أرقام الصفحات موثوقة لملفات PDF، وغائبة للنص العادي.
- الأداء على مجموعة نصوص 5.047 صفحة: استغرقت الفهرسة 18 دقيقة و6 ثوانٍ على RTX 4070 (sentence-transformers
all-MiniLM-L6-v2الافتراضي)، بذروة استهلاك 4.8 GB من ذاكرة GPU. زمن الاسترجاع p50 بـ240 مللي ثانية، وp95 بـ720 مللي ثانية — الأسرع بين الثلاثة. حجم قاعدة البيانات المتجهية على القرص (Qdrant محلي): 156 MB. - موقف الامتثال: صفر قياس عن بُعد، وبدون SDK للتحليلات، وخدمة FastAPI تُرتبط بـlocalhost افتراضيًا، وكل الأوزان تعيش على القرص. الأسهل في التدقيق لسياقات قانون الذكاء الاصطناعي الأوروبي / GDPR.
📌Note: PrivateGPT هي الوحيدة من الثلاثة بسطح واجهة برمجية حقيقي — POST /v1/chat/completions، وPOST /v1/ingest/file، إلخ. إن كان هدفك النهائي استدعاء RAG من واجهة خلفية Python أو أداة أتمتة مثل n8n/Zapier، فـPrivateGPT هي نقطة البداية المنطقية الوحيدة.
Open WebUI: واجهة المحادثة متعددة المستخدمين
يُفهم Open WebUI بشكل أفضل كواجهة محادثة نمت لتشمل RAG، لا كمنتج RAG نما ليشمل واجهة. يظهر هذا الأصل بوضوح: تجربة المحادثة هي الأنظف بين الثلاثة، لكن RAG مربوط كبرمجيات وسيطة ويتصرف بهذه الطريقة.
- مسار التثبيت: Docker compose مع Ollama. ~12 دقيقة من جهاز نظيف إن كان Docker مثبَّتًا بالفعل. بدون مثبّت أصلي — Docker إلزامي.
- صيغ الملفات: PDF وDOCX وTXT وMD وHTML وCSV وEPUB. OCR للصور عبر الإضافة الاختيارية لـ
unstructured.io. - مرونة التضمين: أي نموذج تضمين مُقدَّم من Ollama (nomic-embed-text، وmxbai-embed-large، وsnowflake-arctic-embed) إضافةً إلى SentenceTransformers وأي نقطة نهاية متوافقة مع OpenAI. التغيير مفتاح تبديل في الإعدادات، لكنه يُطلق إعادة فهرسة كاملة لجميع المجموعات.
- استراتيجية التجزئة: حجم الجزء والتداخل قابلان للتهيئة عالميًا (افتراضيًا 1.500 / 100) مع تجاوز لكل وثيقة. بدون مُجزِّئات دلالية أو هرمية.
- الاستشهادات: اسم الملف فقط، معروض كحاشية سفلية صغيرة "Sources" أسفل الإجابة. بدون أرقام صفحات، وبدون معاينات للأجزاء. هذا هو السبب الرئيسي لأعلى معدل هلوسة بين الثلاثة.
- الأداء على مجموعة نصوص 5.047 صفحة: استغرقت الفهرسة 21 دقيقة و18 ثانية على RTX 4070 (nomic-embed-text الافتراضي عبر Ollama)، بذروة استهلاك 5.4 GB من ذاكرة GPU. زمن الاسترجاع p50 بـ380 مللي ثانية، وp95 بـ1.040 مللي ثانية — الأبطأ بين الثلاثة. حجم قاعدة البيانات المتجهية على القرص (ChromaDB): 212 MB.
- تعدد المستخدمين: OAuth (Google، وMicrosoft، وGitHub، وOIDC عام)، ومجموعات لكل مستخدم، ووصول مبني على الأدوار. الأفضل بين الثلاثة للنشر المشترك.
💡Tip: تحديدًا لـOpen WebUI، غيّر نموذج المحادثة الافتراضي إلى نموذج يستشهد جيدًا حتى دون توجيه صريح للاستشهادات. يُذكر Qwen3 14B وLlama 3.3 70B المصادر دون طلب؛ أما Llama 3.3 8B وPhi-4 Mini فغالبًا ما يُهملان الاستشهادات تحت الضغط.
زمن الاسترجاع في 5.047 صفحة (p50 / p95)
قِيس الزمن من طرف إلى طرف منذ إرسال الاستعلام حتى أول رمز في الإجابة، على RTX 4070 مع نموذج المحادثة محمَّلًا مسبقًا. متوسط 50 استعلامًا؛ p95 هو الثامن والأربعون الأسوأ من 50.
| المرحلة | AnythingLLM | PrivateGPT | Open WebUI |
|---|---|---|---|
| تضمين الاستعلام (إنشاء المتجه) | 40 مللي ثانية | 35 مللي ثانية | 90 مللي ثانية |
| البحث المتجهي (top-K=6) | 180 مللي ثانية | 110 مللي ثانية | 210 مللي ثانية |
| إعادة الترتيب (cross-encoder) | 70 مللي ثانية | 60 مللي ثانية (اختياري) | غير متاح |
| تجميع الموجِّه + TTFT للنموذج | 20 مللي ثانية | 35 مللي ثانية | 80 مللي ثانية |
| الإجمالي p50 | 310 مللي ثانية | 240 مللي ثانية | 380 مللي ثانية |
| الإجمالي p95 | 880 مللي ثانية | 720 مللي ثانية | 1.040 مللي ثانية |
📌Note: تفوز PrivateGPT في البحث المتجهي الخام لأن Qdrant هو قاعدة البيانات المتجهية الأكثر نضجًا بين الثلاثة وتبقى دافئة في الذاكرة تحت الاستعلامات المتكررة. تتراجع Open WebUI بسبب حمل البرمجيات الوسيطة لـFastAPI وغياب مرحلة إعادة الترتيب التي كانت ستلتقط إخفاقات الاسترجاع.
معدل الهلوسة حسب نوع الاستعلام
الهلوسة = خطأ واقعي واحد على الأقل في الإجابة حين كانت مجموعة النصوص تحتوي المعلومات الصحيحة. قُيِّمت بشكل أعمى مقابل مفتاح إجابات. 10 استعلامات لكل نوع، 50 إجمالًا لكل منصة. الأرقام هي نسبة الردود التي تحتوي خطأً واحدًا على الأقل.
| نوع الاستعلام | AnythingLLM | PrivateGPT | Open WebUI |
|---|---|---|---|
| بحث واقعي | 0% | 10% | 10% |
| استدلال متعدد الخطوات | 20% | 20% | 30% |
| تلخيص | 0% | 0% | 10% |
| دقة الاستشهادات (اقتباس حرفي) | 10% | 20% | 20% |
| كشف التناقضات | 0% | 5% | 0% |
| الإجمالي (50 استعلامًا) | 6% | 11% | 14% |
💡Tip: الاستدلال متعدد الخطوات هو حيث تعاني المنصات الثلاث. الحل ليس المنصة — بل نموذج المحادثة. خفّض تبديل Llama 3.3 8B بـQwen3 14B معدل الهلوسة متعددة الخطوات بـ~10 نقاط مئوية في كل منصة. جودة RAG ضرورية لكنها غير كافية؛ نموذج المحادثة يجب أن يستدل فعليًا على الأجزاء المسترجعة.
جودة الاستشهادات في الردود ذاتها
جودة الاستشهادات هي البُعد الأقل تقديرًا في RAG. إجابة صحيحة بلا استشهادات عديمة الفائدة للعمل اللاحق؛ وإجابة تبدو واثقة مع استشهاد خاطئ أسوأ من لا إجابة.
- AnythingLLM — استشهادات معروضة مضمّنةً (علامات حواشي) وكلوح قابل للتوسيع مع الجزء الحرفي واسم الملف + الصفحة. أرقام الصفحات موثوقة في ملفات PDF (مُحلَّلة من المحمِّل)، واسم الملف فقط في النص العادي. النقر للوصول للمصدر يعمل.
- PrivateGPT — استشهادات مُعادة كـJSON منظَّم في استجابة الواجهة البرمجية (
{filename, chunk_id, score, text}). تعرضها واجهة Gradio المدمجة كلوح "Sources" قابل للطي. أرقام الصفحات موثوقة في ملفات PDF، وغائبة في MD وTXT. الأفضل للاستهلاك البرمجي. - Open WebUI — اسم الملف فقط، معروض كحاشية سفلية صغيرة "Sources:". بدون أرقام صفحات، وبدون معاينات للأجزاء، وبدون نقر للوصول للمصدر. مقبول للمحادثة غير الرسمية، غير كافٍ للكتابة الأكاديمية أو القانونية.
- في 10 استعلامات دقة الاستشهادات (استرجاع الاقتباس الحرفي)، أصابت AnythingLLM 9/10، وأصابت PrivateGPT 8/10، وأصابت Open WebUI 8/10 — لكن إخفاقات Open WebUI أصعب في الاكتشاف لأن الاستشهاد لا يتضمن نص الجزء.
مرونة نموذج التضمين
نموذج التضمين الافتراضي نادرًا ما يكون الأفضل لمجموعة نصوصك المحددة. للنص القانوني والكود والمحتوى متعدد اللغات كل منها نموذج تضمين مفضَّل. المنصة التي تُتيح التبديل بسهولة تفوز لأي فريق يريد ضبط جودة الاسترجاع.
- AnythingLLM — 8 واجهات خلفية في الواجهة الرسومية، تبديل بنقرة. تُعيد Re-embed-all بناء فهرس LanceDB. الأبسط بين الثلاثة للمستخدمين غير التقنيين لإجراء اختبارات A/B لنماذج التضمين.
- PrivateGPT — أي نموذج HuggingFace sentence-transformers عبر
settings.yaml. تنوع حقيقي أكبر (جميع نماذجBAAI/bge-*المنشورة تعمل، بما فيهاbge-m3للغات المتعددة)، لكن يجب تعديل ملف YAML وإعادة تشغيل الخدمة. - Open WebUI — نماذج تضمين مُقدَّمة من Ollama + SentenceTransformers + نقاط نهاية متوافقة مع OpenAI. مفتاح تبديل في الإعدادات؛ يستلزم تنزيل نموذج التضمين في Ollama مسبقًا. تعمل إعادة الفهرسة في الخلفية.
- اختُبر على مجموعة نصوص 5.047 صفحة: حسّن تبديل نموذج التضمين الافتراضي بـ
BAAI/bge-m3معدل الاستدعاء الإجمالي بـ4–7 نقاط مئوية عبر المنصات الثلاث، لكنه ثلّث وقت الفهرسة وأضاف ~1 GB من ذاكرة GPU أثناء العملية. - لمجموعات النصوص متعددة اللغات (ألمانية، وفرنسية، ويابانية، وصينية مختلطة)،
bge-m3هو الاختيار الذي يتفوق على الافتراضي عبر المنصات الثلاث — لكن خط أنابيب PrivateGPT فقط يدعمه بشكل أصلي دون المرور بـOllama.
حد قابلية التوسع: أين تفشل العروض
تعمل المنصات الثلاث بشكل جيد دون 1.000 صفحة وتبدأ في الإخفاق في نقطة ما بين 8.000 و12.000 صفحة على أجهزة المستهلكين. الحد ليس في وقت الفهرسة — بل في استدعاء الاسترجاع وضغط الذاكرة.
- تفشل Open WebUI أولًا، حول 8.000 صفحة — يبدأ الاسترجاع الكثيف أحادي المرحلة بدون إعادة ترتيب في إعادة أجزاء غير صحيحة، وتُصفِّح الإعداد الافتراضي لـChromaDB كثيرًا تحت ضغط الذاكرة. يرتفع معدل الهلوسة من 14% (5K صفحة) إلى ~22% (10K صفحة) دون تغييرات أخرى.
- تفشل AnythingLLM حول 10.000 صفحة — تتباطأ عمليات مسح LanceDB فوق ~120k جزء وتصبح مرحلة إعادة الترتيب عنق الزجاجة. ينتقل زمن p95 من 880 مللي ثانية إلى ~1.6 ثانية. يرتفع معدل الهلوسة من 6% إلى ~10%.
- تفشل PrivateGPT حول 12.000 صفحة — يتعامل Qdrant في الوضع المحلي جيدًا مع حجم الأجزاء، لكن الإعداد الافتراضي لخدمة FastAPI (عمال uvicorn، وحجم دفعة التضمين) يحتاج ضبطًا. مع الإعداد الصحيح، تتوسع PrivateGPT حتى ~25.000 صفحة على جهاز بـ32 GB RAM قبل التدهور الملحوظ.
- فوق ~25.000 صفحة، لا أيٌّ منها الأداة المناسبة. انتقل إلى مكدّس مخصص مع Ollama + Qdrant أو Weaviate مع بحث هجين صريح (BM25 + كثيف) ومُعيد ترتيب مخصص. لم تُصمَّم مخازن المتجهات المدمجة في هذه المنصات الثلاث لهذا الحجم.
- أعراض الحد: يتجاوز زمن p95 للاسترجاع ثانيتين، ويرتفع معدل الهلوسة دون تغييرات في الكود، ونشاط swap للنظام أثناء الاستعلامات، وردود "لم توجد أجزاء ذات صلة" على استعلامات كانت تعمل أمس.
💡Tip: إن كنت تبني قاعدة معرفة شخصية أو مكتبة فريق قد تنمو إلى ما يتجاوز 10.000 صفحة، ابدأ بـPrivateGPT (أعلى سقف قابلية توسع بين الثلاثة) أو انتقل مباشرةً إلى مكدّس مخصص من اليوم الأول. تكلفة الترحيل حقيقية — تُقاس بأيام لا بساعات.
شجرة القرار: أيها يجب أن تختار؟
خمسة أسئلة ثنائية بالترتيب تُوصِّل معظم القراء إلى الاختيار الصحيح.
- 1. هل سيستخدم هذا النشر أكثر من شخص؟ → نعم: انتقل إلى السؤال 3. لا: تابع.
- 2. هل تحتاج ردودًا مع استشهادات (اسم الملف + الصفحة)؟ → نعم: AnythingLLM. لا: تابع.
- 3. هل ستستدعيه من واجهة خلفية أو أداة أتمتة؟ → نعم: PrivateGPT. لا: تابع.
- 4. هل أنت في قطاع خاضع للتنظيم في الاتحاد الأوروبي أو سياق تدقيق؟ → نعم: PrivateGPT. لا: تابع.
- 5. هل تشغّل Ollama بالفعل وتريد واجهة محادثة متعددة المستخدمين؟ → نعم: Open WebUI. لا: AnythingLLM (الخيار الافتراضي).
- إن لم تكن متأكدًا: ابدأ بـAnythingLLM. هي الأسهل في التثبيت بين الثلاثة، وذات أدنى معدل هلوسة، وتُنشئ استشهادات يمكنك لصقها في أعمال أخرى. انتقل لاحقًا إن تجاوزتها.
الأخطاء الشائعة عند اختيار منصة RAG محلية
- الخطأ 1: اختيار المنصة قبل نموذج التضمين. يُهيمن نموذج التضمين على جودة الاسترجاع أكثر من أي قرار آخر. قرّر أولًا ما إذا كنت تحتاج دعمًا متعدد اللغات (
bge-m3)، أو للكود (bge-code-v1)، أو متعدد الأغراض (nomic-embed-text v1.5)؛ ثم اختر المنصة التي تدعمه بشكل أصلي. - الخطأ 2: إجراء معايير الأداء بمجموعة نصوص صغيرة جدًا. تعمل المنصات الثلاث بشكل جيد مع أقل من 1.000 صفحة. أجرِ معايير الأداء بـ5.000 صفحة على الأقل من محتواك الفعلي — تتغير الترتيبات.
- الخطأ 3: تجاهل تكلفة إعادة الفهرسة. تبديل نماذج التضمين ليس مجانيًا. إن أردت إجراء اختبارات A/B لنماذج التضمين كل شهر، فتلك بين 30 و90 دقيقة فهرسة لكل تغيير على أجهزة المستهلكين.
- الخطأ 4: تخطي تحسين نموذج المحادثة. جودة RAG ضرورية لكنها غير كافية. خط أنابيب RAG ممتاز يُغذّي نموذج محادثة صغير يُنتج هلوسات في الاستعلامات متعددة الخطوات؛ نفس خط الأنابيب مع Qwen3 14B يُقلِّل أخطاء متعددة الخطوات بـ~10 نقاط مئوية.
- الخطأ 5: الوثوق بإجابة دون التحقق من الاستشهاد. حتى AnythingLLM بمعدل هلوسة 6% تُخطئ في ~3 من كل 50 إجابة. لأي موضوع له عواقب (قانوني أو طبي أو مالي)، افتح الجزء المُستشهد به وتحقق أن الإجابة مدعومة فعليًا.
الأسئلة الشائعة
أيّ منصة RAG تتعامل مع أكبر مجموعات الوثائق؟
تتوسع PrivateGPT أبعد على أجهزة المستهلكين — بشكل مريح حتى ~25.000 صفحة مع ضبط الإعداد (عمال uvicorn، وحجم دفعة التضمين، وذاكرة Qdrant المؤقتة) على جهاز بـ32 GB RAM. تفشل AnythingLLM حول 10.000 صفحة، وتفشل Open WebUI حول 8.000. فوق 25.000 صفحة، لا أيٌّ منها الأداة المناسبة — انتقل إلى مكدّس مخصص مع Ollama + Qdrant أو Weaviate.
هل يمكنني ترحيل الوثائق والتضمينات بين هذه المنصات؟
وثائق المصدر تنتقل بحرية — الثلاثة يقبلون نفس الملفات. التضمينات لا تُرحَّل. كل منصة تُخزِّن المتجهات بتنسيقها الخاص (LanceDB وQdrant وChromaDB) مع بيانات وصفية خاصة بالمنصة، لذا فالتبديل يستلزم دائمًا إعادة الفهرسة. احسب بين 30 و90 دقيقة لكل 5.000 صفحة على أجهزة المستهلكين.
أيّ منصة لديها أفضل دقة استشهادات؟
AnythingLLM. في 50 استعلامًا مُقيَّمًا، استشهدت بشكل صحيح باسم الملف + الصفحة في 9 من كل 10 مرات في استعلامات الاقتباس الحرفي، مقارنةً بـ8/10 لـPrivateGPT و8/10 لـOpen WebUI. AnythingLLM هي أيضًا الوحيدة التي تعرض نص الجزء الحرفي في لوح النقر للوصول للمصدر، مما يجعل التحقق من الاستشهادات سريعًا.
كم ذاكرة GPU تحتاج كل منصة أثناء الفهرسة؟
على مجموعة نصوص 5.047 صفحة بنماذج التضمين الافتراضية: بلغت AnythingLLM ذروة 6.2 GB، وOpen WebUI 5.4 GB، وPrivateGPT 4.8 GB. تبديل نموذج أكبر (BAAI/bge-m3، 1.024 بُعدًا) يُضيف ~1 GB. إن كان نموذج المحادثة محمَّلًا في VRAM، احسب أن نموذج التضمين سيتنافس معه — بطاقة بـ12 GB لا تستطيع الفهرسة بينما Llama 3.3 70B مقيم.
هل يمكنني استخدام نموذج التضمين الخاص بي؟
AnythingLLM تدعم 8 واجهات خلفية للتضمين في الواجهة الرسومية (Native وOllama وLM Studio وOpenAI وAzure وCohere وVoyage وLocalAI). PrivateGPT تدعم أي نموذج HuggingFace sentence-transformers عبر settings.yaml. Open WebUI تدعم نماذج التضمين المُقدَّمة من Ollama وSentenceTransformers ونقاط نهاية متوافقة مع OpenAI. PrivateGPT لديها أكبر تنوع *حقيقي* في الاختيار؛ AnythingLLM لديها تجربة تبديل أبسط.
أيّ منصة تتعامل بشكل أفضل مع الوثائق متعددة اللغات؟
PrivateGPT مقرونةً بـBAAI/bge-m3 (نموذج تضمين متعدد اللغات بـ1.024 بُعدًا). يدعم bge-m3 أكثر من 100 لغة دون تهيئة إضافية ويتفوق على نماذج التضمين الإنجليزية فقط بـ8–15 نقطة مئوية في الاستعلامات باللغات المختلطة. يمكن لـAnythingLLM وOpen WebUI أيضًا استخدام bge-m3 عبر Ollama، لكن PrivateGPT تدعمه بشكل أصلي دون الانعطاف عبر Ollama.
كيف تتعامل مع الجداول والأشكال في ملفات PDF؟
الثلاثة تستخرج النص عبر محلِّلات PDF (pypdfium2 لـAnythingLLM وOpen WebUI، وأسلوب pdfplumber لـPrivateGPT). تُستخرج الجداول كنص مع الحفاظ على هيكل الصفوف/الأعمدة بشكل غير مثالي — مقبول للجداول البسيطة، ومع فقدان بيانات للتخطيطات المعقدة. تُستخرج الأشكال كمراجع صور في البيانات الوصفية لكنها لا تُستخدم للاسترجاع. لملفات PDF الغنية بالأشكال، ضع في اعتبارك استخراج الجداول أولًا إلى CSV بأداة مثل Tabula أو Camelot.
أيّ منصة أسهل للنشر على خادم؟
Open WebUI — Docker compose مع Ollama إعداد مدته 12 دقيقة يتضمن OAuth ووصولًا مبنيًا على الأدوار ومجموعات لكل مستخدم. PrivateGPT متوافقة مع الخوادم لكنها تستلزم خبرة Python + Poetry. AnythingLLM لديها صورة Docker لكن معظم المستخدمين يشغّلون تطبيق سطح المكتب فعليًا؛ إصدار متعدد المستخدمين للخادم يتأخر عن إصدار سطح المكتب في تعادل الميزات.
هل يمكن استخدامها في منتجات تجارية؟
AnythingLLM مرخّصة بـMIT (الاستخدام التجاري مسموح؛ الإصدار الرسمي يتضمن قياسًا عن بُعد مغلق المصدر يمكنك تعطيله أو إزالته بالبناء من المصدر). PrivateGPT بترخيص Apache 2.0 (الاستخدام التجاري مسموح، بدون قياس عن بُعد). Open WebUI بترخيص BSD-3 (الاستخدام التجاري مسموح). تحقق دائمًا من الترخيص عند وقت التكامل — تراخيص المصدر المفتوح قد تتغير.
أيّها التطوير الأكثر نشاطًا؟
Open WebUI تنشر كل 1–2 أسبوع وأحيانًا تُعيد كتابة برمجيات RAG الوسيطة — الإيقاع الأسرع لكن مع أكبر دوران في التحديثات. PrivateGPT تُحدِّث LlamaIndex تقريبًا كل شهر، مع تغييرات تكسر التوافق بشكل دوري. AnythingLLM تنشر كل 2–3 أسابيع وهي الأكثر استقرارًا بين الإصدارات. للنشر الإنتاجي طويل الأمد، إيقاع نشر AnythingLLM هو الأكثر قابلية للتنبؤ.