# التوافق مع OpenAI وOllama

> كيف تبقى خدمة LMSP متوافقة مع عملاء OpenAI وOllama الحاليين عبر طبقة رقيقة لتحويل البيانات فوق نواة تنفيذ واحدة، وأين ينتهي هذا التوافق.

Source: https://madeforagent.com/ar/lmsp/1.0/compatibility/
Language: ar
Specification: LMSP 1.0 (draft)
Updated: 2026-11-08

## 8.1 نقاط النهاية المتوافقة مع OpenAI {#openai}

**ينبغي** للخدمة أن تعرض واجهة متوافقة مع OpenAI إلى جانب واجهة LMSP، وأن تعلنها في `interfaces` بـ `kind` يساوي `openai`. ولتغطية العملاء الحاليين، **يجب** على الخدمة التي تفعل ذلك أن تنفّذ هذه النقاط على الأقل تحت البادئة `/v1`:

| نقطة النهاية | ملاحظات |
| --- | --- |
| `GET /v1/models` | يسرد نماذج فهرس LMSP. وكل `id` هو معرّف نموذج LMSP. |
| `POST /v1/chat/completions` | Chat Completions، بالبث وبدونه. |
| `POST /v1/responses` | شكل OpenAI Responses. |
| `POST /v1/embeddings` | ليس في الواجهة الأساسية لـ LMSP 1.0 نقطة نهاية للتضمينات. ويخدم المحوّل هذه النقطة مباشرةً للنماذج التي تكون `capabilities.embeddings` فيها `true`. |

تقبل هذه النقاط رموز Bearer نفسها التي تقبلها واجهة LMSP. والعميل الذي يتحدث بروتوكول OpenAI يضبط رمز LMSP بوصفه مفتاح API الخاص به.

يمكن أن يبدأ التنفيذ الأول بـ `/v1/models` و`/v1/chat/completions` ([الصفحة 12](https://madeforagent.com/ar/lmsp/1.0/mvp.md)).

## 8.2 نقاط النهاية المتوافقة مع Ollama {#ollama}

**ينبغي** للخدمة أن تقدّم أيضًا هذه النقاط، لتعمل كذلك العملاء المكتوبون لـ Ollama:

| نقطة النهاية | ملاحظات |
| --- | --- |
| `GET /api/tags` | يسرد نماذج فهرس LMSP. |
| `POST /api/chat` | محادثة. |
| `POST /api/generate` | توليد نص بسيط. |

تعلن الخدمة التي تقدّمها واجهةً بـ `kind` يساوي `ollama`.

## 8.3 نواة تنفيذ واحدة {#core}

**يجب** أن تقتصر طبقة التوافق على تحويل البيانات. و**لا يجوز** لها أن تنشئ مجموعة ثانية من منطق إدارة النماذج. فالطلب على واجهة توافق يُربط باستجابة LMSP، ويعمل على النواة والمحوّل نفسيهما اللذين يعمل عليهما الطلب الأصلي، ويستخدم فهرس النماذج والمصادقة نفسيهما.

```text
OpenAI Chat Completions
          |  ربط الطلب
          v
     LMSP Response
          |  التكيّف مع الواجهة الخلفية
          v
llama.cpp / Ollama / vLLM / بيئات تشغيل أخرى
```

على نقاط النهاية `/v1` و`/api`، **ينبغي** للخدمة أن تبلغ عن الأخطاء بالصيغة التي تحددها الواجهة البرمجية المقابلة، لكي يستطيع العملاء غير المعدَّلين تحليلها. أما واجهة LMSP فتستخدم دائمًا `application/problem+json`.

## 8.4 الحدود {#boundaries}

للتوافق حدود، ومن المفيد ذكرها بوضوح:

- العميل الحالي المتوافق مع OpenAI لا يحتاج عادةً إلا إلى تغيير `base_url`. ولا يكتسب اكتشاف LMSP تلقائيًا.
- العملاء الذين يدعمون LMSP وحدهم يستطيعون اكتشاف الخدمة تلقائيًا، وقراءة قدراتها التفصيلية، واستئناف تدفقات الأحداث، وإدارة المهام غير المتزامنة.
- لا يستطيع أي بروتوكول من جهة الخادم أن يجعل عميلًا يعمل إذا كان لا يقبل الإعداد ولا يقبل إلا العناوين السحابية الرسمية.
