تنسيق استجابة الخطأ
تُعد Chat Completions وResponses وMessages وGemini حدود بروتوكول عامة وليست واجهات Web. لا تُلف أخطاء البروتوكول الأصلي في غلاف Web مثل{ success, data, error }. المثال التالي يخص أخطاء gateway المتوافقة مع OpenAI في Chat وResponses:
message وtype، بينما code وparam وحقول الإرشاد اختيارية. تستخدم Messages وGemini عائلات الخطأ الأصلية الخاصة بهما. تُحفظ أخطاء validation القادمة من upstream عندما يمكن إعادتها بأمان؛ ولا يؤدي 400/422 حتمي إلى تبديل القناة، ولا تحدث إعادة المحاولة بعد تسليم أول بايت.
رموز حالة HTTP
أنواع الأخطاء
أخطاء المصادقة (401)
أخطاء الدفع (402)
أخطاء الوصول (403)
أخطاء التحقق (400)
model_not_found.
أخطاء حد المعدل (429)
عند تجاوز حدود المعدل:Retry-After وحقل retry_after إلى عدد الثواني الدقيق للانتظار قبل إعادة المحاولة.
الحِمل أكبر من المسموح (413)
عندما يتجاوز حجم الإدخال أو الملف الحدود:- ملف صورة كبير جدًا (الحد الأقصى 20MB)
- ملف صوتي كبير جدًا (الحد الأقصى 25MB)
- نص الإدخال يتجاوز طول سياق النموذج
أخطاء المزود الأعلى (502، 503)
عندما تفشل كل القنوات، تتضمن الاستجابة نماذج بديلة:
معالجة الأخطاء في Python
معالجة الأخطاء في JavaScript
أفضل الممارسات
تنفيذ التراجع الأسي
تنفيذ التراجع الأسي
عند تقييد المعدل، انتظر فترات أطول تدريجيًا بين محاولات إعادة المحاولة:
تعيين مهلات زمنية
تعيين مهلات زمنية
دائمًا قم بتعيين مهلات زمنية معقولة لتجنب الطلبات المعلقة:
تسجيل الأخطاء لأغراض التصحيح
تسجيل الأخطاء لأغراض التصحيح
سجّل استجابة الخطأ الكاملة بما في ذلك معرف الطلب للدعم:
معالجة الأخطاء الخاصة بالنماذج
معالجة الأخطاء الخاصة بالنماذج
بعض النماذج لها متطلبات محددة (مثل max tokens، تنسيقات الصور).
تحقق من صحة المدخلات قبل إرسال الطلبات.