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

8.1 نقاط النهاية المتوافقة مع 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).

8.2 نقاط النهاية المتوافقة مع Ollama

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

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

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

8.3 نواة تنفيذ واحدة

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

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

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

8.4 الحدود

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

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