أبرز النقاط
- Context windows combine prompt and completion, so long histories drain limits faster than expected.
- يتطلب التدفق التعامل مع أحداث SSE بعناية لتجنب تلف بيانات JSON أو فقدان الرموز.
- JSON mode demands strict schema adherence; malformed responses cause silent parsing failures.
- تعني الفوترة المشفرة المدفوعة مسبقًا أن الأخطاء مجانية، ولكن يجب أن يكون عدّ الرموز دقيقًا لتجنب المفاجآت.
لماذا قد يتم رفض مفتاح API الخاص بك
يتم رفض مفاتيح API عندما يرسل العميل رؤوسًا غير صالحة أو يتجاوز حدود حجم الطلب. يقوم الخادم بمصادقة رأس المصادقة قبل معالجة أي منطق. إذا كان الرأس مفقودًا أو يحتوي على مسافات زائدة، يفشل الطلب على الفور.
سبب شائع آخر هو إرسال حمولة تتجاوز حد حجم الجسم البالغ 8 ميجابايت. يمكن أن تتجاوز نوافذ السياق الكبيرة التي تحتوي على العديد من الرسائل هذا الحد بسهولة. تحقق من طول مصفوفة الرسائل وعدد الرموز المميزة قبل الإرسال.
- تأكد من أن رأس "Authorization" يستخدم بادئة "Bearer" بشكل صحيح.
- Verify the request body size stays under 8 MB.
- تحقق من أن مفتاح API نشط وغير منتهي الصلاحية.
فهم حدود نافذة السياق
تتضمن نافذة السياق كلًا من مطالبة الإدخال والإكمال المُولَّد. تدعم واجهة برمجة التطبيقات الخاصة بنا نافذة بحجم 100,000 رمز، ولكن يجب أن تأخذ في الاعتبار الجانبين. إذا أرسلت 80,000 رمز من السياق، فلن يتبقَّ لك سوى 20,000 رمز للاستجابة.
تحدد معظم النماذج حدًا صغيرًا للإخراج إذا لم تحدد max_tokens. قد يؤدي ذلك إلى اقتصار الإجابات الطويلة بشكل غير متوقع. اضبط max_tokens على الطول المطلوب فقط إذا كنت تريد تحديد حد أقصى. تذكر أن الحد ينطبق على الطلب بأكمله، وليس على النص فقط.
معالجة انقطاعات التدفق بشكل صحيح
يتطلب التدفق عبر أحداث الإرسال من الخادم (SSE) معالجة أخطاء قوية. إذا انقطع الاتصال، فقد تفقد الرمز النهائي أو بيانات الاستخدام. قم دائمًا بتخزين القطع الواردة في الذاكرة المؤقتة وأعد بناء الاستجابة الكاملة على جانب العميل.
عادةً ما تُرسَل بيانات استخدام الرمز في الشريحة الأخيرة من التدفق. إذا أغلقت الاتصال مبكرًا، فقد تفوتك عدد الرمز الدقيق. يؤثر هذا على دقة الفوترة في أنظمة الدفع المسبق. قم بتنفيذ آلية إعادة المحاولة مع زيادة الأسي للتعامل مع مشكلات الشبكة العابرة.
استخدم عميل تدفق مخصصًا يقوم بمعالجة تحليل SSE تلقائيًا. يقلل هذا من خطر حدوث أخطاء في التحليل ويضمن التقاط جميع البيانات.
أخطاء تحليل وضع JSON
عند استخدام response_format: {"type": "json_object"}، يجب أن يُرجع النموذج بيانات JSON صالحة. أي انحراف عن ذلك يسبب أخطاء في التحليل في تطبيقك. تأكد من أن الأمر يوجه النموذج صراحةً لإخراج بيانات JSON فقط.
أحيانًا يتضمن النموذج كتل كود Markdown حول بيانات JSON، مما يعطل المفسرات الصارمة. أزل أغطية قبل التحليل. أيضًا، تحقق من بنية JSON على جانب العميل قبل استخدام البيانات.
استخدم مكتبة للتحقق من صحة المخطط لاكتشاف الأخطاء مبكرًا. يمنع ذلك حدوث أعطال عند إرجاع النموذج لمفاتيح أو أنواع غير متوقعة.
مفاجآت في عدّ الرموز الفريدة والفوترة
تُفرض رسوم الفوترة المسبقة فقط على استخدام الرمز الفعلي. الأخطاء والرفض مجانيان، وهو ميزة كبيرة مقارنة بنماذج الاشتراك. ومع ذلك، يمكن أن يكون عد الرموز معقدًا إذا لم تأخذ في الاعتبار السياق بأكمله.
تُحتسب كل رسالة في سجل المحادثة ضمن حد رموز الإدخال. تستنفد المحادثات الطويلة رصيدك المدفوع مسبقًا بشكل أسرع مما قد تتوقع. راقب استخدامك بانتظام لتجنب نفاد الرصيد أثناء الجلسة.
قم بإعداد تنبيهات لوجود رصيد منخفض. يضمن ذلك إمكانية تعبئة الرصيد قبل فشل طلباتك. تذكر أن الرصيد لا ينتهي، لذا يمكنك تعبئته في الوقت الذي يناسبك.
تجنّب الرفض اللطيف في مطالبات NSFW
تحدث الرفض اللطيف عندما يتردد النموذج أو يقدم إجابة جزئية بدلاً من رد مباشر. يحدث هذا غالبًا مع المواضيع المثيرة للجدل أو المواضيع البالغة. حتى في النموذج غير الخاضع للرقابة، يمكن أن تؤدي بعض المحفزات إلى التردد.
عدّل معلمة temperature لتقليل العشوائية. تجعل درجة الحرارة الأقل النموذج أكثر حتمية وأقل عرضة للتردد. أيضًا، تأكد من أن طلبك واضح ومباشر. تجنب اللغة الغامضة التي قد تربك النموذج.
إذا واجهت رفضًا ناعمًا متكررًا، حاول إعادة صياغة الطلب قليلاً. غالبًا ما يمكن للتغييرات الطفيفة في الصياغة تجاوز التردد والحصول على إجابة مباشرة.
ارتفاعات حد معدل الطلب واستراتيجيات الإرجاع
تسمح الـ API بـ 300 طلب في الدقيقة و8 طلبات متزامنة لكل مفتاح. يمكن أن تؤدي الارتفاعات المفاجئة في حركة المرور إلى تجاوز هذه الحدود بسرعة. قم بتنفيذ آلية إعادة المحاولة الأسية للتعامل مع أخطاء حد المعدل بشكل سلس.
عندما تتلقى رمز الحالة 429، انتظر قبل إعادة المحاولة. ابدأ بتأخير قصير وزدده مع كل محاولة إعادة. هذا يمنع إرباك الخادم خلال أوقات الذروة.
راقب معدل طلباتك وعدّل مستويات التزامن وفقًا لذلك. إذا كنت تُقدّم العديد من الطلبات المتزامنة، فكّر في توزيعها على فترات زمنية. يضمن ذلك معدل تدفق مستقر دون تجاوز الحدود.
هياكل حمولة استدعاء الوظائف
يتطلب استدعاء الوظائف بنية حمولة محددة. عرّف وظائفك في معلمة tools وحدد tool_choice. سيعيد النموذج استدعاء وظيفة إذا قرر أن ذلك هو الاستجابة المناسبة.
تأكد من أن تعريفات الوظائف دقيقة وكاملة. يمكن أن يؤدي فقدان المعاملات أو أنواعها غير الصحيحة إلى توليد النموذج لاستدعاءات غير صالحة. تحقق دائمًا من معلمات استدعاء الوظيفة قبل تنفيذها.
استخدم معلمة tool_choice للتحكم في توقيت استدعاء النموذج للدوال. يمكنك إجبار استدعاء دالة، أو ترك النموذج يقرر، أو تعطيل استدعاء الدوال تمامًا. يمنحك هذا تحكمًا دقيقًا في سلوك النموذج.
تصحيح أخطاء 400 مقابل أخطاء 500
تشير أخطاء 400 إلى مشكلات على جانب العميل، مثل تنسيق JSON غير صالح أو معلمات مفقودة. وتشير أخطاء 500 إلى مشكلات على جانب الخادم، مثل الأخطاء الداخلية أو انتهاء المهلة الزمنية. يساعد التمييز بين النوعين على تصحيح الأخطاء بسرعة أكبر.
بالنسبة لأخطاء 400، تحقق من رسالة الخطأ المقدمة في الاستجابة. عادةً ما تشير مباشرة إلى المشكلة. بالنسبة لأخطاء 500، أعد محاولة الطلب بعد فترة انتظار قصيرة. إذا استمر الخطأ، تواصل مع فريق الدعم مع معرف الطلب.
سجّل تفاصيل الطلب والاستجابة لكل خطأ. يساعد ذلك في تحديد الأنماط والمشكلات المتكررة. استخدم خدمة تسجيل لتتبع الأخطاء بمرور الوقت وتحسين تكامل واجهة برمجة التطبيقات (API) الخاصة بك.