لماذا تستضيف Weaviate ذاتيًا على خادم VPS
لا تكتفي Weaviate بتخزين المتجهات: فبفضل وحداتها (text2vec وreranker وgenerative) يمكنها تحويل بياناتك إلى متجهات تلقائيًا عند الإدراج، بل وتنسيق الاستعلامات التوليدية، وكل ذلك معروض عبر GraphQL وREST. إنها منصة بحث دلالي متكاملة من طرف إلى طرف. واستضافتها ذاتيًا على خادم VPS تمنحك حرية تفعيل الوحدات التي تحتاجها فقط، وربط نماذج المتجهات الخاصة بك، والاحتفاظ ببيانات الذكاء الاصطناعي لديك داخليًا. وبالنسبة للفرق التي تبني مساعدًا للمستندات أو محرك توصية، فإن ذلك يتجنّب الاعتماد على خدمة متجهية مُدارة وتكاليفها المرتبطة بالحجم. أنت تتحكم في زمن الاستجابة والاحتفاظ ومخطط أصنافك (classes)، ويمكنك توسيع الخادم الـVPS بوتيرة نمو مجموعة بياناتك.
الفوائد الملموسة للاستضافة الذاتية لـ Weaviate
- تحويل متجهي مدمج عبر وحدات
text2vec: تتحوّل نصوصك إلى متجهات دون خط معالجة خارجي. - واجهة GraphQL معبّرة لاستعلامات هجينة (متجهية + مرشّحات + BM25) في استعلام واحد.
- وحدات توليدية وإعادة ترتيب (reranking) لبناء خط معالجة RAG متكامل داخل قاعدة البيانات مباشرة.
- فهرس HNSW عالي الأداء مع تكميم المنتج (PQ) للتحكم في الذاكرة.
- مخطط قائم على الأصناف والخصائص، قريب من الرسم البياني (graph)، عملي للبيانات المهيكلة.
- السيادة: متجهاتك ومستنداتك المصدرية تبقى مستضافة على خادمك الـVPS.
المتطلبات المادية والبرمجية
Weaviate أكثر استهلاكًا للموارد من Qdrant، خصوصًا إن فعّلت وحدات تحويل متجهي محلية. لنسخة يُفوَّض فيها التحويل المتجهي إلى واجهة API خارجية، يشكّل 4 غيغابايت من ذاكرة RAM حدًا أدنى مريحًا. أما إن شغّلت وحدة text2vec-transformers محليًا، فاحتسب بالأحرى 8 غيغابايت ومعالج رسومات (GPU) مثاليًا، وإلا فسيكون التحويل المتجهي بطيئًا على المعالج (CPU). احتسب من 2 إلى 4 معالجات افتراضية (vCPU) ومن 30 إلى 60 غيغابايت من قرص SSD حسب حجم المتجهات واللقطات. ستحتاج إلى Docker Compose لتنسيق Weaviate وحاويات وحداتها، وإلى نطاق للعرض عبر HTTPS، وإلى تفعيل المصادقة بمفتاح API: وكما هو الحال مع أي قاعدة بيانات متجهية، لا تترك أبدًا نسخة مفتوحة على الإنترنت.
Weaviate أم Qdrant: أيهما تختار لخادمك الـVPS
| المعيار | Weaviate | Qdrant |
|---|---|---|
| اللغة والبصمة | Go، أكثر استهلاكًا لذاكرة RAM | Rust، خفيفة جدًا ومقتصدة |
| التحويل المتجهي المدمج | نعم، عبر وحدتَي text2vec وgenerative | لا، المتجهات يوفّرها العميل |
| الواجهة الرئيسية | GraphQL وREST | REST وgRPC |
| البحث الهجين | أصلي (متجهي + BM25) | أصلي (متجهي + مرشّحات الحمولة) |
| ضغط الذاكرة | تكميم المنتج (PQ) | التكميم القياسي والثنائي |
| سهولة النشر | Compose متعدد الحاويات (وحدات) | حاوية واحدة، تشغيل فوري |
| مثالية لـ | خط معالجة RAG متكامل وشامل | بحث متجهي سريع ومقتصد |
انشر Weaviate خطوة بخطوة
تجهيز خادم VPS وDocker Compose
ثبّت Docker وDocker Compose. أنشئ سجل DNS من نوع A للنطاق search.mydomain.com. احجز ما يكفي من ذاكرة RAM إن كنت تخطط لوحدة تحويل متجهي محلية.
كتابة ملف docker-compose.yml مع الوحدات
أعلن عن خدمة weaviate (cr.weaviate.io/semitechnologies/weaviate)، وإن لزم، حاوية وحدة مثل text2vec-transformers. اربطها عبر ENABLE_MODULES وTRANSFORMERS_INFERENCE_API. اربط وحدة تخزين على /var/lib/weaviate للاستمرارية.
ضبط المصادقة والوحدات
فعّل المصادقة بمفتاح API عبر AUTHENTICATION_APIKEY_ENABLED=true، وعرّف AUTHENTICATION_APIKEY_ALLOWED_KEYS وAUTHENTICATION_APIKEY_USERS. عطّل الوصول المجهول (AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false) واختر DEFAULT_VECTORIZER_MODULE.
تشغيل الحزمة
شغّل docker compose up -d وتحقق من الحالة عبر curl http://localhost:8080/v1/.well-known/ready. تابع سجلات الحاويات للتأكد من تحميل الوحدات بشكل صحيح.
وضع الوكيل العكسي وTLS
ضع Caddy أو Nginx أمام المنفذ 8080 لإدارة Let's Encrypt ولا تعرض المنفذ مباشرة. مرّر ترويسة Authorization التي تحتوي على مفتاح API حتى Weaviate.
إنشاء صنف والاستعلام عبر GraphQL
عرّف صنفًا بخصائصه ومحوّله المتجهي (vectorizer)، واستورد كائناتك (تُحوَّل إلى متجهات تلقائيًا إن كانت وحدة مفعّلة)، ثم اختبر استعلام nearText أو استعلامًا هجينًا عبر GraphQL. جدوِل النسخ الاحتياطية عبر وحدة النسخ الاحتياطي إلى تخزين S3.
إن فعّلت التحويل المتجهي المحلي عبر text2vec-transformers دون معالج رسومات (GPU)، فسيصبح الاستدلال على المعالج (CPU) عنق زجاجة سريعًا عند الاستيراد الضخم. في هذه الحالة، يُفضَّل تفويض التحويل المتجهي إلى واجهة API خارجية (text2vec-openai أو text2vec-cohere أو نقطة نهاية متوافقة تستضيفها أنت)، أو تفعيل تكميم المنتج (Product Quantization) لتقليل ذاكرة فهرس HNSW. راقب استهلاك ذاكرة RAM عبر مقاييس Prometheus التي تعرضها Weaviate على المنفذ 2112.