Skip to content

قائمة فرز قائمة على الإشارات

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

تُرتّب قائمة الفرز أولوية التوسيم وفق إشارة جودة لكل عنصر، حتى يرى المراجعون أسوأ العناصر أو أكثرها إثارة للشكّ أولًا بدلًا من العمل بترتيب الوصول (FIFO). يمكن أن تكون الإشارة خطأً من الوكيل، أو تقييمًا سلبيًا في الإنتاج، أو درجة آلية منخفضة، أو أي حقل مخصص. تُقرأ الإشارة لكل من البيانات المُحمَّلة بشكل ثابت والتتبعات المُستوعَبة أثناء التشغيل، وتظهر في موضعين: شريط أثناء التوسيم وصفحة الترتيب /admin/triage-queue.

عندما يكون وقت المراجعة البشرية شحيحًا، يصبح الترتيب الذي تصل به العناصر إلى المُوسِّمين مهمًا. توجيه العناصر الأكثر إفادةً أولًا هو نصف الفرز من حلقة تقييم نشطة، وهو يقترن طبيعيًا مع مواءمة الحَكَم لإرسال الخلافات والأخطاء إلى البشر أولًا.

شارة الفرز أثناء التوسيمشارة أولوية تشرح سبب وضع علامة على عنصر للمراجعة

التهيئة

yaml
triage:
  enabled: true
  order: desc            # high priority first (default); 'asc' = low first
  default_priority: 0    # items matching no rule
  show_badge: true       # banner during annotation explaining the priority
  rules:                 # evaluated in order; highest matching priority wins
    - name: "Agent errored"
      badge: "Agent errored"     # banner text (defaults to name)
      priority: 100
      when:
        field: status            # dotted paths allowed, e.g. metadata.tags
        equals: error
    - name: "Negative feedback"
      priority: 80
      when:
        field: feedback
        in: [thumbs_down, negative]
    - name: "Low quality score"
      priority: 60
      when:
        field: score
        lt: 0.5
 
# Serve the highest-priority items first. If you enable triage without setting
# assignment_strategy, Potato defaults to `priority` automatically.
assignment_strategy: priority

إذا حذفت rulessignal_field)، يستخدم Potato مجموعة افتراضية جاهزة للاستخدام: حالة الخطأ (100)، والتقييم السلبي (80)، والدرجة الأقل من 0.5 (60).

عوامل الشرط

العاملالمعنى
equalsتطابق تام (السلاسل النصية غير حساسة لحالة الأحرف)
inالقيمة واحدة من قائمة
containsحقل قائمة يحتوي على، أو تطابق سلسلة فرعية
lt / lte / gt / gteمقارنة عددية
existsالحقل موجود أو غائب (true/false)

قراءة إشارة عددية مباشرة

بدلًا من القواعد، أو بالإضافة إليها، يمكنك قراءة رقم مباشرة من حقل:

yaml
triage:
  enabled: true
  signal_field: quality_score   # used as the priority when no rule matches
  invert_signal: true           # lower score => higher priority

كيف تقود الأولوية عملية التعيين

اضبط assignment_strategy: priority. عندما يحتاج مستخدم إلى عناصر، تُرتَّب القائمة وفق قيمة triage_priority المخزَّنة لكل عنصر (تنازليًا افتراضيًا؛ order: asc يعكسها)، مع فضّ التعادل وفق ترتيب التحميل الأصلي لضمان الحتمية، ثم تُعيَّن العناصر الأعلى. تُحسَب الإشارة مرة واحدة عند التحميل أو الاستيعاب وتُخزَّن على العنصر، فيبقى التعيين منخفض التكلفة.

الشارة (show_badge: true) مستقلة عن الاستراتيجية. فهي تشرح سبب وضع علامة على عنصر حتى لو احتفظت باستراتيجية تعيين مختلفة.

صفحة قائمة المسؤول

text
GET /admin/triage-queue              # JSON
GET /admin/triage-queue?format=html  # rendered page

أرسل ترويسة X-API-Key. تعرض الصفحة كل عنصر متبقٍّ (غير مكتمل) مرتَّبًا وفق الأولوية، مع القاعدة التي وضعت علامة عليه، وعدد التوسيمات الحالي، وما إذا كان قد عُيِّن بالفعل.

الاستيعاب أثناء التشغيل

لأن المُسجِّل يعمل عند إضافة العناصر، فإن التتبعات المُستوعَبة أثناء التشغيل عبر استيعاب التتبعات (نقطة نهاية الـ webhook أو مُستطلِع Langfuse) تُسجَّل عند وصولها وتنزلق تلقائيًا إلى قائمة الأولوية. التتبع منخفض الدرجة أو الخاطئ الذي يُدفَع في منتصف الجلسة يقفز أمام التتبعات النظيفة التي لا تزال تنتظر.

ملاحظات وقيود

  • تُحسَب الأولوية وقت الإدراج. تحرير triage.rules وإعادة التشغيل يعيد تسجيل كل شيء عند التحميل التالي.
  • القاعدة المُشوَّهة تُسجِّل تحذيرًا وتُتخطَّى؛ ولا تعيق تحميل البيانات أبدًا.
  • الفرز يرتّب أيّ العناصر تُقدَّم. وهو لا يغيّر الحدود القصوى للتوسيم لكل عنصر.

ذات صلة

للاطلاع على تفاصيل التنفيذ، راجع الوثائق المصدرية.