حول المحتوى:
كيف تثبت Ollama، تنزيل النماذج، إرسال الأوامر برمجياً، وربطها مع مشاريع الويب والـ Bots.
تشغيل نماذج الذكاء الاصطناعي محلياً لم يعد رفاهية للمختبرات الكبرى فقط. بفضل أدوات مثل Ollama أصبح بإمكانك كـ مطور تشغيل نماذج LLM قوية على جهازك، والتحكم الكامل في البيانات، وتكلفة أقل، وأمان أعلى. في هذا الدليل سنشرح Ollama تشغيل محلي خطوة بخطوة: التثبيت، تنزيل النماذج، إرسال الأوامر برمجياً، وربطها مع مشاريع الويب و الـ Bots.
إن كنت جديداً على Ollama، يمكنك قبل المتابعة الاطلاع على مقدمة عن Ollama ومزاياه أو الدليل الشامل عن أداة Ollama للحصول على صورة عامة عن الأداة.
قبل الدخول في التفاصيل التقنية، دعنا نوضح ما الذي يميز تشغيل النماذج محلياً عن استخدام واجهات برمجة تطبيقات سحابية:
Ollama يقدم طبقة بسيطة فوق هذه النماذج، مع أوامر CLI سهلة وواجهة HTTP مدمجة، وهذا يجعله مثالياً للمطورين الذين يريدون سرعة في بناء النماذج والتجارب.
قبل تثبيت Ollama، تأكد من توافر المتطلبات الأساسية التالية:
لاختيار النموذج المناسب وفق إمكانيات جهازك، يمكنك الرجوع لمقال أشهر نماذج الذكاء الاصطناعي المتوفرة على Ollama حيث تجد مقارنة بين النماذج ومتطلبات تشغيلها.
1. توجه إلى موقع Ollama الرسمي (ollama.com).
2. قم بتحميل ملف التثبيت الخاص بـ macOS.
3. ثبت التطبيق بطريقة السحب إلى مجلد التطبيقات.
4. بعد التثبيت، افتح الـ Terminal وتأكد من عمل الأمر:
ollama --version إن ظهر رقم الإصدار، فهذا يعني أن التثبيت تم بنجاح.
تختلف طريقة التثبيت قليلاً حسب التوزيعة، لكن غالباً يكون عبر سكربت رسمي. مثال عام:
curl -fsSL https://ollama.com/install.sh | sh بعد انتهاء التثبيت، تحقق:
ollama --version توفر Ollama عادة نسخة رسمية للويندوز أو يمكنك الاعتماد على WSL (بيئة Linux على ويندوز).
1. قم بتحميل ملف التثبيت لـ Windows من الموقع الرسمي وتثبيته.
2. افتح PowerShell أو Command Prompt واكتب:
ollama --version إذا ظهرت النسخة، فالنظام جاهز.
بعد تثبيت Ollama، يمكننا استخدامه لتنزيل نموذج وتشغيله بالأوامر. الفكرة الأساسية في Ollama تشغيل محلي هي:
ollama run.لتنزيل وتشغيل نموذج مثل llama3:
ollama run llama3 في المرة الأولى، سيقوم Ollama بتنزيل النموذج من الإنترنت، ثم يفتح لك واجهة تفاعلية في الـ Terminal لطرح الأسئلة.
يمكنك الخروج من الواجهة التفاعلية عبر الضغط على Ctrl + C.
بعض الأمثلة لنماذج مشهورة:
ollama run mistralollama run phi3ollama run codellama (مفيد لمساعدة البرمجة)كل نموذج يختلف في الحجم والأداء، وبعضها مناسب للنصوص العامة، والبعض الآخر مخصص للبرمجة أو المهام المتخصصة.
لإرسال Prompt واحد واستقبال رد واحد مباشرة بدون الدخول في وضع تفاعلي، يمكنك استخدام:
echo "اكتب لي كود Python يطبع الأرقام من 1 إلى 10" | ollama run llama3 بهذه الطريقة يمكنك دمج Ollama تشغيل محلي مع سكربتات Bash أو أدوات DevOps بسهولة. لكن بالنسبة للمطورين، الطريقة الأقوى هي عبر الـ HTTP API.
Ollama يأتي مع خادم HTTP مدمج يعمل افتراضياً على http://localhost:11434.
بمجرد تشغيل خدمة Ollama (غالباً تعمل تلقائياً بعد التثبيت)، يمكنك إرسال الطلبات عبر أي لغة برمجة تدعم HTTP.
مثال بسيط لإرسال Prompt للنموذج llama3:
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "اشرح لي ما هو الذكاء الاصطناعي باختصار."
}' الرد سيكون بتنسيق JSON، يحتوي على النص الناتج. يمكنك ضبط خيارات أخرى مثل temperature للتحكم في الإبداع، و max_tokens لطول الرد وهكذا.
هنا الجزء الأهم للمطورين: كيف نربط Ollama مع تطبيقات الويب، الخلفيات (Backends)، أو الـ Bots؟ الفكرة العامة واحدة: إرسال طلب HTTP إلى localhost:11434 واستقبال الرد وإعادة توظيفه في مشروعك.
افترض أنك تبني API بسيط يلف حول Ollama ويقدم رداً إلى واجهة ويب:
import express from 'express';
import fetch from 'node-fetch';
const app = express();
app.use(express.json());
app.post('/chat', async (req, res) => {
const { prompt } = req.body;
const response = await fetch('http://localhost:11434/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'llama3',
prompt: prompt,
stream: false
})
});
const data = await response.json();
res.json({ answer: data.response });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
}); بهذا الشكل يكون لديك واجهة /chat يمكن استدعاؤها من أي Frontend (React, Vue, Next.js إلخ) وإرسال الـ Prompt واستقبال الرد.
from fastapi import FastAPI
from pydantic import BaseModel
import httpx
app = FastAPI()
class PromptRequest(BaseModel):
prompt: str
@app.post("/chat")
async def chat(req: PromptRequest):
async with httpx.AsyncClient() as client:
r = await client.post(
"http://localhost:11434/api/generate",
json={
"model": "llama3",
"prompt": req.prompt,
"stream": False
}
)
data = r.json()
return {"answer": data.get("response", "")} الآن يمكنك من واجهة الويب إرسال طلب POST إلى /chat والحصول على رد النموذج للنص المكتوب.
عادةً لا يتم استدعاء Ollama مباشرة من المتصفح لأسباب أمنية (CORS، وإخفاء تفاصيل البنية)؛ الأفضل أن تبني طبقة Backend كما في الأمثلة السابقة.
localhost:11434.async function sendMessage(prompt) {
const res = await fetch('/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt })
});
const data = await res.json();
return data.answer;
} يمكنك تطوير هذه الفكرة لتشمل دردشة كاملة، تاريخ للمحادثات، أدوار النظام (System Prompt)، وتحكم في إعدادات النموذج.
أحد الاستخدامات الشائعة لـ Ollama تشغيل محلي هو بناء بوتات دردشة ذكية تعمل محلياً، مثل بوت تيليجرام، ديسكورد، أو حتى بوتات دعم فني داخلية في الشركات.
في حال أردت مثال تطبيقي مفصل، يمكنك الرجوع إلى: برمجة بوت تيليجرام يتحدث بذكاء باستخدام Python و Ollama حيث نشرح تكامل كامل بين Ollama و Telegram Bot API.
/api/generate.باستخدام هذا النمط، يمكنك بناء بوتات تعمل داخلياً داخل شبكة الشركة، دون الاعتماد على مزود سحابي للذكاء الاصطناعي.
إلى جانب تشغيل النماذج الجاهزة، يتيح لك Ollama تخصيص النماذج عبر ملفات Modelfile أو عبر إعدادات إضافية، مثل:
بعض الحالات المتقدمة يمكن أن تستفيد من معرفة أهم تقسيمات أنواع الذكاء الاصطناعي لتحديد النموذج الأنسب لكل سيناريو (نموذج توليدي، تحليلي، تصنيفي، إلخ).
رغم أن Ollama يعمل على جهازك، إلا أن هناك نقاط مهمة يجب الانتباه إليها:
للخروج بخطوات عملية من هذا الدليل، يمكنك اتباع هذه الخطة القصيرة:
llama3 أو نموذج أصغر.localhost:11434.بهذا تكون قد وضعت الأساس لتشغيل نماذج الذكاء الاصطناعي محلياً باستخدام Ollama وربطها مع مشاريعك البرمجية، سواء كانت مواقع ويب، أنظمة داخلية، أو بوتات تواصل ذكية. كل ذلك مع تحكم كامل في البيانات، وتكلفة أقل، ومرونة أكبر للمطور.
كيف تثبت Ollama، تنزيل النماذج، إرسال الأوامر برمجياً، وربطها مع مشاريع الويب والـ Bots.
مساحة اعلانية