افصل بين إعادة المحاولة والاسترجاع
ترسل إعادة المحاولة الطلب إلى المسار نفسه مرة أخرى لأن الإخفاق قد يكون مؤقتًا. أما الاسترجاع فيغيّر مزوّد الخدمة أو النموذج لأن المسار الأصلي غير متاح أو غير مناسب.
يؤدي التعامل مع الإجراءين باعتبارهما حلقة عامة واحدة لإعادة المحاولة إلى صعوبة تشخيص الحوادث، وقد يضاعف التكلفة دون تحسين معدل النجاح.
- إعادة المحاولة: انتهاء المهلة، أو إعادة ضبط الاتصال، أو 429، أو استجابة 5xx مؤقتة.
- الاسترجاع: إخفاق متكرر لدى المزوّد، أو مشكلة في سعة النموذج، أو قيد متعلق بالسياسات.
- الإيقاف: طلب غير صالح، أو معلمة غير مدعومة، أو فشل في التحقق من المخرجات.
أنشئ جدول توجيه متوافقًا مع القدرات
ينبغي تجميع نماذج الاسترجاع حسب القدرة وليس حسب العلامة التجارية. فلا يمكن لطلب يتضمن رؤية حاسوبية أن يسترجع نموذجًا نصيًا فقط، كما ينبغي ألا يُوجَّه سير عمل صارم يعتمد على JSON إلى نموذج ينتهك المخطط بانتظام.
- أنماط الإدخال والإخراج المطلوبة.
- الحد الأدنى لطول السياق والمخرجات.
- دعم استدعاء الأدوات والمخرجات المهيكلة.
- الحد الأقصى المقبول للسعر ووقت الاستجابة.
طبّق ميزانية واحدة على مستوى الطلب
ينبغي أن تغطي ميزانية الطلب كل محاولة لإعادة المحاولة وكل محاولة استرجاع. وقبل بدء محاولة أخرى، تحقّق مما إذا كانت الميزانية المتبقية لوقت الاستجابة والتكلفة قادرة على دعمها.
const routePolicy = {
maxAttempts: 3,
maxLatencyMs: 18_000,
maxEstimatedCost: 0.12,
retryOn: [408, 429, 500, 502, 503, 504],
fallbackModels: ['primary-model', 'quality-fallback', 'fast-fallback'],
};قِس جودة الاسترجاع، وليس التوافر فقط
قد يظل الطلب الذي يعيد استجابة ناجحة إخفاقًا على مستوى المنتج. تتبّع التحقق من المخرجات، ومعدل تصحيح المستخدم، وإتمام المهمة بعد وقوع حدث استرجاع.
لوحة المعلومات الموصى بها: نجاح المسار، ومعدل الاسترجاع، ووقت الاستجابة p95، والتكلفة المقدّرة، ومعدل اجتياز التحقق، ودرجة الجودة حسب النموذج.
