التوافق مع OpenAI وOllama
- معيارية
- مسودة 1.0
- آخر تحديث
- عرض بصيغة Markdown
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 وحدهم يستطيعون اكتشاف الخدمة تلقائيًا، وقراءة قدراتها التفصيلية، واستئناف تدفقات الأحداث، وإدارة المهام غير المتزامنة.
- لا يستطيع أي بروتوكول من جهة الخادم أن يجعل عميلًا يعمل إذا كان لا يقبل الإعداد ولا يقبل إلا العناوين السحابية الرسمية.