المرجع
الأخطاء
التمييز الذي وُجدت هذه الصفحة من أجله: التشغيل الذي أخفق والتشغيل الذي وقع فيه خطأ أمران مختلفان، وتقديم أحدهما على أنه الآخر يُخبر المطوِّر بأن تغييره سيئ، بينما الحقيقة أن بيئة الاختبار هي التي تعطّلت.
الإخفاق نتيجة. أما الخطأ فليس كذلك.
تعني FAIL أن بوابةً قد قُيِّمت وأن الأدلة جاءت دون العتبة. وهذه نتيجة تخص جودة التغيير.
تعني RUN_ERROR أن التشغيل لم يكتمل. لم تُقيَّم أي بوابة، ولم يُقَس أي شيء يخص التغيير. وهي ليست حالة قرار، وكذلك PARTIAL وCANCELLED — فهي تصف ما حدث لتشغيل ما، لا ما تقرَّر بشأن نظام ما.
ما يُبلِغ عنه التشغيل غير المكتمل
البوابة المطبَّقة على تشغيل غير مكتمل تخرج بالرمز 5، لا 1. فالأدلة غائبة لا سيئة، ويستدعي الأمران استجابتين مختلفتين: البوابة المُخفِقة تطلب منك النظر في تغييرك، أما غير المكتملة فتطلب منك النظر في بنيتك التحتية.
حالات تعذّر قياسها
الحالة التي وقع فيها خطأ تُحصَر بحدود ولا تُسقَط. يسجِّل كل مقياس أربعة أعداد — الإجمالي، والمؤهَّل، والمرصود، والمفقود — وتأخذ الفترة في الحسبان الحالات التي لم تتمكن من رؤيتها.
وهذا أهم مما يبدو. فالمقياس الذي يعدّ الحالة غير المُقيَّمة صفرًا يحمِّل النموذجَ أعطالَ النظام نفسه على أنها إخفاقات في الجودة، والمقام الذي يتقلَّص بصمت حين يبدأ النظام في الإخفاق هو الطريقة التي يُبلِغ بها نظامٌ مُخفِق عن درجة متصاعدة. وقد رُصد الأمران كلاهما على مساعد يعمل فعليًا، أعادت فيه 13.8% من الاستدعاءات HTTP 500.
الإخفاقات العابرة
يمكن للنظام أن يُعلن أن إخفاقًا ما كان عابرًا، والإخفاق العابر يُعاد تجريبه بدلًا من تسجيله نتيجةً للجودة. فانتهاء مهلة المزوِّد ليس دليلًا على شيء يخص الموجِّه.
الإعلان صريح: يرفع النظام القابل للاستدعاء TransientError مع retryable=True. القيمة الافتراضية لـ retryable هي False، وTransientError من دونها يُسجَّل على الحالة كأي استثناء آخر، فتصبح الحالة مفقودة بدلًا من أن يُعاد تجريبها. أما نظام HTTP ومزوِّد الحَكَم فلا يحتاجان إلى إعلان: فانتهاء المهلة، أو انقطاع الاتصال، أو 429 أو 5xx يُعاد تجريبه لهما تلقائيًا. وفي الحالتين يُجرَّب الاستدعاء أربع مرات على الأكثر، مع تراجع تدريجي، والحالة التي تظل تُخفق تُعدّ مفقودة. وتعرض صفحة التقدم والتزامن الحالتين كلتيهما.
أخطاء الإعداد
يعني رمز الخروج 2 أن الاستدعاء أو الإعداد كان خاطئًا وأن شيئًا لم يُشغَّل. ورفض الحصة واحد من هذه: إنه خطأ إعداد بسبب مُسمّى، يُرفض قبل تنفيذ الحالة الأولى، ولا يكون أبدًا حالة قرار. فلا ينبغي لحقيقة تجارية أن تأتي مرتديةً حُكمًا على الجودة.
تشخيص ما أخفق فعلًا
oloproof diagnose RUN_ID --intervention gold-context --criterion answer_correctالتدخُّل هو ما يُعاد تشغيل الحالات المُخفِقة في ظله — gold-context أو top-k أو reranker — ويحدِّد المعيار إخفاقات أيّ مُقيِّم تُؤخذ. يُبلِغ التشخيص عن عوامل الإخفاق مع أعدادها، ومعرِّفات السيناريوهات التي تقف وراءها، والافتراضات التي بناها. إنه يسمّي عاملًا لا سببًا: فالمحرك لا يؤكد أن شيئًا ما أنتج شيئًا آخر، ولا تؤكد ذلك أي شاشة تعرضه.
إلى أين بعد ذلك
- تتناول المفاهيم الأساسية حالات القرار والمقامات.
- تسرد تطبيق البوابة في CI كل رموز الخروج.
- تشرح تقييم RAG تشخيصًا من البداية إلى النهاية.