لماذا لا يمكن معالجة مستنداتك المهنية عبر السحابة
المادة 28 من اللائحة الأوروبية RGPD صريحة: يظل المتحكم في البيانات مسؤولاً حتى وإن تلقّاها معالج فرعي. المادة 50 من قانون الذكاء الاصطناعي الأوروبي، السارية منذ 2 أغسطس 2026، تضيف طبقة إضافية: يجب إعلان أنظمة الذكاء الاصطناعي التوليدي ذات الأغراض العامة أو إعفاؤها صراحةً.
المسار القانوني الفوري هو الحل المحلي. خادم VPS جذر يشغّل PrivateGPT يجيب على أسئلتك حول مستنداتك دون الاتصال بـ api.openai.com أو api.anthropic.com. هذه خاصية معمارية، وليست وعداً تعاقدياً.
ما تكسبه مع PrivateGPT على خادمك الخاص
- صفر بيانات صادرة: يعمل النموذج محلياً عبر
llama-cpp-python، لا نداءات شبكة لمزود ذكاء اصطناعي — قابل للتحقق بجدار الحماية أوtcpdump. - الامتثال للمادة 28 من RGPD: لا معالج فرعي إضافي، لا اتفاقية DPA للتفاوض عليها، لا نقل للبيانات خارج الاتحاد الأوروبي.
- إعفاء بموجب المادة 50 من قانون AI Act: نموذج لغوي مستضاف ذاتياً بدون وصول عام لا يخضع لالتزام الإعلان.
- صون السر المهني: تبقى العقود والإقرارات الضريبية والسجلات الطبية وملفات الموارد البشرية ضمن نطاقك القانوني.
- توليد مُعزَّز بالاسترجاع على مستنداتك: يفهرس PrivateGPT ملفاتك ويجيب مستشهداً بالمقاطع المصدرية.
- لا اشتراك متكرر: التكلفة هي تكلفة الخادم VPS؛ النموذج مفتوح المصدر.
- يعمل على المعالج المركزي فقط: لا GPU مطلوب — خادم VPS بـ 8 غيغابايت وقرص NVMe SSD كافٍ.
PrivateGPT مقابل Ollama: أداتان تؤدّيان وظيفتين مختلفتين
Ollama هو خادم نماذج لغوية عام: ينزّل النماذج ويكشف API متوافقة مع OpenAI. لكنه لا يقرأ ملفاتك.
PrivateGPT هو محرك RAG (التوليد المعزَّز بالاسترجاع): يفهرس مستنداتك في قاعدة متجهات محلية (ChromaDB)، ثم لكل سؤال يسترجع المقاطع ذات الصلة ويحقنها في سياق النموذج اللغوي. الإجابة تستشهد بمصادرها.
PrivateGPT مقابل Ollama — الفوارق الرئيسية
| المعيار | PrivateGPT | Ollama |
|---|---|---|
| حالة الاستخدام الرئيسية | أسئلة وأجوبة على مستنداتك (RAG) | خادم نماذج لغوية عام (API) |
| فهرسة الملفات | PDF وDOCX وTXT وCSV بشكل أصلي | لا — سياق يدوي |
| واجهة ويب | نعم (المنفذ 8080) | لا (API فقط) |
| قاعدة المتجهات | ChromaDB محلية | لا شيء |
| استشهاد بالمصادر | نعم — مقطع واسم الملف | لا |
| GPU مطلوب | لا — يعمل على المعالج المركزي | لا — يعمل على المعالج المركزي |
المتطلبات الأساسية: اختيار الخادم المناسب قبل البدء
متطلبات الذاكرة يفرضها النموذج:
- Mistral-7B-Instruct Q4_K_M: 8 غيغابايت من الذاكرة العشوائية كحد أدنى.
- نموذج 13B: 16 غيغابايت من الذاكرة العشوائية كحد أدنى.
NVMe SSD موصى به: فهرسة ملف PDF من 50 صفحة تستغرق ثوانٍ على NVMe لكن دقائق على HDD.
قائمة التحقق قبل التثبيت
- خادم VPS بـ 8 غيغابايت من الذاكرة العشوائية كحد أدنى (16 غيغابايت لنموذج 13B).
- Debian 12 أو Ubuntu 22.04/24.04.
- تثبيت Docker وDocker Compose (
docker compose versionيجب أن يُرجع v2.x). - NVMe SSD لوحدة تخزين البيانات.
- وصول SSH بصلاحيات root أو sudo.
- المنفذ 8080 غير مكشوف علناً في هذه المرحلة.
نشر PrivateGPT باستخدام Docker Compose
استنساخ المستودع وإعداد البنية
git clone https://github.com/zylon-ai/private-gpt.git
cd private-gpt
mkdir -p local_data/private_gpt docsضبط البيئة
cp .env.example .envفي .env:
DOCKER_COMPOSE_PROFILE=ollama
PRIVATEGPT_SERVER_HOST=127.0.0.1
PRIVATEGPT_SERVER_PORT=8080تشغيل الخدمة وتنزيل النموذج
docker compose --profile ollama up -d
docker compose logs -f privategptعندما تقرأ Application startup complete، الخدمة جاهزة.
استيعاب مستنداتك
cp /المسار/إلى/عقد-استحواذ.pdf docs/
curl -X POST http://127.0.0.1:8080/v1/ingest/file \
-H 'Content-Type: multipart/form-data' \
-F 'file=@docs/عقد-استحواذ.pdf'الوصول إلى الواجهة عبر نفق SSH
ssh -L 8080:127.0.0.1:8080 [email protected]افتح http://localhost:8080 في متصفحك.
الاستعلام عن عقد
في واجهة الويب، تأكد من تحديد وضع Query documents (وليس LLM Chat). مثال:
> «ما هي الشروط التعليقية المنصوص عليها في المادة الرابعة؟»
يُرجع PrivateGPT الإجابة مع الاستشهاد بالمقاطع المصدرية.
ما بعد التثبيت: التأمين والنسخ الاحتياطي
وصول الفريق مع Nginx والمصادقة الأساسية:
server {
listen 443 ssl;
server_name privategpt.your-domain.com;
auth_basic "وصول مقيّد";
auth_basic_user_file /etc/nginx/.htpasswd;
location / { proxy_pass http://127.0.0.1:8080; }
}النسخ الاحتياطي: احتفظ بنسخ احتياطية من local_data/ وdocs/ بانتظام.
التحقق من غياب حركة المرور الصادرة:
tcpdump -i any host api.openai.com or host api.anthropic.comالنموذج بطيء جداً؟ انتقل إلى تكميم أصغر. إن تجاوز وقت الاستجابة 90 ثانية على Mistral-7B، نزّل إصدار Q3_K_S (~3.0 غيغابايت، أسرع بـ 20% على المعالج المركزي) وعدّل المتغير LLM_HF_MODEL_FILE في .env. في المقابل، إن كان لديك 16 غيغابايت من الذاكرة المتاحة، mistral-7b-instruct-v0.2.Q8_0.gguf (~7.7 غيغابايت) يوفر إجابات أكثر دقة على البنود الغامضة.
أكثر الأخطاء شيوعاً
OOM عند الإطلاق — docker ps يُظهر Exited (137). تحقق من الذاكرة بـ free -h. انتقل لنموذج Q3_K_S إن لزم.
توقف الاستيعاب — تحقق من الأذونات: chown -R 1000:1000 local_data/.
وقت استجابة يتجاوز 60 ثانية — النظام يستخدم مساحة التبادل. تحقق بـ htop أثناء الطلب.
الواجهة تُظهر النتائج لكن لا تستشهد بمصادر — تحقق من تحديد وضع Query documents.
الحاوية تُعيد التشغيل في حلقة — احذف local_data/chroma_db/ وأعد فهرسة مستنداتك.
PrivateGPT في الإنتاج: قرار بنية تحتية وليس مجرد تشغيل Docker
تثبيت PrivateGPT على خادم VPS يستغرق أقل من ساعة. الحفاظ عليه في ظروف تشغيل مستدامة يتطلب نفس الانعكاسات التي يتطلبها أي خدمة مهنية. هذا بالضبط ما يوفره خادم VPS جذر: حرية معالجة بياناتك وفق قواعدك، مع نطاق مسؤولية تتحكم فيه من الألف إلى الياء.