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

  • غالباً ما تُسقط المعاملات المجهولة بصمت بدلاً من رفضها بخطأ 400.
  • قد تتطلب نماذج الاستدلال استخدام `max_completion_tokens` بدلاً من `max_tokens`، مع قبول غير متسق.
  • إحصائيات استخدام الرموز (Tokens) غائبة غالباً من استجابات التدفق ما لم يُطلب صراحةً عبر `stream_options`.
  • يختلف دعم استدعاء الأدوات بشكل كبير، حيث تفتقر العديد من الخوادم إلى المكالمات المتوازية الأصلية أو الالتزام الصارم بالمخططات.
  • تختلف تطبيقات وضع JSON بين التحقق الأساسي من الكائنات والفك المقيد باستخدام المخططات.
  • تتراوح معالجة تجاوز السياق من أخطاء 400 القاسية إلى الاقتطاع الصامت لرسائل النظام.
  • تتضمن قيم `finish_reason` إضافات خاصة بالمزود تتجاوز القيم القياسية مثل stop وlength وtool_calls.
  • تختلف أغلفة الأخطاء واستجابات تحديد المعدل (429، 503، أو 200 مع أخطاء في الجسم) بشكل غير متسق.
  • قد يتم تجاهل إعدادات درجة الحرارة على نماذج الاستدلال داخلياً رغم قبولها.
  • يختلف التعامل مع المدخلات متعددة الوسائط من حيث حدود الحجم وأنواع MIME ومعامل `detail`.
  • تفتقر نقاط نهاية التضمين (Embedding endpoints) إلى قابلية النقل بسبب اختلاف الأبعاد والتطبيع.
  • نادرًا ما يتم دعم مفاتيح المحايدة (Idempotency keys)، وتستخدم رؤوس معرف الطلب تسميات غير متسقة.

يوصي المؤلف باستخدام سكريبت فحص لاختبار امتثال المزود لهذه السلوكيات المحددة، حيث تتغير إصدارات النماذج بشكل متكرر ويمكن أن تكون الإخفاقات الصامتة صعبة التصحيح في بيئة الإنتاج.