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