Ollama وLiteLLM: دليل على Habr لتشغيل دردشة LLM محلية بلغة Python دون سحابة

ظهر دليل بداية واضح للتطوير المحلي مع نماذج LLM بلغة Python. يشرح الدليل خطوة بخطوة تثبيت Ollama وتشغيل نموذج qwen2.5 وإعداد البيئة الافتراضية وإجراء أول استدعاء عبر LiteLLM. كما يتناول الكاتب الأخطاء الشائعة مثل Connection refused وModel not found. الفكرة الرئيسية هي البدء دون سحابة أو فوترة أو مفاتيح API، ثم نقل المنطق نفسه لاحقًا إلى مزوّدين خارجيين.

معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
Ollama وLiteLLM: دليل على Habr لتشغيل دردشة LLM محلية بلغة Python دون سحابة
المصدر: Habr AI. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليHabr AI ↗
رئيس التحرير
حقيقة رئيسية #1تثبيت Ollama على Windows أو macOS أو Linux؛
تنزيل النموذج qwen2.53b والتحقق من رده مباشرة في الطرفية؛
التحويل إلى qwen2.51.5b عند ضعف العتاد؛

نشر موقع Habr دليلًا تمهيديًا مفصّلًا حول التطوير المحلي مع نماذج LLM بلغة Python. يقترح الكاتب ألا يبدأ المطوّر بواجهات API السحابية، بل بالجمع بين Ollama وLiteLLM: تثبيت النموذج على الحاسوب الشخصي، وإعداد البيئة، والحصول على أول رد مباشرة من الملف main.py.

لماذا محليًا

تقود معظم المواد التعليمية الأولى حول LLM المبتدئ إلى السحابة منذ الخطوة الأولى: سجّل حسابًا، واحصل على مفتاح API، واربط بطاقتك المصرفية، وراقب الحدود المسموح بها. بالنسبة إلى مطوّر يريد فقط فهم الآلية الأساسية، هذا ضجيج زائد لا حاجة إليه إطلاقًا.

يقترح الدليل الجديد مسارًا مختلفًا: إعداد كل شيء محليًا أولًا، لتظهر منطقية عمل النموذج نفسها دون فوترة ولا خدمات خارجية ودون الخوف من إنفاق المال عن غير قصد على الاختبارات.

ويتميز هذا النهج أيضًا بأنه يجعل مسار الطلب كاملًا شفافًا. فالمقال يفكّك السلسلة حلقة حلقة: يرسل كود Python الرسالة إلى LiteLLM، الذي يمرّرها إلى Ollama، ثم يتواصل Ollama مع النموذج المحلي ويعيد الرد إلى البرنامج. وهذا التفصيل مفيد لا للمبتدئين وحدهم، إذ يساعد على تحديد موضع المشكلة بسرعة إذا لم يستجب النموذج، أو لم تكن الخدمة قيد التشغيل، أو كان الكود يشير إلى عنوان خاطئ.

«هذا ليس "سحر الذكاء الاصطناعي"، بل تدفق برمجي عادي».

ما الذي تتضمنه الحزمة

يفصل الكاتب منذ البداية بين أدوار الأدوات، لأن من السهل الخلط بينها. يتولى Ollama هنا تشغيل النموذج المحلي وإتاحة الوصول إليه عبر خادم محلي. أما LiteLLM فهي مكتبة Python توفّر واجهة موحّدة لاستدعاء النماذج. وبفضل ذلك يمكن نقل الكود الذي يعمل اليوم مع نموذج محلي إلى مزوّد سحابي لاحقًا بسهولة نسبية، دون إعادة كتابة التطبيق من الصفر. وهذا حل وسط عملي للتعارف الأول بين البساطة والاستعداد للمستقبل.

يأتي الجزء الأول من السلسلة على شكل مسار عملي بلا نظريات زائدة. فلا يُطلب من القارئ تصميم وكلاء (agents) فورًا، ولا ربط ذاكرة، ولا بناء واجهة معقدة. المهمة أبسط وأنفع: التأكد من أن النموذج المحلي يعمل أصلًا، وأن Python قادر على الوصول إليه، وأن الرد يعود إلى الكود دون أي بنية تحتية خارجية. لذلك تُقرأ المادة كقائمة مراجعة عملية لأمسية أولى، لا كعرض نظري للتقنيات.

  • تثبيت Ollama على Windows أو macOS أو Linux؛
  • تنزيل النموذج qwen2.5:3b والتحقق من رده مباشرة في الطرفية؛
  • التحويل إلى qwen2.5:1.5b عند ضعف العتاد؛
  • إنشاء بيئة Python افتراضية وتثبيت LiteLLM؛
  • كتابة main.py بسيط يرسل طلبًا إلى http://localhost:11434.

ومن النقاط الإيجابية أيضًا اختيار النموذج للبداية. يُقدَّم qwen2.5:3b بوصفه خيارًا مدمجًا ومريحًا بما يكفي للحاسوب المحمول العادي، خاصة إذا كانت اللغة الروسية مطلوبة. وإذا كانت الموارد محدودة، يقدّم الكاتب فورًا سيناريو بديلًا بنسخة أخف. وهذا يجعل المادة واقعية لا نظرية: فالمقال لا يعد بمعجزات، بل يساعد فعليًا على الوصول إلى أول رد يعمل دون عناء طويل مع ملفات الإعداد منذ البداية.

أول استدعاء من Python

النقطة المحورية في النص هي المثال البسيط بلغة Python. يستورد المثال الدالة completion من LiteLLM، ويحدد النموذج بالصيغة ollama_chat/qwen2.5:3b، ويضبط api_base المحلي، ويمرّر سؤال المستخدم ضمن قائمة messages. وهذه تفصيلة مهمة: حتى الطلب الواحد يُصاغ بالبنية نفسها التي سيُصاغ بها الحوار المستقبلي. فالكاتب لا يعرض استدعاءً منفردًا فحسب، بل يضع منذ البداية أساس دردشة في الطرفية تحتفظ بسجل الرسائل والسياق.

ومن المفيد كذلك أن المقال لا يتوقف عند المسار السلس. ففي الختام تُعالَج الأعطال الشائعة: Connection refused إذا لم يكن Ollama قيد التشغيل؛ وModel not found إذا لم يتطابق اسم النموذج في الكود مع المثبَّت فعليًا؛ وبطء الرد الأول بسبب تحميل النموذج في الذاكرة؛ وخطأ ModuleNotFoundError إذا ثُبّتت الحزمة في بيئة خاطئة؛ ومشكلات الترميز في PowerShell. وبالنسبة إلى المطوّر المبتدئ، غالبًا ما يكون هذا القسم أثمن من النظرية، لأن معظم التجارب الأولى تتعثر عند هذه التفاصيل الصغيرة بالذات.

وقد أعلن الكاتب بالفعل عن تتمة السلسلة: في الجزء الثاني سيجري تحويل الطلب المنفرد إلى دردشة صغيرة في الطرفية، ثم تُضاف إليها قائمة الرسائل والسياق. أي أن المادة ليست مقتطفًا معزولًا، بل مدخل منظّم إلى مسار أطول، من تشغيل النموذج محليًا إلى تطبيق متكامل. وهذه الصيغة مفيدة خصوصًا لمن لا يريد مجرد تشغيل عرض تجريبي، بل تحويل LLM تدريجيًا إلى جزء من مشروع Python عادي.

ماذا يعني ذلك

يعود الاهتمام بالنماذج المحلية إلى الارتفاع، وتخفض مواد كهذه عتبة الدخول أفضل من أي مراجعات عامة. فالجمع بين Ollama وLiteLLM يبيّن أن أول نموذج أولي يعمل يمكن بناؤه دون سحابة ودون مفاتيح API، ثم توسيع البنية نفسها لاحقًا عند الرغبة. وبالنسبة إلى المطورين الناطقين بالروسية، هذا جسر جيد بين الفضول تجاه LLM والكود الحقيقي. وهذه التعليمات بالذات هي التي تحوّل الاهتمام في أغلب الأحيان إلى ممارسة.

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول لماذا محليًا؟

تقود معظم المواد التعليمية الأولى حول LLM المبتدئ إلى السحابة منذ الخطوة الأولى: سجّل حسابًا، واحصل على مفتاح API، واربط بطاقتك المصرفية، وراقب الحدود المسموح بها. بالنسبة إلى مطوّر يريد فقط فهم الآلية الأساسية، هذا ضجيج زائد لا حاجة إليه إطلاقًا. يقترح الدليل الجديد مسارًا مختلفًا: إعداد كل شيء محليًا أولًا، لتظهر منطقية عمل النموذج نفسها دون فوترة ولا خدمات خارجية ودون الخوف من إنفاق المال عن غير قصد على الاختبارات. ويتميز هذا النهج أيضًا بأنه يجعل مسار الطلب كاملًا شفافًا. فالمقال يفكّك السلسلة حلقة حلقة: يرسل كود Python الرسالة إلى LiteLLM، الذي يمرّرها إلى Ollama، ثم ي

ما أبرز التفاصيل حول ما الذي تتضمنه الحزمة؟

يفصل الكاتب منذ البداية بين أدوار الأدوات، لأن من السهل الخلط بينها. يتولى Ollama هنا تشغيل النموذج المحلي وإتاحة الوصول إليه عبر خادم محلي. أما LiteLLM فهي مكتبة Python توفّر واجهة موحّدة لاستدعاء النماذج. وبفضل ذلك يمكن نقل الكود الذي يعمل اليوم مع نموذج محلي إلى مزوّد سحابي لاحقًا بسهولة نسبية، دون إعادة كتابة التطبيق من الصفر. وهذا حل وسط عملي للتعارف الأول بين البساطة والاستعداد للمستقبل. يأتي الجزء الأول من السلسلة على شكل مسار عملي بلا نظريات زائدة. فلا يُطلب من القارئ تصميم وكلاء (agents) فورًا، ولا ربط ذاكرة، ولا بناء واجهة معقدة. المهمة أبسط وأنفع: التأكد من أن ال

ما أبرز التفاصيل حول أول استدعاء من Python؟

النقطة المحورية في النص هي المثال البسيط بلغة Python. يستورد المثال الدالة completion من LiteLLM، ويحدد النموذج بالصيغة ollama_chat/qwen2.5:3b، ويضبط api_base المحلي، ويمرّر سؤال المستخدم ضمن قائمة messages. وهذه تفصيلة مهمة: حتى الطلب الواحد يُصاغ بالبنية نفسها التي سيُصاغ بها الحوار المستقبلي. فالكاتب لا يعرض استدعاءً منفردًا فحسب، بل يضع منذ البداية أساس دردشة في الطرفية تحتفظ بسجل الرسائل والسياق. ومن المفيد كذلك أن المقال لا يتوقف عند المسار السلس. ففي الختام تُعالَج الأعطال الشائعة: Connection refused إذا لم يكن Ollama قيد التشغيل؛ وModel not found إذا لم يتطابق اسم ا

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
ما رأيك؟
جارٍ تحميل التعليقات…