اگر امروز اپلیکیشنی میسازید که از چندین مدل هوش مصنوعی استفاده میکند، احتمالاً با این واقعیت تلخ روبرو شدهاید که مدلها بهسادگی قابل جایگزینی نیستند. عبارت «مدلها قابل جایگزینی نیستند» به این معناست که حتی اگر دو مدل از نظر قدرت مشابه باشند، نحوه واکنش آنها به دستورات متفاوت است. بسیاری از توسعهدهندگان برای راحتی از درگاههای سازگار با OpenAI (OpenAI-compatible gateways) مانند CometAPI استفاده میکنند تا تمام درخواستها را از یک مسیر عبور دهند. این درگاهها به توسعهدهندگان اجازه میدهند درخواستها را از طریق یک ادغام واحد به ارائهدهندگان مختلف هدایت کنند. اما این راحتی اغلب یک تله است؛ چرا که این لایه Convenience، شکستهای بحرانی در مدیریت دستورات (Instruction Handling) و فراخوانی ابزارها (Tool Calls) را پنهان میکند. استفاده از یک کلاینت API مشترک، سادهترین بخش یک اپلیکیشن چند-مدلی است، اما بخش دشوار آن اطمینان از این است که تغییر مدل، بهطور نامحسوس نحوه پردازش دستورات را تغییر ندهد، فراخوانی ابزارها را خراب نکند یا یک درخواست ارزان را به یک حلقه تکرار (Retry Loop) گرانقیمت تبدیل نکند.
در ادامه پوششهای قبلی ما درباره نحوه ردیابی فعالیتهای وب توسط OpenAI از طریق جمعکننده تبلیغاتش، میبینیم که صنعت به سمت پشتههای (Stacks) ماژولار و مستقل از ارائهدهنده حرکت میکند. برای یک توسعهدهنده مدرن، هدف این است که منطق برنامه را از ویژگیهای خاص و عجیب API هر ارائهدهنده جدا کند و با درگاه (Gateway) به عنوان یک لایه ترجمه برخورد کند، نه به عنوان یک راهکار جادویی. این رویکرد با خارج کردن جزئیات ادغام ارائهدهنده از منطق برنامه، هزینههای نگهداری SDK را کاهش میدهد.
سازوکار فنی درگاهها
یک درگاه سازگار با OpenAI با احراز هویت درخواستهای ورودی و خواندن شناسه مدل (Model Identifier) عمل میکند. درگاه این شناسه را به یک مقصد بالادستی (Upstream Destination) ترجمه کرده و بدنه درخواست که در قالب OpenAI است را به طرحواره (Schema) بومی آن ارائهدهنده تبدیل میکند. سپس درخواست را با استفاده از احراز هویت مناسب برای آن ارائهدهنده ارسال میکند.
در مسیر بازگشت، درگاه پاسخ را دوباره به شکلی تبدیل میکند که کلاینت انتظار دارد. این تبدیل شامل محتوا، میزان مصرف توکن (Token) — که تکههای کوچکی از متن و شبیه برشهای یک کیک طولانی است — و دلایل توقف تولید متن (Finish Reasons) در صورت پشتیبانی است. این سازوکار به اپلیکیشن اجازه میدهد تا بدون نیاز به نگهداری پارسرهای مجزا برای هر ارائهدهنده، مقدار response.choices[0].message.content را بخواند.

جزئیات پیادهسازی
برای اجرای این ساختار، برنامه باید آدرس URL درگاه، اعتبارنامه (Credential) درگاه و شناسه مدل را فراهم کند. در SDK پایتون، پیکربندیهای مربوطه base_url و api_key هستند. کلاینت JavaScript/TypeScript نیز از baseURL استفاده میکند.
بسیار حیاتی است که اعتبارنامه متعلق به همان نقطهی انتهایی (Endpoint) باشد که درخواست را دریافت میکند؛ اشاره به یک درگاه در حالی که کلید یک ارائهدهنده نامرتبط را حفظ کردهاید، کافی نیست. سرویسهای یکپارچهای مانند CometAPI در اینجا اهمیت مییابند زیرا چندین ارائهدهنده را از طریق یک ادغام واحد در دسترس قرار میدهند. برای کسانی که قصد پیادهسازی چنین ساختاری را دارند، استفاده از یک قالب FastAPI برای یکپارچهسازی APIهای متناقض میتواند نقطه شروع مناسبی برای مدیریت این پیچیدگیها باشد.
مثال پیادهسازی با بسته رسمی openai در پایتون:
import os
from openai import OpenAI
client = OpenAI(
base_url=os.environ["AI_BASE_URL"],
api_key=os.environ["AI_API_KEY"],
)
# Reasoning task
reasoning_response = client.chat.completions.create(
model=os.environ["AI_REASONING_MODEL"],
messages=[
{"role": "system", "content": "You are a precise technical assistant."},
{"role": "user", "content": "Analyze this system architecture for latency bottlenecks."},
],
)
# Documentation task
document_response = client.chat.completions.create(
model=os.environ["AI_DOCUMENT_MODEL"],
messages=[
{"role": "user", "content": "Refine this technical documentation for clarity."},
],
max_tokens=1000,
)
ریسکهای ادغام و ضرورت تست
به گزارش تحلیلگران زیرساخت، مزایای ادغام به این معنا نیست که هر پارامتری روی هر مسیری کار میکند. برای مثال، درخواستی با max_tokens=1000 باید توسط درگاه بهدرستی پشتیبانی و به مدل بالادستی ترجمه شود. اگر پارامتری در حین ترجمه ناپدید شود، شناسایی آن بسیار سختتر از یک خطای اعتبارسنجی صریح است.
توسعهدهندگان نباید فرض کنند که تنظیماتی مانند temperature=0.2 توسط هر مدل استدلالی پذیرفته میشود. هر مسیر نیاز به تست مجزا برای کنترلهای دما و ساختارهای پیام سیستمی (System-message) دارد. پارامترهای پشتیبانینشده بسته به نوع درگاه ممکن است رد شوند، نگاشت شوند یا حذف شوند؛ هیچکدام از این رفتارها را نباید بدون بازرسی، ایمن فرض کرد.
چرخه عمر مدلها و ادعاهای عملکردی
سیاستهای مسیریابی هرگز نباید بر اساس اعلانهای عرضه یا جداول قیمت قدیمی باشد. نام عمومی مدل یک ارائهدهنده و شناسه مسیریابی یک درگاه اغلب متفاوت است. ابتدا باید شناسه دقیق مدل در درگاه، در دسترس بودن، پارامترهای پشتیبانیشده، محدودیتهای کانتکست و قیمت فعلی را تأیید کنید.
یک نمای کلی از مدلهای پرچمدار در جولای ۲۰۲۶ را در نظر بگیرید:
- GPT-5.5 (گزارش شده در آوریل ۲۰۲۶): به عنوان یک مدل پرچمدار استدلالی و عاملمحور (Agentic) معرفی شده است. این مدل ادعای کانتکست ورودی حدود ۱.۰۵ میلیون توکن و حداکثر خروجی ۱۲۸ هزار توکن را دارد. ادعاهای ارزیابی شامل Terminal-Bench 2.0: ۸۲.۷٪، Expert-SWE: ۷۳.۱٪، GDPval: ۸۴.۹٪ و FrontierMath Tiers 1–3: ۵۱.۷٪ است. قیمت آن برای سطح استاندارد تقریباً ۵ دلار برای هر میلیون توکن ورودی و ۳۰ دلار برای هر میلیون توکن خروجی است. این مدل از استدلال، استفاده از ابزار و استفاده از کامپیوتر (Computer Use) پشتیبانی میکند.
- Claude Sonnet 5 (گزارش شده در ژوئن ۲۰۲۶): به عنوان عاملمحورترین نسخه Sonnet معرفی شده که به عملکرد کلاس Opus با هزینه کمتر نزدیک میشود. این مدل ادعای کانتکست ورودی ۱ میلیون توکن (پیشفرض و حداکثر) و حداکثر خروجی ۱۲۸ هزار توکن را دارد. هدف آن سنتز اسناد طولانی، تحلیلهای حقوقی/مالی و نرخ پایین توهم (Hallucination) و چاپلوسی (Sycophancy) است. قیمت تشویقی آن تا ۳۱ اوت ۲۰۲۶، ۲ دلار برای ورودی و ۱۰ دلار برای خروجی است و پس از آن به ۳ دلار ورودی و ۱۵ دلار خروجی تغییر میکند.
این ادعاها باید با مستندات رسمی تأیید شوند. برای مثال، در این بازه زمانی ذکر شده که خطوط Instant/Thinking/Pro مدل GPT-5.2 در ژوئن ۲۰۲۶ بازنشسته شدند و ترافیک آنها به GPT-5.5 منتقل شد. نسخههای قدیمیتر مانند gpt-5-chat-latest لایههای سبک و غیر استدلالی بودند.
مسیریابی بر اساس هزینه و کیفیت
مسیریابی موثر با تحلیل ماهیت کار شروع میشود: پیچیدگی پرامپت، کانتکست مورد نیاز، قرارداد خروجی، بودجه تأخیر و هزینه قابل قبول. یک مدل استدلالی پرچمدار اغلب برای کارهای طبقهبندی با حجم بالا غیرضروری است. برعکس، یک مدل بزرگ متمرکز بر اسناد ممکن است برای تولید کدهای محدود، بیش از حد گران و سنگین باشد.
معیارهای مسیریابی باید بر اساس موارد زیر باشد:
- کیفیت تسک: آیا مدل قرارداد خروجی را برآورده میکند؟
- تأخیر (Latency): زمان تا اولین توکن و زمان کل تکمیل.
- مصرف: میزان استفاده از توکن و اعتبار JSON/Schema.
- قابلیت اطمینان: مدیریت کانتکست و رفتار در زمان شکست (Fallback).
معیار اصلی موفقیت، «هزینه به ازای هر تسک موفق» است که شامل هزینه شکستها و تلاشهای مجدد نیز میشود.
ابزارها و خروجیهای ساختاریافته
پاسخهای چت نرمالشده، سازگاری در استفاده از ابزار (Tool Use) را تضمین نمیکنند. تعاریف ابزار در OpenAI، استفاده از ابزار در Anthropic و طرحوارههای فراخوانی تابع در Google تفاوتهای شدیدی دارند، بهویژه در مورد محدودیتهای انتخاب ابزار و طرحوارههای پیچیده تودرتو. در این راستا، برای کسانی که میخواهند مدلهای متنوعتر را در محیطهای توسعه به کار بگیرند، روش یکپارچهسازی مدلهای پیشرو چینی در ابزارهایی مانند Cursor و Claude Code میتواند راهکاری برای گسترش قابلیتهای ابزاری باشد.
- ترجمه دستورات: API پیامهای Anthropic انتظار یک پارامتر سیستم در سطح بالا را دارد، در حالی که OpenAI دستورات سیستم را در آرایه پیامها حمل میکند. درگاه باید اینها را بدون از دست دادن معنا ترجمه کند.
- اعتبارسنجی طرحواره: دریافت یک JSON از نظر نحوی معتبر، به معنای برآورده کردن یک طرحواره مورد نیاز نیست. اعتبارسنجی طرحواره باید یک معیار موفقیت اصلی در هنگام مقایسه مدلها باشد.
- ویژگیهای اختصاصی: کنترلهای بایاس توکن (Token-bias) یا گزینههای تعدیل (Moderation) خاص هر ارائهدهنده ممکن است در یک رابط مشترک معادل نداشته باشند. اگر اینها مورد نیاز هستند، ادغام مستقیم با ارائهدهنده یا یک مکانیسم Pass-through مستند شده ضروری است.
تأخیر و مدیریت استریمینگ
یک درگاه استریمینگ باید رویدادهای بالادستی را به رویدادهای سازگار با OpenAI (مانند data: {...}) تبدیل کرده و آنها را بهصورت افزایشی ارسال کند. بافر کردن کل پاسخ قبل از ارسال، هدف استریمینگ را از بین میبرد.
اهداف سربار پردازشی برای درگاهها معمولاً بین ۵ تا ۳۰ میلیثانیه است (بدون احتساب زمان انتقال بالادستی). با این حال، یک گام شبکه اضافی، اثرات جغرافیایی و مدیریت اتصال را معرفی میکند. توسعهدهندگان باید موارد زیر را بهطور مجزا اندازهگیری کنند:
- زمان پردازش درگاه.
- زمان انتقال شبکه.
- زمان مدل تا اولین توکن.
- زمان کل تکمیل.
مدیریت خطاها و نرمالسازی
نرمالسازی خطاها تنها زمانی مفید است که اطلاعات تشخیصی را حفظ کند. اگر یک درگاه هر شکست بالادستی را به یک خطای کلی ۵۰۲ (Bad Gateway) یا ۵۰۰ (Internal Server Error) تبدیل کند، اپلیکیشن نمیتواند تفاوت بین یک بدنه درخواست اشتباه، محدودیت نرخ (Rate Limit) و قطعی سرویس را تشخیص دهد.
مثالهایی از خطاهای متمایزی که باید حفظ شوند:
- 400 Bad Request: اغلب برای رد درخواستهای مربوط به مسائل ایمنی استفاده میشود.
- 422 Unprocessable Entity: اغلب برای تخلفات مربوط به کانتکست استفاده میشود.
- 429 Too Many Requests / 503 Service Unavailable: شرایط گذرا که نیاز به تلاش مجدد صریح یا تغییر مدل دارند.
یک سیستم جایگزین (Fallback) تا زمانی که در محیط Staging شبیهسازی نشود و الزامات خروجی تسک را برآورده نکند، اثبات نشده است. استقرار در چندین منطقه (Multi-region) و Failover خودکار میتواند ریسک را کاهش دهد، همانطور که یک کلاینت ثانویه که مستقیماً ارائهدهنده را فراخوانی میکند میتواند مفید باشد (هرچند این مسیر بایپاس باید بهطور مستقل تست شود).
چکلیست آمادگی برای تولید (Production)
قبل از افزایش ترافیک، تأیید کنید که هر مسیر احراز هویت شده و از یک شناسه مدل بهروز استفاده میکند. برای اعتبارنامههایی که کنترل میکنید، این موارد را پیاده کنید:
- دسترسی با کمترین امتیاز (Least-privilege) و رویههای چرخش کلید.
- هشدارهای صورتحساب و محدودیتهای مصرف.
- تأیید قرارداد گاو (Vault) درگاه برای مدل «کلید خودتان را بیاورید» (Bring-your-own-key).
قابلیت مشاهده (Observability) باید تأخیر و مصرف توکن را به مسیر و اعتبارنامه خاص مورد استفاده نسبت دهد. اگر درگاه هدرهای تشخیصی را ارائه میدهد، پشته لاگ باید آنها را تجزیه کند. تستهای ادغام روزانه باید پرامپتهای سیستم، طرحوارههای ابزار، محدودیتهای خروجی، پشتیبانی از دما، استریمینگ و ترجمه خطاها را پوشش دهند تا از پسرفتهای (Regressions) خاموش جلوگیری شود.
این رویکرد معماری کار ادغام را کاهش میدهد اما به یک مجموعه تست منضبط نیاز دارد. یک نقطه انتهایی یکپارچه تنها زمانی جایگاه خود را به دست میآورد که تفاوتهایی را که اپلیکیشن به آنها وابسته است، پنهان نکند. برای بهینهسازی بیشتر پشته خود، انحراف در مصرف توکن را هنگام تغییر مدلها مانیتور کنید، زیرا تغییر مدل میتواند هزینهها را حتی در صورت ثابت ماندن حجم درخواستها، تغییر دهد.




گفتگو