«متوافق مع OpenAI» (OpenAI-compatible) يعني أن خدمة ما تنفّذ بالضبط نفس صيغة طلب واستجابة Chat Completions الخاصة بشركة OpenAI — نفس الحقول، نفس بنية JSON، ونفس طريقة المصادقة عبر ترويسة Authorization: Bearer. ولأن هذا العقد أصبح أول وأكثر معيار استخداماً في سوق الذكاء الاصطناعي التوليدي، تُبنى اليوم معظم حزم SDK والمكتبات والأدوات مفتوحة المصدر على هذه الصيغة نفسها — ليس لأن OpenAI وحدها جيدة، بل لأن الجميع اتفقوا على لغة مشتركة.
ماذا يعني هذا بالنسبة للمطوّر؟
أي أن الكود الذي كتبته مرة واحدة لهذا العقد (Contract) يعمل على أي خدمة أخرى تطبّق العقد نفسه، بتغيير شيئين فقط — عنوان القاعدة (base URL) ومفتاح API — دون تغيير منطق البرنامج. كودك لن يُقفل على مزوّد واحد بعينه.
أين المثال الحقيقي لهذا النمط؟
OpenRouter — أحد مزوّدي الخدمة خلف تطبيق الذكاء الاصطناعي في Abrak — طبّق النمط نفسه تمامًا للوصول إلى مئات النماذج المختلفة: عقد ثابت واحد، ونماذج متنوعة خلفه.
كيف يُستخدم هذا في Abrak؟
نقطة الاتصال /ai/v1/chat/completions في تطبيق الذكاء الاصطناعي من Abrak ينفّذ هذا العقد نفسه تمامًا. أي أن كل كود يعمل اليوم مع OpenAI، سواء سكربت Python أو أتمتة n8n أو بوت داخلي، يعمل بتغيير العنوان الأساسي والمفتاح (اللذين من محفظة الذكاء الاصطناعي الخاصة بي يُصدَر)، ويعمل على محفظة Abrak بالريال أيضًا؛ دون إعادة كتابة ودون بطاقة مصرفية أجنبية.
هل له أي قيود؟
لا يمكن استخدام سوى القدرات التي يغطيها بروتوكول Chat Completions نفسه (توليد نص بناءً على محادثة)؛ أما الميزات الخاصة جداً بمزوّد واحد والخارجة عن هذا البروتوكول القياسي فقد لا تكون متاحة بالتساوي في كل مكان. بالنسبة لمعظم الاستخدامات التجارية — الكتابة والتلخيص والرد — لا يشكّل هذا أي قيد.
لمشاهدة النماذج والبدء: صفحة الذكاء الاصطناعي ومحفظة Abrak.
نگاشت درخواستها؛ چه چیزی عوض میشود و چه چیزی نه
«سازگار با OpenAI» یعنی مسیر و شکل درخواست یکسان است، نه اینکه همهٔ قابلیتها یکساناند. در عمل فقط دو چیز عوض میشود: آدرس پایه و کلید.
| بخش | در سرویس اصلی | در سرویس سازگار | نیاز به تغییر کد |
|---|---|---|---|
| آدرس پایه (base URL) | دامنهٔ ارائهدهنده | دامنهٔ سرویس داخلی | یک خط تنظیمات |
| کلید احراز هویت | کلید ارائهدهنده | کلید سرویس داخلی | یک متغیر محیطی |
| مسیر تکمیل گفتگو | /v1/chat/completions | همان مسیر | ندارد |
| نام مدل | شناسهٔ مدل ارائهدهنده | شناسهٔ مدل میزبانیشده | یک رشته |
| پاسخ جریانی (streaming) | پشتیبانی | معمولاً پشتیبانی | ندارد |
| قابلیتهای اختصاصی ارائهدهنده | موجود | ممکن است نباشد | باید بررسی شود |
سه چیزی که پیش از مهاجرت باید تست کنید
- فراخوانی ابزار (tool/function calling): رایجترین جایی که سازگاری ناقص است؛ اگر برنامهتان به آن تکیه دارد، اول همین را امتحان کنید.
- پنجرهٔ متن و محدودیت توکن: مدل میزبانیشده ممکن است پنجرهٔ کوچکتری داشته باشد و درخواستهای بلند شما را رد کند.
- رفتار در خطا و محدودیت نرخ: کد وضعیت و ساختار خطا را بررسی کنید تا منطق تلاش مجدد برنامه سالم بماند.
الگوی مشابه در سمت ابزارها با MCP پیاده میشود؛ تفاوت این دو رویکرد در MCP یا API سنتی آمده است. برای دسترسی ریالی به مدلها بدون کارت خارجی هم راهنمای دسترسی به GPT، Claude و Gemini و صفحهٔ هوش مصنوعی ابرک را ببینید.