النقاط الرئيسية
- الحزمة: يشغّل Ollama نموذج LLM، ويدير AnythingLLM الواجهة + مخزن المتجهات، ويجيب Llama 3.3 8B Q4_K_M، ويسترجع nomic-embed-text-v1.5.
- الوقت: 30 دقيقة إجمالًا. أطول خطوة هي تنزيل النموذج (~8 دقائق عند 50 ميغابت/ث).
- الأجهزة: 16 غيغابايت ذاكرة هي الحد الأدنى العملي. وبذاكرة 8 غيغابايت يعمل فقط Phi-4 Mini ومجموعات مستندات صغيرة؛ راجع قسم النماذج البديلة.
- الخصوصية: بمجرد التثبيت، لا يغادر أي شيء جهازك. تبقى ملفات PDF والتضمينات والمطالبات والردود محلية.
- دون كود: صفر Python، وصفر طرفية عدا أمري Ollama. وAnythingLLM تطبيق سطح مكتب باستيراد المستندات بالسحب والإفلات.
- المُضمِّن الافتراضي غير مناسب: يتضمن AnythingLLM مُضمِّنًا مدمجًا صغيرًا جدًا. بدّله إلى nomic-embed-text-v1.5 في الخطوة 4؛ تتحسن جودة الاسترجاع بشكل ملحوظ.
- حجم المقطع الافتراضي غير مناسب لملفات PDF أيضًا: مقاطع من 1000 رمز بتداخل 200 رمز نقطة بداية أفضل من الافتراضي 512/0. يُضبط في الخطوة 7.
ما الذي ستبنيه
نظام RAG سطح مكتب مكتفٍ ذاتيًا: نافذة محادثة تسحب إليها ملفات PDF وتطرح أسئلة عنها. أربع قطع مفتوحة المصدر، كلها مجانية وكلها تعمل على حاسوبك المحمول:
📍 في جملة واحدة
نظام RAG المحلي أربع قطع — بيئة تشغيل (Ollama)، ونموذج إجابة (Llama 3.3 8B)، وواجهة مع مخزن متجهات (AnythingLLM)، ونموذج تضمين (nomic-embed-text-v1.5) — مترابطة على جهاز واحد دون أي مكالمات سحابية.
💬 بعبارات بسيطة
اسحب ملف PDF، واطرح سؤالًا، واحصل على إجابة مؤسَّسة باستشهادات، دون اتصال بالكامل. تتقاسم القطع الأربع العمل: يشغّل Ollama النماذج، ويصوغ Llama 3.3 8B الإجابة، ويدير AnythingLLM المقاطع والمتجهات، ويحوّل nomic-embed-text-v1.5 النص إلى المتجهات التي تجعل الاسترجاع ممكنًا. إجمالي التثبيت: ~30 دقيقة؛ التكلفة الإجمالية: 0 دولار.
- Ollama — بيئة تشغيل LLM محلية. تدير ملفات النموذج وتعرض واجهة برمجة تطبيقات متوافقة مع OpenAI على localhost:11434. وتوفّر نموذج الإجابة.
- Llama 3.3 8B Instruct (Q4_K_M) — نموذج محادثة بثمانية مليارات معامل من Meta، مُكمَّم ليتسع في ~5 غيغابايت ذاكرة. جودة إجابة جيدة في الأسئلة المستندة إلى المستندات في 2026.
- AnythingLLM Desktop — واجهة + مخزن متجهات + تنسيق RAG. يتضمن LanceDB مدمجًا، ويحلّل ملفات PDF/DOCX/TXT/MD أصليًا، ويتواصل مع Ollama كمزود LLM.
- nomic-embed-text-v1.5 — نموذج تضمين. متجهات بـ 768 بُعدًا، يعمل عبر Ollama بسرعة ~600 مقطع/ث على معالج حديث. يحل محل المُضمِّن الافتراضي لـ AnythingLLM غير الكافي.
📌Note: يملك AnythingLLM أيضًا نموذج LLM افتراضيًا مدمجًا ومُضمِّنًا افتراضيًا مدمجًا. وكلاهما صغير عمدًا كي يبدأ التطبيق بسرعة على أجهزة منخفضة الأداء. نستبدلهما في الخطوتين 4 و6 لأن جودة الاسترجاع هي كل شيء في نظام RAG.
ما تحتاجه قبل البدء
حاسوب محمول بذاكرة 16 غيغابايت، و20 غيغابايت قرص حر، واتصال بالإنترنت، و30 دقيقة. ونظام التشغيل قد يكون macOS 12+ أو Windows 10/11 أو أي سطح مكتب Linux حديث.
- الذاكرة: 16 غيغابايت هي الحد الأدنى العملي لـ Llama 3.3 8B Q4 + AnythingLLM + تطبيقات سطح مكتبك المعتادة. وبذاكرة 8 غيغابايت يعمل Phi-4 Mini Q4 بدلًا منه؛ راجع بدائل الخطوة 2.
- القرص: 20 غيغابايت حرة. يشغل Llama 3.3 8B Q4_K_M ~5 غيغابايت، ونموذج التضمين ~280 ميغابايت، وAnythingLLM ~600 ميغابايت، وتحتاج مساحة للتضمينات (~10–30 ميغابايت لكل 100 صفحة PDF).
- الشبكة: ~50 ميغابت/ث كحد أدنى لتنزيل النموذج. وعند 25 ميغابت/ث تستغرق الخطوة نفسها ~16 دقيقة؛ ولا يتأثر باقي الدليل.
- الأذونات: لا يحتاج AnythingLLM إلى صلاحيات مسؤول/جذر. ويُثبَّت Ollama في
/usr/local/binعلى macOS/Linux (يطلب كلمة المرور مرة) أو%LOCALAPPDATA%على Windows (دون مسؤول). - مستندات جاهزة: 5–20 ملف PDF للبدء. والكميات الأكبر تعمل أيضًا، لكن مجموعة صغيرة تتيح اختبار جودة الاسترجاع أسرع.
الخطوة 1: تثبيت Ollama (3 دقائق)
**نزّل مُثبِّت Ollama لنظام تشغيلك من ollama.com/download وشغّله. يضيف المُثبِّت واجهة الأوامر ollama إلى مسار PATH ويبدأ خدمة في الخلفية.** لا توجد خيارات إعداد لاختيارها.
- macOS: نزّل ملف
.dmg، واسحب Ollama إلى التطبيقات، وافتحه مرة لتثبيت مُساعد واجهة الأوامر. تظهر أيقونة اللاما في شريط القوائم عند تشغيل الخدمة. - Windows: نزّل ملف
.exe، وشغّله واقبل القيم الافتراضية. يعمل Ollama كخدمة في الخلفية بعد التثبيت؛ ولا يلزم تشغيل إضافي. - Linux: تثبيت بسطر واحد:
curl -fsSL https://ollama.com/install.sh | sh. يسجّل السكربت وحدة systemd؛ ابدأها بـsudo systemctl start ollama. - التحقق: افتح طرفية ونفّذ
ollama --version. يجب أن ترى سلسلة إصدار. وإذا لم يُعثَر على الأمر، فأعد تشغيل الطرفية كي تحمّل مسار PATH المحدَّث.
ollama --version
# ollama version is 0.5.x (any 0.5+ build works for this tutorial)⚠️Warning: إذا عمل ollama --version لكن فشلت الخطوات اللاحقة برسالة "رُفض الاتصال على localhost:11434"، فإن خدمة الخلفية لم تبدأ تلقائيًا. macOS: افتح التطبيق من التطبيقات. Linux: sudo systemctl start ollama. Windows: افتح أيقونة Ollama في علبة النظام.
الخطوة 2: تنزيل Llama 3.3 8B (8 دقائق)
**نفّذ ollama pull llama3.3:8b-instruct-q4_K_M في طرفية. يُنزِّل هذا ملف GGUF المُكمَّم بحجم 4.9 غيغابايت ويسجّله في Ollama.** معظم الثلاثين دقيقة الإجمالية لهذه الخطوة الوحيدة على اتصال منزلي معتاد.
- حجم التنزيل: ~4.9 غيغابايت (تكميم Q4_K_M). عند 50 ميغابت/ث تنتظر نحو 8 دقائق؛ وعند 100 ميغابت/ث نحو 4 دقائق؛ وعند 25 ميغابت/ث نحو 16 دقيقة.
- عرض التقدّم: يطبع Ollama نسبة مئوية والسرعة. ويُستأنف التنزيل إذا انقطع؛ نفّذ الأمر نفسه مجددًا.
- اختبار سريع للنموذج: بعد اكتمال التنزيل، نفّذ
ollama run llama3.3:8b-instruct-q4_K_Mواسأل "كم يساوي 2+2؟". تأكّد من أنك تحصل على إجابة معقولة. اكتب/byeللخروج. - بديل بذاكرة أقل: إذا كان لديك 8 غيغابايت ذاكرة بدل 16، فنفّذ
ollama pull phi3:mini(Phi-4 Mini، ~2.4 غيغابايت على القرص). استخدم اسم النموذج هذا في الخطوة 3. الجودة أقل في المستندات الطويلة، لكن النظام يعمل.
# موصى به لذاكرة 16 غيغابايت
ollama pull llama3.3:8b-instruct-q4_K_M
# بديل لذاكرة 8 غيغابايت
ollama pull phi3:mini
# اختبار سريع (اكتب /bye للخروج)
ollama run llama3.3:8b-instruct-q4_K_M💡Tip: هل لديك نماذج Ollama أخرى بالفعل؟ يعرضها ollama list جميعًا. يمكنك إبقاء عدة نماذج مثبّتة والتبديل بينها في إعدادات مساحة عمل AnythingLLM.
الخطوة 3: تثبيت AnythingLLM Desktop (4 دقائق)
نزّل AnythingLLM Desktop من useanything.com (أو anythingllm.com) وشغّل المُثبِّت. افتح التطبيق وتجاوز إشعار "إنشاء حساب سحابي"؛ ويُعرَض الوضع المحلي فقط في الشاشة التالية. التثبيت غير تفاعلي.
- macOS: نزّل ملف
.dmg، واسحب AnythingLLM إلى التطبيقات وافتحه. قد يطلب macOS تأكيد أن التطبيق من مطوّر معروف؛ انقر "فتح" في إعدادات النظام ← الخصوصية إذا طُلب. - Windows: نزّل مُثبِّت
.exe. قد يشير Windows SmartScreen إلى أنه ليس تنزيلًا معتادًا؛ انقر "مزيد من المعلومات" ← "تشغيل على أي حال". يُثبَّت التطبيق في%LOCALAPPDATA%\anythingllm-desktop(دون مسؤول). - Linux: نزّل ملف
.AppImage، وحدّده كقابل للتنفيذ (chmod +x AnythingLLMDesktop.AppImage) وانقر نقرًا مزدوجًا لتشغيله. - الاختيار في أول تشغيل: يعرض AnythingLLM مساحة عمل سحابية مُستضافة أو إعدادًا محليًا فقط. اختر الإعداد المحلي. هذا هو الخيار الذي يُبقي النظام كله دون اتصال.
- إنشاء مساحة العمل: عند الطلب، امنح أول مساحة عمل اسمًا وصفيًا ("مقالات-بحثية"، "عقود"، "ملاحظات-شخصية"). لكل مساحة عمل مجموعتها الخاصة من المستندات ومخزن تضمينات.
⚠️Warning: نموذج LLM الافتراضي في AnythingLLM نموذج مدمج صغير جدًا مخصص لعرض الترحيب فقط. في الخطوة التالية سنوجّهه إلى Ollama المحلي لديك. لا تستخدم الافتراضي للاستعلامات الحقيقية؛ ستكون الردود أضعف من أن تكون مفيدة.
الخطوة 4: ربط AnythingLLM بـ Ollama وتبديل المُضمِّن (3 دقائق)
**افتح إعدادات AnythingLLM ← تفضيل LLM. اختر "Ollama" كمزود، واضبط الرابط على http://127.0.0.1:11434، واختر llama3.3:8b-instruct-q4_K_M من قائمة النماذج. احفظ. ثم انتقل إلى تفضيل التضمين وبدّل من الافتراضي إلى nomic-embed-text عبر Ollama.**
- لوحة تفضيل LLM: المزود = Ollama، ونقطة النهاية =
http://127.0.0.1:11434، والنموذج =llama3.3:8b-instruct-q4_K_M. انقر "حفظ التغييرات". وتؤكّد علامة خضراء الاتصال. - لوحة تفضيل التضمين: الافتراضي هو "AnythingLLM Native Embedder"، مُضمِّن مدمج صغير جدًا. بدّل المزود إلى Ollama، ثم نفّذ
ollama pull nomic-embed-textفي طرفيتك أولًا (~280 ميغابايت)، وحدّث قائمة النماذج في اللوحة واخترnomic-embed-text:latest. احفظ. - إشعار إعادة التضمين: إذا كنت قد أضفت مستندات بالمُضمِّن السابق، فسيطلب AnythingLLM إعادة معالجتها. وفي التثبيت الجديد لا توجد مستندات، فلا يظهر الإشعار.
- قاعدة بيانات المتجهات: اتركها على القيمة الافتراضية (LanceDB). إنها محلية، ومدعومة بالملفات، ولا تحتاج إعدادًا. بدّلها فقط إذا احتجت تحديدًا إلى PGVector أو Qdrant.
# نفّذ هذا في طرفيتك قبل فتح لوحة تفضيل التضمين
ollama pull nomic-embed-text💡Tip: لماذا nomic-embed-text-v1.5 تحديدًا؟ في مايو 2026 هو ضمن أفضل 5 في تصنيف MTEB Retrieval لأي نموذج أقل من 500 ميغابايت، ويعمل بسرعة 400–800 مقطع/ث على معالج حديث وأكثر من 2000 مقطع/ث على Apple Silicon، وبترخيص Apache 2.0. وهو أول ترقية قياسية لكل حِزم RAG المحلية تقريبًا؛ راجع مقارنة نماذج التضمين للاطلاع على البدائل.
الخطوة 5: رفع أول ملفات PDF (5 دقائق)
افتح مساحة عملك، وانقر "رفع المستندات" واسحب من 5 إلى 20 ملف PDF. يستخرج AnythingLLM النص، ويقسّمه إلى مقاطع (افتراضيًا 512 رمزًا، و0 تداخل)، ويعالج كل مقطع بـ Ollama ويخزّن المتجهات في LanceDB. يعرض شريط تقدّم الصفحات المُحلَّلة والمقاطع المُعالَجة.
- الصيغ المدعومة: PDF (نصي)، وDOCX، وTXT، وMD، وEPUB، إضافة إلى كشط الروابط. وملفات PDF المصوَّرة الممسوحة ضوئيًا تحتاج تعرّفًا ضوئيًا (OCR) أولًا؛ راجع قسم حل المشكلات.
- السرعة: 400–800 مقطع/ث على معالج حديث وأكثر من 2000 مقطع/ث على Apple Silicon بمجرد إحماء Ollama. مجموعة من 20 ملف PDF بـ ~50 صفحة لكل منها (~3000 مقطع إجمالًا) ينتهي تضمينها في 5–8 ثوانٍ على معالج حديث وفي 1–2 ثانية على Apple Silicon، إضافة إلى زمن التحليل. احسب ~5 دقائق إجمالًا لرفع 20 ملف PDF وتحليلها ومعالجتها.
- الذاكرة أثناء التضمين: يحمّل Ollama نموذج التضمين (~280 ميغابايت) عند أول طلب ويحفظه مؤقتًا. وتعيد التضمينات اللاحقة استخدام الذاكرة المؤقتة.
- "النقل إلى مساحة العمل": بعد الرفع، يضع AnythingLLM المستندات في تجمّع "قيد الانتظار". يجب أن تنقر صراحةً "النقل إلى مساحة العمل" ← "حفظ ومعالجة" كي تصبح قابلة للاستعلام. وهذا التدفق ذو الخطوتين مقصود: يتيح المعاينة قبل تحمّل تكلفة التضمين.
⚠️Warning: كثيرًا ما تحتوي ملفات PDF من عمليات مسح OCR قديمة على نص تالف أو طبقات نص فارغة؛ يبدو الملف سليمًا للعين البشرية، لكن AnythingLLM يستخرج "[image]" أو سلاسل فارغة. افتح ملف PDF في محرّر نصوص (أو نفّذ pdftotext file.pdf - من poppler-utils) للتأكد من وجود طبقة النص قبل رفعه.
الخطوة 6: اختبار الاستعلامات (5 دقائق)
اكتب سؤالًا في محادثة مساحة العمل. يحوّل AnythingLLM السؤال إلى متجه، ويسترجع أعلى N مقطعًا من LanceDB، ويبني مطالبة بهذه المقاطع كسياق، ويرسلها إلى Ollama ويعرض الإجابة. زمن الاستجابة على حاسوب محمول بذاكرة 16 غيغابايت نحو 3–10 ثوانٍ لكل استعلام.
- ابدأ باستعلام استرجاع حقائق: "ماذا يعني [مصطلح محدد من أحد ملفات PDF لديك]؟" يختبر هذا تأسيس الاسترجاع. يجب أن تستشهد الإجابة بملف PDF وتعيد الصياغة بدقة.
- ثم استعلام تركيب: "لخّص الحجة الرئيسية لـ [المؤلف/عنوان المستند]." يختبر هذا مدى جودة دمج النموذج لعدة مقاطع.
- ثم استعلام مقارنة (فقط إذا احتوت ملفات PDF لديك على محتوى قابل للمقارنة): "قارن كيف يعالج [المستند أ] و[المستند ب] [الموضوع]." يختبر هذا الاسترجاع بين المستندات.
- افحص الاستشهادات: يعرض AnythingLLM مقاطع المصدر أسفل كل إجابة. انقر عليها للتحقق من أن النموذج يستند إلى المقاطع الصحيحة. وإذا كانت الاستشهادات غير ذات صلة، فالاسترجاع معطّل؛ راجع الخطوة 7.
الخطوة 7: ضبط حجم المقاطع (دقيقتان)
افتح إعدادات مساحة العمل ← قاعدة بيانات المتجهات. غيّر حجم المقطع من 512 إلى 1000 والتداخل من 0 إلى 200. انقر حفظ ثم أعد معالجة مستنداتك (ستطلب الواجهة ذلك). هذا هو المعامل الرئيسي لتحسين جودة الاسترجاع في AnythingLLM.
- لماذا 1000/200 بدل 512/0: نادرًا ما تتسع فقرات وأقسام ملفات PDF بنظافة في 512 رمزًا. التداخل بـ 200 رمز يعني أن جملة تعبر حدّ مقطع تظهر كاملةً في مقطع مجاور واحد على الأقل، فيلتقطها الاسترجاع.
- تكلفة إعادة التضمين: تُعاد معالجة مجموعة 20 ملف PDF / 3000 مقطع في ~5 ثوانٍ. والمجموعات الأكبر تستغرق وقتًا أطول بالتناسب. ويُكتب فوق مخزن المقاطع، ولا يُضاف إلى الموجود.
- استرجاع Top-K: القيمة الافتراضية لـ Top-K هي 4 (تصبح أفضل 4 مقاطع مطابقةً سياقًا). ارفعها إلى 6–8 إذا بدت إجاباتك ضعيفة التأسيس؛ واخفضها إلى 2–3 إذا تشتّت النموذج بمقاطع مشوّشة.
- قالب المطالبة: يعرض AnythingLLM مطالبة النظام في مساحة العمل ← إعدادات المحادثة ← المطالبة. الافتراضي مناسب؛ اضبطه فقط إذا كان لديك خلل محدد لحلّه.
💡Tip: الضبط التجريبي يتفوق على النظرية: اطرح الاستعلامات الخمسة الاختبارية نفسها قبل تغيير حجم المقطع وبعده وقارن. وإذا كان الاسترجاع عند 1000/200 أسوأ، فلديك على الأرجح مستندات قصيرة جدًا (مذكرات من صفحة، أو سلاسل توثيق كود): جرّب 256/64 بدلًا منها.
كيف يجب أن تبدو الإجابات فعلًا؟
نظام RAG محلي مضبوط بشكل صحيح يجيب استعلامات استرجاع الحقائق باستشهادات حرفية من المصدر، ويركّب عند الطلب، ويستشهد بالمقاطع التي استخدمها. ثلاثة استعلامات نموذجية في مساحة عمل مقالات بحثية، مع ما يعيده نظام سليم:
📍 في جملة واحدة
إجابة RAG محلية سليمة تستشهد بمقطع المصدر حرفيًا لاسترجاع الحقائق، وتركّب بين المقاطع لأسئلة التلخيص، وتستشهد بمعرّفات المقاطع المحددة التي استخدمتها؛ والإجابات العامة دون استشهادات تشير إلى مشكلة استرجاع، لا مشكلة نموذج.
💬 بعبارات بسيطة
إذا قالت الإجابة "يستخدم الباحثون عادةً 100–500 مشارك" بدل "استخدم Smith et al. 287 مشاركًا (المنهجية، ص 4)"، فالاسترجاع معطّل والنموذج يرتجل من بيانات تدريبه. أصلِح الاسترجاع أولًا (حجم المقطع، والمُضمِّن، وعتبة التشابه) قبل تبديل نموذج الإجابة.
| نوع الاستعلام | مثال | نمط الإجابة السليمة | نمط الفشل |
|---|---|---|---|
| استرجاع حقائق | ما حجم العينة الذي استخدمه Smith et al. 2024؟ | اقتباس مباشر من قسم المنهجية + إشارة إلى المقطع | إجابة عامة ("يستخدم الباحثون عادةً 100–500 مشارك") دون استشهاد |
| تركيب | لخّص المساهمة الرئيسية لهذا المقال. | 3–5 جمل مستخرجة من مقاطع الملخص والخاتمة | يكرّر العنوان أو يقتبس جملة واحدة من الملخص |
| بين المستندات | فيمَ يختلف Smith وJones حول تداخل المقاطع؟ | استشهادات من كلا المقالين بإسناد صريح | يستشهد بمقال واحد فقط أو يختلق تباينًا غير موجود في المقاطع |
💡Tip: استخدم أنماط الاستعلام الثلاثة هذه كمجموعة اختبارك بعد كل تغيير في إعداد الاسترجاع. إذا فشل استرجاع الحقائق ونجح التركيب، فمقاطعك كبيرة جدًا. وإذا فشل التركيب ونجح استرجاع الحقائق، فقيمة top-k لديك منخفضة جدًا. ونمط ما يفشل يخبرك بأي معامل تضبطه.
عندما يفشل شيء ما: ستة أوضاع فشل شائعة وحلولها
تندرج معظم حالات الفشل في إحدى هذه الفئات الست. حدّد العَرَض في الصف المقابل وطبّق الحل.
| العَرَض | السبب المحتمل | الحل |
|---|---|---|
| يعرض AnythingLLM "تعذّر الاتصال بـ Ollama" | خدمة Ollama غير عاملة أو نقطة النهاية خاطئة | نفّذ ollama serve (أو أعد تشغيل التطبيق/الخدمة). تأكّد من أن نقطة النهاية هي http://127.0.0.1:11434، لا localhost:11434 (على Windows يفشل الاسم المستعار أحيانًا). |
| يتوقف تنزيل النموذج عند 0% أو 99% | مشكلة في حافة شبكة التوصيل أو امتلاء القرص | ألغِ بـ Ctrl+C، ونفّذ df -h للتأكد من مساحة القرص، وأعد تنفيذ ollama pull نفسه؛ يستأنف Ollama من آخر بايت. |
| تبدو خطوة التضمين معلّقة | يحمّل Ollama نموذج التضمين لأول مرة | انتظر 30–60 ثانية. يستغرق تحميل النموذج لأول مرة بين 10 و40 ثانية حسب سرعة القرص. والتضمينات التالية سريعة. |
| يعيد الاسترجاع مقاطع غير متصلة بالاستعلام | تقطيع 512/0 الافتراضي + مُضمِّن افتراضي ضعيف | تأكّد من تطبيق الخطوة 4 (nomic-embed-text) والخطوة 7 (تقطيع 1000/200) معًا. أعد معالجة مساحة العمل. |
| الإجابات قصيرة أو عامة أو ترفض العمل مع المصدر | نموذج LLM المختار لا يزال الافتراضي الصغير أو السياق صغير جدًا | تأكّد من أن تفضيل LLM يعرض llama3.3:8b-instruct-q4_K_M. ارفع top-K من 4 إلى 6. |
| ملفات PDF المصوَّرة الممسوحة تُرفَع لكنها تنتج مقاطع فارغة | لا تحتوي ملفات PDF على طبقة نص؛ إنها صورة نقطية محضة | طبّق التعرّف الضوئي على ملف PDF أولًا. macOS: ocrmypdf input.pdf output.pdf. Linux/Windows: ثبّت Tesseract + ocrmypdf. ثم أعد رفع الملف المُعالَج بالتعرّف الضوئي. |
السياق الإقليمي: خصوصية البيانات في الخليج والشرق الأوسط
نظام RAG محلي كهذا يستجيب مباشرةً لمتطلبات الخصوصية والأمن الرئيسية في الخليج والشرق الأوسط. وعلى خلاف حلول RAG السحابية التي ترسل البيانات إلى مزودين خارجيين، يبقى كل شيء على جهازك.
- أنظمة حماية البيانات الإقليمية: في السعودية، يُلزم نظام حماية البيانات الشخصية (PDPL) بضبط نقل البيانات الشخصية إلى أطراف خارجية. ونظام RAG محلي لا يرسل البيانات قط خارج بنيتك التحتية يفي بهذا المطلب مباشرةً. وتتبع قوانين الإمارات (قانون حماية البيانات الشخصية الاتحادي) والبحرين وقطر مبادئ مماثلة: لا يجوز نقل البيانات الشخصية إلى خوادم خارجية دون ضمانات كافية.
- القطاعات الخاضعة للتنظيم في المنطقة: تستفيد مؤسسات المالية والصحة والقانون والقطاع العام في السعودية والإمارات وقطر والبحرين والكويت ومصر من RAG المحلي: صفر اعتماد على واجهات سحابية، وصفر تدفق بيانات عبر الحدود، وامتثال فوري للأنظمة المحلية.
- سيناريو نموذجي للشركات في المنطقة: أرشِف خمس سنوات من عقود العملاء، وفهرسها بـ AnythingLLM، ونفّذ عمليات العناية الواجبة واستعلامات بيانات العملاء محليًا بالكامل. تكلفة التشغيل: شبه معدومة. والإعداد الإنتاجي: 30 دقيقة على حاسوبك المحمول أو خادمك المحلي.
الأسئلة الشائعة
ماذا أفعل إذا لم يُثبَّت Ollama؟
على macOS، الفشل الأكثر شيوعًا هو حجب Gatekeeper لمُساعد غير موقّع؛ افتح إعدادات النظام ← الخصوصية والأمن وانقر "افتح على أي حال". وعلى Windows، قد يضع Defender SmartScreen المُثبِّت في الحجر الصحي؛ انقر بزر الفأرة الأيمن ← خصائص ← إلغاء الحظر. وعلى Linux، يحتاج سكربت التثبيت إلى sudo لكتابة وحدة systemd؛ وإذا لم يتوفر sudo، فنزّل الملف الثنائي الساكن من github.com/ollama/ollama/releases وضعه يدويًا في مسار PATH لديك.
لماذا خطوة التضمين بطيئة؟
أول تضمين في الجلسة بطيء لأن Ollama يحمّل نموذج التضمين بكسل إلى الذاكرة (بين 10 و40 ثانية حسب سرعة القرص). وبعدها يعمل التضمين بسرعة 400–800 مقطع/ث على معالج حديث وأكثر من 2000 مقطع/ث على Apple Silicon. وإذا كان الأداء المستدام أقل من 100 مقطع/ث، فالنموذج على الأرجح يستخدم الذاكرة الافتراضية للقرص؛ أغلِق تطبيقات أخرى لتحرير الذاكرة وحاول مجددًا.
كم ملف PDF يمكنني رفعه دفعة واحدة؟
يقبل AnythingLLM مئات الملفات في سحب وإفلات واحد. والحد العملي هو الذاكرة أثناء خطوة التحليل: ~1 غيغابايت عند الذروة لـ 100 ملف PDF متوسط الحجم (50 صفحة لكل منها). وبمجرد المعالجة، يكون مخزن المتجهات على القرص صغيرًا (~10–30 ميغابايت لكل 100 صفحة PDF). لـ 1000+ ملف PDF، راجع الدليل المخصص حول محادثة 1000 ملف PDF محليًا.
هل يمكنني استخدام هذا مع ملفات PDF المحمية بكلمة مرور؟
لا يستطيع AnythingLLM فك تشفير ملفات PDF المحمية بكلمة مرور مباشرةً. فكّ تشفيرها أولًا بـ qpdf --password=كلمة_مرورك --decrypt input.pdf output.pdf (qpdf مجاني، ومتاح على أنظمة التشغيل الثلاثة) ثم ارفع الملف غير المحمي. واحذف النسخة غير المحمية بعد التضمين إذا تطلّب نموذج تهديداتك ذلك؛ والتضمينات نفسها ليست قابلة للقراءة البشرية.
ماذا أفعل إذا أعاد الاسترجاع مقاطع خاطئة؟
ثلاثة معاملات بترتيب الأثر: بدّل من المُضمِّن الافتراضي إلى nomic-embed-text (الخطوة 4)، وغيّر التقطيع من 512/0 إلى 1000/200 وأعد المعالجة (الخطوة 7)، وارفع top-K من 4 إلى 6 في إعدادات مساحة العمل. وإذا استمر الاسترجاع في الفشل بعد الثلاثة، فقد تحتاج مستنداتك إلى معالجة مسبقة: أزِل الرؤوس والتذييلات، ووحّد المسافات البيضاء، أو قسّم ملفات PDF الطويلة جدًا إلى ملفات لكل فصل.
هل ينبغي أن أستخدم نموذجًا غير Llama 3.3 8B؟
Llama 3.3 8B Q4_K_M هو أفضل نسبة جودة-إلى-ذاكرة في 2026 للأنظمة بذاكرة 16 غيغابايت. وبذاكرة 8 غيغابايت استخدم Phi-4 Mini Q4_K_M (~2.4 غيغابايت). وبذاكرة 24 غيغابايت أو أكثر، جرّب Qwen 3 14B Q4 لتركيب أفضل ملحوظًا في المستندات الطويلة. ولأعباء العمل متعددة اللغات، يتعامل Mistral Nemo 12B مع المحتوى غير الإنجليزي أفضل من Llama 3.3.
كيف أحدّث النموذج لاحقًا؟
نفّذ ollama pull llama3.3:8b-instruct-q4_K_M مجددًا للحصول على أحدث إصدار وأعد تشغيل AnythingLLM كي يكتشف إصدار النموذج من جديد. وللتبديل إلى نموذج مختلف تمامًا، نفّذ ollama pull <النموذج-الجديد> ثم غيّر قائمة تفضيل LLM في إعدادات AnythingLLM. ولا حاجة لإعادة معالجة التضمينات لأنها تعتمد على المُضمِّن فقط، لا على نموذج الإجابة.
هل يمكنني نقله إلى جهاز آخر؟
نعم. توجد نماذج Ollama في ~/.ollama/models (macOS/Linux) أو %USERPROFILE%\.ollama\models (Windows)؛ انسخ المجلد. وتوجد مساحات عمل AnythingLLM في ~/.anythingllm/storage؛ انسخها أيضًا. وعلى الجهاز الجديد، ثبّت Ollama وAnythingLLM Desktop وضع المجلدات المنسوخة في مكانها. وتُستعاد مساحات العمل والتضمينات بشكل مطابق.
هل يعمل إذا كانت ملفات PDF لديّ صورًا ممسوحة ضوئيًا؟
لا مباشرةً: يستخرج AnythingLLM النص، لكنه لا يستطيع التعرّف الضوئي على الصور. عالِج ملفات PDF الممسوحة مسبقًا بـ ocrmypdf input.pdf output.pdf (متعدد المنصات، ترخيص MIT، يستخدم Tesseract). وعلى Apple Silicon، يدعم ocrmypdf -l ara+eng أكثر من 70 لغة. وبعد التعرّف الضوئي، يحتوي ملف PDF الناتج على الصور الأصلية وطبقة نص قابلة للبحث معًا، ويستخرج AnythingLLM النص بشكل صحيح.
كيف أنسخ قاعدة بيانات مستنداتي احتياطيًا؟
يخزّن AnythingLLM كل شيء في ~/.anythingllm/storage (macOS/Linux) أو %LOCALAPPDATA%\anythingllm-desktop\storage (Windows). اضغط هذا المجلد بـ tar/zip وانسخه إلى جهاز نسخ احتياطي. ويشمل المجلد المستندات الأصلية، والمقاطع المُحلَّلة، وفهارس المتجهات، وسجل المحادثة. والاستعادة هي نسخ عكسي وإعادة تشغيل؛ ولا يلزم أي تدفق استيراد خاص.