Key Takeaways
- يكشف Ollama عن واجهة REST API على `http://localhost:11434/v1` تطابق واجهة OpenAI تماماً.
- استخدم مكتبة Python الخاصة بـ OpenAI: غيّر `api_key="openai"` إلى `api_key="ollama"` وعيّن `base_url="http://localhost:11434/v1"`.
- النهج نفسه في Node.js: SDK الخاص بـ OpenAI موجَّه إلى localhost:11434.
- الواجهة المتوافقة مع OpenAI متطابقة في Ollama و vLLM و LM Studio -- لا حاجة لأي تغييرات برمجية عند تبديل المزوّد.
- اعتباراً من مايو 2026، يعمل البث المتدفق (الاستجابات token بـ token) واستدعاء الدوال مع النماذج المحلية عبر هذه الواجهة.
- تتصل Aider و Cline و Roo Code جميعها بالنماذج المحلية عبر إعداد base_url نفسه -- دون الحاجة إلى تكامل منفصل.
⚡ حقائق سريعة
واجهة Ollama: `http://localhost:11434/v1` — تطابق `/chat/completions` الخاصة بـ OpenAI تماماً
واجهة LM Studio: `http://localhost:1234/v1` — التنسيق نفسه، منفذ مختلف
واجهة vLLM: `http://localhost:8000/v1` — خدمة بجودة إنتاجية
التغيير البرمجي: سطران — `base_url` و `api_key`. تبقى بقية الشيفرة متطابقة.
المدعوم: Chat completions و text completions و embeddings والبث المتدفق واستدعاء الدوال
أدوات البرمجة بالذكاء الاصطناعي: تدعم Aider و Cline و Roo Code جميعها وضع مزوّد متوافق مع OpenAI باستخدام base_url نفسه
المصادقة: لا شيء افتراضياً — وصول من localhost فقط. أضف reverse proxy للوصول عبر الشبكة.
النموذج المستخدم في الأمثلة البرمجية: Llama 4 Scout (أفضل جودة على 12 GB) أو Llama 3.2 3B (خفيف)
ماذا يعني متوافق مع OpenAI؟
متوافق مع OpenAI يعني أن endpoint الواجهة يعيد الاستجابات بالتنسيق نفسه الذي تستخدمه واجهة OpenAI. يتيح ذلك لأي مكتبة أو أداة مبنية لـ OpenAI أن تعمل مع النماذج المحلية بمجرد توجيهها إلى عنوان URL مختلف. اطّلع على كيفية مقارنة Ollama مقابل LM Studio في تطبيقهما لهذا المعيار.
مثال: ترسل مكتبة Python الخاصة بـ OpenAI الطلبات هكذا:
``` POST /chat/completions { "model": "gpt-4o", "messages": [...], "temperature": 0.7 } ```
تقبل واجهة Ollama الطلب نفسه تماماً على `localhost:11434/v1/chat/completions` وتعيد الاستجابة بتنسيق OpenAI:
``` { "choices": [{"message": {"content": "..."}}], "usage": {"prompt_tokens": 10, "completion_tokens": 20} } ```
بما أن التنسيق متطابق، فلا حاجة لتعلّم واجهة جديدة أو إعادة كتابة شيفرتك.
---
🔍 هل تعلم: أصبح تنسيق واجهة OpenAI المعيار غير الرسمي لجميع واجهات نماذج LLM. وتدعمه الآن Anthropic (Claude) و Google (Gemini) وجميع أدوات الاستدلال المحلية الرئيسية (Ollama و vLLM و LM Studio و llama.cpp). الشيفرة المكتوبة وفق هذا التنسيق محايدة فعلاً تجاه المزوّد — وهي أقرب ما توصلت إليه صناعة الذكاء الاصطناعي إلى واجهة عالمية.

ما هو endpoint واجهة Ollama؟
**عند تشغيل `ollama serve`، يبدأ Ollama واجهة REST API على `http://localhost:11434`.** الـ endpoints المتوافقة مع OpenAI هي:
| Endpoint | URL | Descripción |
|---|---|---|
| Chat Completions | POST http://localhost:11434/v1/chat/completions | يكافئ `/chat/completions` الخاصة بـ OpenAI |
| Text Completions | POST http://localhost:11434/v1/completions | يكافئ `/completions` الخاصة بـ OpenAI |
| Embeddings | POST http://localhost:11434/v1/embeddings | يحوّل النص إلى متجهات |
| List Models | GET http://localhost:11434/v1/models | يسرد النماذج المتاحة |

كيف تستخدم واجهة Ollama مع Python (مكتبة OpenAI)؟
ثبّت مكتبة OpenAI ووجّهها إلى localhost.
🔍 نصيحة احترافية: عيّن `OPENAI_BASE_URL=http://localhost:11434/v1` كمتغيّر بيئة. تقرأ العديد من الأدوات (LangChain و LlamaIndex و aider) هذا المتغيّر تلقائياً — دون أي تغييرات برمجية. يمكنك التبديل بين OpenAI و Ollama عبر تعديل متغيّر بيئة واحد فقط.
# 1. Install the OpenAI library
pip install openai
# 2. Connect to Ollama
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # dummy key; Ollama ignores it
)
# 3. Make a request
response = client.chat.completions.create(
model="llama4:scout", # Best quality on 12 GB VRAM (MoE)
# model="llama3.2:3b", # Lightweight alternative for 8 GB RAM
messages=[
{"role": "user", "content": "What is 2+2?"}
]
)
print(response.choices[0].message.content)كيف تستخدم واجهة Ollama مع Node.js؟
ثبّت SDK الخاص بـ OpenAI واربطه بنسخة Ollama المحلية لديك.
// 1. Install
npm install openai
// 2. Connect to Ollama
const OpenAI = require("openai").default;
const client = new OpenAI({
baseURL: "http://localhost:11434/v1",
apiKey: "ollama"
});
// 3. Make a request
const response = await client.chat.completions.create({
model: "llama4:scout", // Best quality on 12 GB VRAM
// model: "llama3.2:3b", // Lightweight for 8 GB RAM
messages: [{
role: "user",
content: "What is 2+2?"
}]
});
console.log(response.choices[0].message.content);كيف تستخدم خادم LM Studio المتوافق مع OpenAI (localhost:1234)
**يكشف LM Studio عن واجهة متوافقة مع OpenAI على `http://localhost:1234/v1`.** فعّلها في علامة التبويب Local Server -- حمّل نموذجاً وانقر على Start Server. تعمل شيفرة Python و Node.js نفسها مع LM Studio -- ما عليك سوى تغيير المنفذ من 11434 إلى 1234.
يناسب LM Studio مستخدمي الواجهة الرسومية الذين يريدون استكشاف النماذج بصرياً والتبديل بينها بسهولة. ويُفضَّل Ollama للنصوص البرمجية والأتمتة وخطوط CI.
| Plataforma | Puerto | Ideal para | GPU requerida |
|---|---|---|---|
| LM Studio | localhost:1234 | مستخدمو الواجهة الرسومية، الإدارة البصرية للنماذج | لا (يعمل على CPU) |
| Ollama | localhost:11434 | النصوص البرمجية، الأتمتة، الإنتاج | لا (يعمل على CPU) |
| vLLM | localhost:8000 | تعدد وحدات GPU، خوادم عالية الأداء | مُوصى بها |
# Python: Connect to LM Studio (localhost:1234)
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:1234/v1",
api_key="lm-studio" # any string; LM Studio ignores it
)
response = client.chat.completions.create(
model="llama-3.2-3b-instruct", # exact model name shown in LM Studio
messages=[
{"role": "user", "content": "What is 2+2?"}
]
)
print(response.choices[0].message.content)كيف تستخدم واجهة Ollama من JavaScript في المتصفح؟
يتطلب استدعاء Ollama من JavaScript على جانب المتصفح أن يكون المتصفح والخادم على الجهاز نفسه (أو أن يكون CORS مسموحاً). لأسباب أمنية، لا تعمل طلبات المتصفح إلى localhost إلا إذا كان JavaScript يُقدَّم أيضاً من localhost. اطّلع على أفضل واجهات نماذج LLM المحلية للحصول على واجهات جاهزة للمتصفح تتعامل مع ذلك بشفافية.
إذا كنت بحاجة إلى استدعاء Ollama من متصفح على عنوان IP مختلف، فاضبط proxy لـ CORS أو استخدم middleware على جانب الخادم.
// Browser-side JavaScript (if server is localhost:3000, Ollama is localhost:11434)
fetch("http://localhost:11434/v1/chat/completions", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "llama4:scout", // Best quality on 12 GB VRAM
// model: "llama3.2:3b", // Lightweight for 8 GB RAM
messages: [{ role: "user", content: "What is 2+2?" }]
})
})
.then(res => res.json())
.then(data => console.log(data.choices[0].message.content))كيف تبث الاستجابات token بـ token؟
يتيح لك البث المتدفق عرض الاستجابات أثناء توليدها، token بـ token، بدلاً من انتظار الاستجابة الكاملة. اعتباراً من مايو 2026، يعمل البث المتدفق مع جميع النماذج المحلية عبر الواجهة المتوافقة مع OpenAI.
# Python: streaming example
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama"
)
stream = client.chat.completions.create(
model="llama4:scout",
messages=[{"role": "user", "content": "Count to 10"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)هل يستطيع نموذجك المحلي استدعاء الدوال؟
نعم، اعتباراً من مايو 2026، يعمل استدعاء الدوال مع النماذج المحلية عبر واجهة OpenAI. تُعرّف مخطط دالة، ويستطيع النموذج الرد بوسائط لتمريرها إلى دالتك. يتيح ذلك لـ أفضل نماذج LLM المحلية للبرمجة أن تتكامل مع منظومة أدواتك.
يعتمد دعم استدعاء الدوال على النموذج. تدعم Llama 4 Scout و Qwen3 8B و Gemma 4 9B و Mistral Small 3.1 استدعاء الأدوات بشكل موثوق. كما تدعمه Llama 3.3 8B و Qwen3 7B أيضاً (إصدارات أقدم). قد لا تنتج النماذج الأصغر (3B) JSON منظَّماً لاستدعاء الأدوات بشكل موثوق.
في عام 2026، يوسّع Model Context Protocol (MCP) استدعاء الدوال إلى طبقة موحَّدة لربط الأدوات. يتيح MCP لأي عميل (Claude Code و Cursor والتطبيقات المخصصة) الاتصال بأي خادم أدوات عبر بروتوكول واحد — متجاوزاً تعريفات الأدوات لكل طلب الموضحة أعلاه. يدعم Ollama استدعاء الأدوات بأسلوب MCP عبر واجهة استدعاء الدوال القياسية المتوافقة مع OpenAI. لتكاملات الأدوات الإنتاجية، يتحول MCP إلى المعيار؛ وتبقى أمثلة استدعاء الدوال هنا هي الأساس.
عند استخدام الواجهات المتوافقة مع OpenAI محلياً، يعمل الإخراج المنظَّم ووضع JSON تماماً كما هو الحال مع الواجهات السحابية. لفرض مطابقة المخطط والتحكم في التنسيق على النماذج المحلية والسحابية، اطّلع على الإخراج المنظَّم ووضع JSON.
تقبل الواجهات المتوافقة مع OpenAI تنسيقات الـ prompt نفسها التي تقبلها الإصدارات السحابية — رسائل النظام ورسائل المستخدم والإخراج المنظَّم. تنطبق المكتبة الكاملة لـ تقنيات هندسة الـ prompt مباشرة على استدعاءات الواجهة المحلية.
# Example: local model calls a weather function
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
}
}
}
}]
response = client.chat.completions.create(
model="llama4:scout",
messages=[{"role": "user", "content": "What is the weather in SF?"}],
tools=tools
)
# Check if model returned a function call
if response.choices[0].message.tool_calls:
call = response.choices[0].message.tool_calls[0]
print(f"Call function: {call.function.name} with {call.function.arguments}")كيف تربط Aider أو Cline أو Roo Code بنموذج محلي؟
**وجّه Aider أو Cline أو Roo Code إلى base_url نفسه المتوافق مع OpenAI المستخدم في بقية هذا الدليل -- `http://localhost:11434/v1` لـ Ollama أو `http://localhost:1234/v1` لـ LM Studio -- واستخدم أي سلسلة نصية كمفتاح API.** تتيح الأدوات الثلاث جميعها وضع مزوّد عام "OpenAI Compatible" مصمَّم تحديداً لهذه الحالة.
تشترك Cline و Roo Code (وهي نسخة مشتقة من Cline) في نمط الإعداد نفسه: افتح إعدادات الإضافة في VS Code، واختر مزوّد OpenAI Compatible API، وأدخل Base URL وأي مفتاح API، ثم أدخل اسم النموذج الدقيق كما يظهر في `ollama list` أو في متصفح النماذج الخاص بـ LM Studio.
تتصل Aider عبر الطبقة المتوافقة مع OpenAI نفسها باستخدام متغيّرَي البيئة `OPENAI_API_BASE` و `OPENAI_API_KEY` (أو خيارات سطر الأوامر المكافئة) الموجَّهة إلى خادمك المحلي. تملك Aider أيضاً دعماً أصلياً لـ Ollama عبر بادئة مزوّد خاصة بها -- راجع توثيق Aider الحالي للطريقة المفضَّلة، لأن أسماء الخيارات الدقيقة تتغيّر بين الإصدارات.
استخدم Aider أو Cline أو Roo Code مع النماذج المحلية إذا: أردت تكلفة API صفرية أثناء التطوير، أو لا يمكن لشيفرتك مغادرة جهازك، أو كنت تختبر الـ prompts قبل التبديل إلى نموذج سحابي في الإنتاج. تجنّب النماذج المحلية في هذه الأدوات إذا احتجت إلى استدلال بسياق أطول مما يستطيع نموذج بذاكرة VRAM من 8 إلى 24 GB معالجته بشكل موثوق -- وحينها انتقل إلى نموذج سحابي أو نموذج محلي أكبر (Llama 4 Scout).
| الأداة | موقع الإعداد | Base URL المحلي |
|---|---|---|
| Cline | إعدادات إضافة VS Code ← API Provider ← OpenAI Compatible | http://localhost:11434/v1 (Ollama) أو :1234/v1 (LM Studio) |
| Roo Code | إعدادات إضافة VS Code ← API Provider (النمط نفسه لـ Cline) | http://localhost:11434/v1 (Ollama) أو :1234/v1 (LM Studio) |
| Aider | متغيّرا البيئة OPENAI_API_BASE / OPENAI_API_KEY أو خيارات CLI | http://localhost:11434/v1 (Ollama) أو :1234/v1 (LM Studio) |
واجهات نماذج LLM المحلية المتوافقة مع OpenAI حسب المنطقة
الاتحاد الأوروبي / اللائحة العامة لحماية البيانات وقانون الذكاء الاصطناعي: بالنسبة لمطوري الاتحاد الأوروبي، يضمن تشغيل Ollama محلياً الامتثال للمادة 5 من اللائحة العامة لحماية البيانات (تقليل البيانات) -- يبقى كل الاستدلال على الجهاز دون نقل بيانات إلى واجهات سحابية. يُنزَّل Ollama من GitHub بموجب رخصة MIT، بما يلبي متطلبات الامتثال في الاتحاد الأوروبي. تسري التزامات أنظمة المخاطر العالية في قانون الذكاء الاصطناعي للاتحاد الأوروبي اعتباراً من 2 أغسطس 2026 (في انتظار Digital Omnibus). يلبي الاستدلال المحلي للواجهة متطلبات إقامة البيانات في اللائحة العامة لحماية البيانات افتراضياً. وبالنسبة للمؤسسات، يلغي ذلك الاعتماد على المزوّد -- تبقى بيانات الاستنتاج داخل شبكتك الخاصة (لا يوجد خطر نقل عابر للحدود وفق المادة 44 من اللائحة العامة لحماية البيانات لبيانات الاستنتاج).
إسبانيا وأمريكا اللاتينية / اللائحة العامة لحماية البيانات و LSSI: في إسبانيا، يفرض قانون خدمات مجتمع المعلومات (LSSI) واللائحة العامة لحماية البيانات معالجة مسؤولة للبيانات الشخصية. يلبي تشغيل Ollama محلياً هذه المتطلبات: لا يوجد نقل للبيانات إلى خوادم خارجية. وفي أمريكا اللاتينية، تفرض دول مثل المكسيك (LFPDPPP) والأرجنتين (القانون 25.326) والبرازيل (LGPD) حماية البيانات الشخصية؛ ويلبي الاستدلال المحلي مع Ollama هذه المتطلبات. يعمل Ollama + Qwen3 8B على حواسيب الشركات المحمولة القياسية (8 GB RAM).
الصين / CAC: بالنسبة لعمليات النشر بموجب قانون الأمن السيبراني الصيني (المادة 37 من CAC)، يلبي الاستدلال المحلي متطلبات توطين البيانات -- يعمل Ollama + Qwen3 على أي جهاز Linux دون استدعاءات لواجهات خارجية. تضيف التجزئة اللغوية الأصلية للصينية في Qwen3 كفاءة بنسبة 30-40% مقارنة بـ Llama، مما يقلل من عبء الاستدلال المحلي.
ما هي الأخطاء الشائعة مع واجهات نماذج LLM المحلية المتوافقة مع OpenAI؟
- نسيان أن مفتاح الواجهة يُتجاهَل. يتطلب Ollama `api_key="ollama"` (أي سلسلة نصية تعمل) لأنه لا يصادق. تعتمد المصادقة الفعلية على ورود الطلب من localhost أو من شبكتك المحلية، لا من الإنترنت.
- عدم إدراك أن اسم النموذج مهم. إذا استدعيت `/chat/completions` بـ `model="gpt-4"` بينما لم تنزّل سوى `llama3.2:3b` في Ollama، سيفشل الطلب. استخدم أسماء النماذج الدقيقة من `ollama list`.
- افتراض أن Ollama يحتاج إلى الإنترنت. لا يحتاج إليه. الواجهة محلية بالكامل. لكن إذا حاولت شيفرة Python لديك الاتصال بخوادم OpenAI أولاً (افتراضياً)، فستفشل. عيّن `base_url` صراحةً دائماً.
- أخطاء CORS من المتصفح. إذا استدعيت Ollama من نص برمجي على جانب المتصفح وحصلت على خطأ CORS، فهذا يعني أن المتصفح حظر الطلب لأسباب أمنية. اطّلع على نماذج LLM المحلية مع VS Code و Cursor للحصول على حلول قائمة على المحرر تتجاوز CORS.
- عدم تعيين stream=True عند توقّع البث المتدفق. إذا أردت استجابات token بـ token، فيجب أن تعيّن `stream=True` صراحةً في الطلب. افتراضياً، ينتظر الاستجابة الكاملة.
- استخدام `llama3.2:3b` في الأمثلة رغم توفّر نماذج أفضل. تستخدم العديد من الدروس Llama 3.2 3B لأنها تتسع في 8 GB من RAM. إذا كان لديك 12+ GB من VRAM، فانتقل إلى `llama4:scout` — جودة أفضل بشكل كبير لشيفرة الواجهة نفسها. استخدم نماذج 3B فقط لاختبار التكامل مع الواجهة، لا لأحمال العمل الإنتاجية.
- عدم تعيين `OLLAMA_NUM_PARALLEL` للطلبات المتزامنة. افتراضياً، يعالج Ollama طلباً واحداً في كل مرة. للتطبيقات متعددة المستخدمين أو مجموعات الاختبار المتوازية، عيّن `OLLAMA_NUM_PARALLEL=4` (أو أكثر) للتعامل مع استدعاءات الواجهة المتزامنة. بدون ذلك، تُصطفّ الطلبات ويزداد زمن الاستجابة.
- ---
- ⚠️ تحذير: لا تملك واجهة Ollama أي مصادقة افتراضياً. إذا كشفتها لشبكتك (`OLLAMA_HOST=0.0.0.0`)، فيمكن لأي شخص على تلك الشبكة إرسال الطلبات وتحميل النماذج واستهلاك موارد GPU. للإعدادات متعددة المستخدمين أو الإنتاجية، ضع reverse proxy (nginx أو Caddy) مع مصادقة أمام Ollama — لا تكشف المنفذ 11434 مباشرة للإنترنت أبداً.
الأسئلة الشائعة حول واجهات نماذج LLM المحلية
هل أحتاج إلى تعديل شيفرة OpenAI الخاصة بي لاستخدام Ollama؟
لا. عيّن `base_url="http://localhost:11434/v1"` و `api_key="ollama"`. يبقى كل ما عداهما كما هو. إذا كانت لديك شيفرة تستخدم مكتبة OpenAI، فغيّر هذين السطرين وستعمل مع نموذجك المحلي.
هل يمكنني استخدام الواجهة من حاسوب آخر على شبكتي؟
نعم. افتراضياً، يستمع Ollama على localhost فقط. للسماح بالوصول عبر الشبكة، عيّن متغيّر البيئة `OLLAMA_HOST=0.0.0.0:11434` قبل تشغيل Ollama. ثم وجّه شيفرتك إلى `http://<عنوان-ip-الجهاز>:11434/v1`. انتبه للأمان -- استخدم جدار حماية إن كان الإعداد إنتاجياً.
هل يملك LM Studio واجهة متوافقة مع OpenAI؟
نعم. يكشف LM Studio عن واجهة متوافقة مع OpenAI على `http://localhost:1234/v1`. فعّلها في علامة التبويب Local Server، وحمّل نموذجاً، وانقر على Start Server. استخدم شيفرة Python أو Node.js نفسها التي تستخدمها مع Ollama -- مع تغيير المنفذ فقط (1234 بدلاً من 11434).
هل يمكنني استدعاء عدة نماذج في وقت واحد؟
إذا كانت محمَّلة في Ollama، فنعم. لكن انتبه إلى أن تشغيل نموذجين في وقت واحد يضاعف استخدام VRAM. يجب أن تتوفر لديك ذاكرة GPU كافية.
هل الواجهة مصادَق عليها؟
لا. افتراضياً، لا تملك واجهة Ollama أي مصادقة. يمكن لأي شخص لديه وصول إلى localhost:11434 استخدامها. للإنتاج مع الوصول عبر الشبكة، أضف المصادقة عبر reverse proxy (nginx مع Basic Auth، إلخ).
كيف أستخدم البث المتدفق مع واجهة OpenAI الخاصة بـ Ollama؟
عيّن stream=True في استدعائك لمكتبة OpenAI. يعيد Ollama server-sent events (SSE) مع كل token. في Python: for chunk in client.chat.completions.create(stream=True, ...): print(chunk.choices[0].delta.content).
هل يدعم Ollama استدعاء الدوال / استخدام الأدوات عبر الواجهة؟
نعم، للنماذج التي تدعمه (Llama 4 Scout و Qwen3 8B و Gemma 4 9B و Mistral Small 3.1). كما تدعمه النماذج الأقدم (Llama 3.3 8B و Qwen3 7B) أيضاً. مرّر tools=[] في استدعاء الواجهة كما تفعل مع OpenAI. يحلّل Ollama استدعاءات الأدوات ويعيد JSON منظَّماً. لا تدعمه كل النماذج -- اطّلع على توثيق النموذج.
ما هو MCP وكيف يرتبط بالواجهة المتوافقة مع OpenAI؟
MCP (Model Context Protocol) بروتوكول موحَّد لربط نماذج الذكاء الاصطناعي بالأدوات ومصادر البيانات الخارجية. يبنى على استدعاء الدوال — المعامل نفسه `tools=[]` الموضح في الأمثلة — لكنه يضيف بنية عميل-خادم قياسية تجعل الأدوات قابلة للاكتشاف وإعادة الاستخدام عبر التطبيقات. يدعم Ollama تفاعلات الأدوات بأسلوب MCP عبر endpoint استدعاء الدوال المتوافق مع OpenAI. للتكاملات البسيطة، تكفي أمثلة استدعاء الدوال في هذا المقال. ولسير العمل المعقدة متعددة الأدوات، يوفر MCP نهجاً أكثر تنظيماً.
ما الفرق بين /api/generate و /v1/chat/completions في Ollama؟
/api/generate هو endpoint Ollama الأصلي ذو الدور الواحد. أما /v1/chat/completions فهو endpoint المتوافق مع OpenAI متعدد الأدوار. استخدم /v1/chat/completions لجميع المشاريع الجديدة -- فهو يدعم سجل المحادثة ومتوافق مع مكتبات OpenAI.
هل يمكنني استخدام vLLM كواجهة متوافقة مع OpenAI؟
نعم. يشغّل vLLM خادماً متوافقاً مع OpenAI على http://localhost:8000/v1 افتراضياً. ابدأه بـ: python -m vllm.entrypoints.openai.api_server --model mistralai/Mistral-7B-v0.1. استخدم شيفرة العميل نفسها التي تستخدمها مع Ollama.
كيف أستخدم واجهة Ollama مع حزمة Node.js openai؟
استورد OpenAI من openai. عيّن baseURL: "http://localhost:11434/v1" و apiKey: "ollama" في المُنشئ. ثم استدعِ client.chat.completions.create() تماماً كما تفعل مع واجهة OpenAI الحقيقية -- دون أي تغييرات أخرى.
كيف أبدّل بين Ollama و OpenAI في الشيفرة نفسها؟
استخدم متغيّر بيئة: عيّن USE_LOCAL=true لـ Ollama (base_url http://localhost:11434/v1، api_key "ollama") و USE_LOCAL=false لـ OpenAI. تقبل مكتبة Python الخاصة بـ OpenAI الـ base_url كوسيط للمُنشئ. عيّن USE_LOCAL=false في الإنتاج للتبديل إلى OpenAI دون تعديل أي شيفرة أخرى.
هل يمكنني استخدام الواجهة المتوافقة مع OpenAI مع LangChain؟
نعم. استخدم ChatOpenAI مع base_url="http://localhost:11434/v1" و api_key="ollama". يحوّل ذلك Ollama إلى بديل مباشر لـ OpenAI في أي خط معالجة في LangChain -- تعمل سلاسل RAG والوكلاء والأدوات دون تعديل. كما يملك LangChain فئة ChatOllama مخصصة لميزات Ollama المحددة.
كيف أستخدم Aider مع نموذج محلي عبر Ollama أو LM Studio؟
وجّه Aider إلى خادمك المحلي المتوافق مع OpenAI عبر تعيين متغيّرَي البيئة OPENAI_API_BASE و OPENAI_API_KEY (أو خيارات CLI المكافئة) إلى http://localhost:11434/v1 (Ollama) أو http://localhost:1234/v1 (LM Studio)، مع أي سلسلة نصية كمفتاح. تملك Aider أيضاً دعماً أصلياً لـ Ollama عبر بادئة مزوّد خاصة بها -- راجع توثيق Aider للطريقة المفضَّلة حالياً.
هل يمكن لـ Cline أو Roo Code استخدام نماذج محلية عبر LM Studio أو Ollama؟
نعم. تتيح إضافتا VS Code كلتاهما خيار مزوّد OpenAI Compatible في الإعدادات. أدخل http://localhost:11434/v1 (Ollama) أو http://localhost:1234/v1 (LM Studio) كـ Base URL، وأي سلسلة نصية كمفتاح API، واسم النموذج الدقيق. Roo Code نسخة مشتقة من Cline وتستخدم نمط الإعداد نفسه.
المصادر
- Ollama. (2026). "Ollama OpenAI Compatibility." https://github.com/ollama/ollama/blob/main/docs/openai.md -- التوثيق الرسمي لـ endpoints REST المتوافقة مع OpenAI في Ollama.
- LM Studio. (2026). "LM Studio Local Server." https://lmstudio.ai/docs/local-server -- توثيق الخادم المحلي المتوافق مع OpenAI في LM Studio على localhost:1234.
- OpenAI. (2024). "OpenAI Python Library." https://github.com/openai/openai-python -- SDK الرسمي لـ Python المستخدم للاتصال بكل من OpenAI ونماذج LLM المحلية عبر تجاوز base_url.
- vLLM Team. (2024). "vLLM OpenAI-Compatible Server." https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html -- توثيق خادم الواجهة المتوافق مع OpenAI في vLLM (المنفذ 8000، الاستخدام الإنتاجي).
