لماذا تستضيف Ollama ذاتيًا على خادم VPS
Ollama ليس واجهة بل محرك استدلال: فهو يُنزّل نماذج مكمّمة ويقدّمها عبر واجهة REST محلية، مع نقطة نهاية متوافقة مع OpenAI (/v1/chat/completions). فائدة خادم VPS مخصّص مزدوجة. أولاً التكلفة: خادم VPS بسعر ثابت يحلّ محل فاتورة واجهة برمجة تطبيقات تتضخّم مع الحجم. ثم الخصوصية: مطالباتك لا تغادر الخادم أبدًا، وهو أمر حاسم لمعالجة البيانات الخاضعة للتنظيم. يصبح Ollama واجهة LLM الخلفية المشتركة لحزمتك بأكملها، تربطها بـ AnythingLLM أو Flowise أو LibreChat أو نصوصك البرمجية الخاصة، بمجرد استبدال عنوان URL الأساسي بعنوان خادم VPS الخاص بك.
الفوائد الملموسة لاستضافة Ollama ذاتيًا
- تكلفة استدلال ثابتة: لا مزيد من الفوترة لكل رمز، أيًا كان حجم الطلبات.
- واجهة برمجة تطبيقات متوافقة مع OpenAI: تستبدل عنوان URL الأساسي دون إعادة كتابة شيفرة العميل.
- خصوصية مطلقة، تبقى المطالبات والإجابات على بنيتك التحتية.
- اختيار وتبديل حر بين عشرات النماذج عبر
ollama pull. - واجهة LLM خلفية واحدة مشتركة بين جميع أدوات الذكاء الاصطناعي المستضافة ذاتيًا لديك.
- إمكانية التشغيل دون اتصال، من دون الاعتماد على خدمة خارجية.
المتطلبات العتادية والبرمجية
Ollama هو الأكثر تطلّبًا لذاكرة RAM في هذه القائمة، لأن النموذج يجب أن يتّسع في الذاكرة. يتطلّب نموذج 7B مكمّم (Q4) نحو 5 إلى 6 GB من RAM؛ لذا احسب 8 GB من RAM على الأقل لتقديم نموذج 7B/8B بشكل مريح على المعالج، و16 GB للنماذج الأكبر أو عدة نماذج محمّلة. على المعالج فقط، يبقى التوليد بطيئًا: للإنتاج التفاعلي، يغيّر خادم VPS مزوّد بوحدة معالجة رسومات المعطيات جذريًا. خصّص 20 إلى 40 GB من القرص حسب عدد النماذج المُنزَّلة. يُنصَح بـ Docker، إضافةً إلى نطاق فرعي (مثل api-ia.your-domain.com) والمنفذ 443.
نشر Ollama باستخدام Docker وواجهة برمجة تطبيقات مؤمّنة
تثبيت Ollama في حاوية
شغّل docker run -d -v ollama:/root/.ollama -p 127.0.0.1:11434:11434 --name ollama ollama/ollama. الربط على 127.0.0.1 متعمَّد: يجب ألا تُكشَف واجهة برمجة التطبيقات مباشرةً أبدًا، لأنها غير مُصادَق عليها افتراضيًا.
تنزيل نموذج
احصل على نموذج باستخدام docker exec -it ollama ollama pull llama3.1:8b (أو mistral أو qwen2.5). اختبر محليًا: docker exec -it ollama ollama run llama3.1:8b 'Bonjour'.
التحقق من واجهة برمجة التطبيقات المحلية
استدعِ نقطة النهاية: curl http://127.0.0.1:11434/api/generate -d '{"model":"llama3.1:8b","prompt":"test"}'. تأكّد من وصول الإجابة كتدفّق.
إضافة طبقة مصادقة إلى الوكيل
بما أن Ollama لا يملك مصادقة أصلية، ضع وكيلاً عكسيًا أمامه. باستخدام Caddy، اكشف api-ia.your-domain.com، وأضف تحقّقًا من الرمز (ترويسة Authorization) عبر توجيه، ثم reverse_proxy localhost:11434. يتولّى Let's Encrypt تأمين TLS.
إحكام جدار الحماية
باستخدام UFW، اسمح فقط بالمنفذ 443 (و22) للدخول، واحظر صراحةً المنفذ 11434 الخارجي. تحقّق من الخارج أن https://api-ia.your-domain.com يتطلّب الرمز فعلاً.
ربط تطبيقاتك
في عملائك (OpenAI SDK وFlowise وLibreChat)، وجّه عنوان URL الأساسي إلى https://api-ia.your-domain.com/v1 ومرّر رمزك. تعمل استدعاءاتك الحالية دون أي تعديل آخر.
على خادم VPS يعمل بالمعالج، يكون الطلب الأول بعد فترة خمول بطيئًا لأن النموذج يُعاد تحميله في الذاكرة. أبقِه مقيمًا بضبط OLLAMA_KEEP_ALIVE=-1، وحُدّ من عدد النماذج المتزامنة باستخدام OLLAMA_MAX_LOADED_MODELS=1 لتجنّب إشباع ذاكرة RAM. فضّل تكميمات Q4_K_M: أفضل حل وسط بين السرعة والجودة على المعالج.
الوثائق الرسمية
للتهيئة المتقدّمة والخيارات الخاصة بالأداة، راجع الوثائق الرسمية لـ Ollama. يغطّي هذا الدليل الإطلاق على خادم VPS؛ وتبقى وثائق الناشر المرجع للإعدادات الدقيقة والتحديثات الكبرى وحالات الاستخدام الخاصة.