1. سؤال تغطية حواجز الحماية على البث
تحمل قاعدة حاجز الحماية مرحلة (input أو output أو both)
وإجراءً — أحد خمسة: block أو mask أو flag أو annotate أو
spotlight. تقرر المرحلة متى تشغّل البوابة القاعدة؛ ويقرر الإجراء
ماذا تفعل. المكان الوحيد الذي يغيّر فيه البث شكل الإجابة هو مرحلة
output — لأنها المرحلة الوحيدة التي تعيد فيها البوابة توجيه البايتات
إلى عميلك وهي تصل، دون فرصة للاحتفاظ بكامل الحمولة أولاً.
لذا تحوي المصفوفة خليتين يهمّ فيهما البث، وهما تتصرفان بشكل مختلف:
block على المخرجات مفروض بالكامل على البث (يقطعه الماسح)، لكن
mask على المخرجات مفروض على الاستجابات غير المبثوثة فقط. على
الاستجابة المبثوثة، لا يزال الماسح يكشف المطابقة ويمكنه التصرف بناءً على
قرار حجب، لكنه لا يعيد كتابة النص المُخفى في البث اليوم — إخفاء
المخرجات ضمن البث مخطط له.
المدخلات ليست أبداً المشكلة. قواعد مرحلة المدخلات تعمل قبل النموذج —
تفحص البوابة (وللـ
mask، تعيد كتابة) طلبك، ثم تعيد توجيه النسخة
المُنظَّفة للأعلى. سواء كانت الاستجابة ستُبث أم لا، فهذا غير ذي صلة؛
الطلب حمولة كاملة تحتفظ بها البوابة كاملة. فحص المدخلات مباشر بالكامل،
بما في ذلك الإخفاء، على كل طلب.2. مصفوفة التغطية
اقرأ هذا من أعلى إلى أسفل. كل خلية حجب مباشرة، بما في ذلك البث — لكن output + mask + streaming هي الخلية الوحيدة التي لا تُفرض بعد في البث: قاعدة mask تنقّح استجابة غير مبثوثة، وعلى استجابة مبثوثة تكشف المطابقة دون إعادة كتابة الـ delta (إخفاء المخرجات ضمن البث مخطط له).| المرحلة · الإجراء | غير مبثوث | مبثوث |
|---|---|---|
input · block | يرفض الطلب | يرفض الطلب |
input · mask | يعيد كتابة الطلب | يعيد كتابة الطلب |
output · block | يرفض الاستجابة | يقطع البث |
output · mask | ينقّح الاستجابة | يكشف المطابقة؛ لا ينقّح ضمن البث (خارطة الطريق) |
| أي · flag | يسجّل فقط | يسجّل فقط |
annotate وspotlight ملاحظة (أو يلفّ النص المطابق) دون رفض حركة
المرور وهما إجراءان لمرحلة المدخلات عملياً، فلا يغيّران خليتي
المخرجات/البث أعلاه؛ يسجّلان مطابقة كأي قاعدة أخرى.
input — مباشر بالكامل، بكلا الطريقتين (block + mask)
input — مباشر بالكامل، بكلا الطريقتين (block + mask)
تفحص قواعد مرحلة المدخلات الطلب قبل تشغيل النموذج الأعلى. يقصّر
block الاستدعاء (HTTP 400 guardrail_blocked، قبل القياس، فلا
يكلّف أي حصة). يعيد mask كتابة الحقول المطابقة في المطالبة في
مكانها — النص المُنظَّف هو ما يذهب للأعلى، ولا يرى النموذج الأصل
أبداً. لا شيء من هذا يعتمد على ما إذا كانت الاستجابة تُبث.output · block — مفروض على البث وغير البث
output · block — مفروض على البث وغير البث
على استجابة غير مبثوثة، تُفحص الإجابة كاملة قبل إرجاعها — يظهر الحجب
كـ HTTP 400
guardrail_blocked. على استجابة مبثوثة، يراقب
ماسح بث الـ deltas وهي تتدفق؛ وعندما تُطلق قاعدة حجب فإنه يقطع
البث — يختم الماسح، ويصدر إشعار استبدال قصيراً بدلاً من البقية،
ويغلق قناة SSE قبل أن يصل أي محتوى محجوب إلى العميل. ولأن ترويسات
200 لـ SSE قد خرجت بحلول ذلك الوقت، لا يستطيع حجب البث إعادة 400:
يسلّم الحجب كـ delta نهائي ضمن النطاق بدلاً من خطأ HTTP.output · mask — غير مبثوث فقط (البث ضمن خارطة الطريق)
output · mask — غير مبثوث فقط (البث ضمن خارطة الطريق)
على استجابة غير مبثوثة، تعيد قاعدة
mask كتابة الإجابة — مثلاً يصبح
البريد الإلكتروني [EMAIL] — والنص المُنظَّف هو ما يحصل عليه عميلك.
على استجابة مبثوثة، لا يزال ماسح البث يكشف المطابقة ويحسب
الإخفاء، لكنه لا يعيد توجيه النص المُخفى إلى الـ delta — يُهمَل
المخرَج المُخفى ويُتصرَّف بناءً على قرار حجب فقط. لذا فإن قاعدة mask
لا تنقّح استجابة مبثوثة اليوم؛ إخفاء المخرجات ضمن البث مخطط له.
إذا احتجت إبقاء معلومات PII خارج استجابة مبثوثة الآن، فألّف القاعدة كـ
block (يقطع الماسح البث عند المطابقة) أو افحص بشكل غير مبثوث.flag — رصد فقط، متطابق في كل مكان
flag — رصد فقط، متطابق في كل مكان
قاعدة
flag لا تغيّر حركة المرور أبداً — تسجّل مطابقة وتمرر
البايتات. لا تغيّر المرحلة والبث سلوكها. استخدمها لقياس معدل إطلاق
قاعدة قبل ترقيتها إلى block.3. مثال ملموس واحد — أبقِ PII خارج استجابة مبثوثة
لنقل إن النموذج يمكنه إظهار بريد إلكتروني لعميل من سياق RAG، وتطبيقك يبث.mask على المخرجات لا ينقّح ضمن البث اليوم (إخفاء المخرجات ضمن البث
مخطط له) — لذا لإبقاء PII خارج استجابة مبثوثة، ألّف قاعدة المخرجات كـ
block: يقتل الماسح البث لحظة ظهور مطابقة. (mask على المخرجات ينقّح
فعلاً على استجابة غير مبثوثة.)
تحرير السياسة إجراء إداري على جلسة وحدة التحكم لديك (مبوّب لـ
Developer+)؛ ومفتاح الترحيل sk-orca-... يرسل فقط حركة مرور /v1/*
ولا يحرّر السياسة أبداً.
- افتح
/console/guardrails، New guardrail، سمّهstream-pii-out. - أضف قاعدة واحدة:
- النوع: كشف PII
- المرحلة:
output - الإجراء:
block← يقطع البث عند المطابقة؛ وعلى البثmaskيكشف فقط (ينقّح الاستجابات غير المبثوثة)
- احفظ، ثم اربطه على
/console/tokenعبر قائمة Guardrail المنسدلة للمفتاح.
stream: true، تماماً كما كان من قبل:
4. PII Shield عبر المصفوفة
الإعداد المسبق PII Shield هو قاعدةpii واحدة، إجراؤها mask،
مرحلتها both. أسقطها على المصفوفة وتكون التغطية تماماً ما تتوقعه من §2:
- مرحلة المدخلات — مباشرة بالكامل، مبثوثة أو لا. يُخفى الطلب قبل أن يراه النموذج (القيمة الرئيسية لإخفاء المدخلات).
- مرحلة المخرجات، غير مبثوث — تُخفى الإجابة قبل إرجاعها.
- مرحلة المخرجات، مبثوث — يكشف ماسح البث المطابقة لكنه لا يعيد كتابة الـ delta اليوم، فلا يصل الشكل المُخفى إلى عميل مبثوث (إخفاء المخرجات ضمن البث مخطط له).
block (أو استدعِ
بشكل غير مبثوث) ليُقطع البث عند المطابقة. انظر
PII Shield و
صيغ الإخفاء.
5. ماذا يكلّف حجب البث
يحمل حجب البث نفس المحاسبة كأي حجب مخرجات — فالنموذج قد عمل بالفعل، لذا تتولى البوابة عنك ردّ المبلغ:- على استجابة غير مبثوثة، يعيد الاستدعاء HTTP 400
guardrail_blockedمسمّياً حاجز الحماية والقاعدة التي أُطلقت. على استجابة مبثوثة، تكون ترويسات200لـ SSE قد خرجت بالفعل على السلك، لذا يصل الحجب كـ delta استبدال نهائي ضمن النطاق وإغلاق قناة نظيف بدلاً من400. - لا تُحاسَب أي حصة. يُطلق حجب المدخلات قبل القياس؛ وحجب المخرجات (مبثوث أو لا) يردّ الحصة المستهلكة مسبقاً بمجرد رفض الاستجابة. في كلتا الحالتين لا يدفع المستدعي شيئاً.
- يُعلَّم الطلب بـ skip-retry — إعادة تشغيل نفس المطالبة ستحجب مجدداً فحسب، فلن تحرق البوابة إعادة محاولة على قناة أخرى.
GET /api/guardrail/match، مفتوحة لأي Member)؛ تُلتقط
السلسلة الفرعية المطابقة فقط عندما يكون مفتاح Log raw content لحاجز
الحماية مفعّلاً (مُطفأ افتراضياً). التفاصيل الكاملة في
خطأ guardrail_blocked
وتغذية المطابقات.
6. أثبت مزيج المرحلة/الإجراء قبل أن تشحن
لا تخمّن أي خلية من المصفوفة تنطبق على سياستك — تحقق منها. تعمل كلتا الأداتين على جلسة وحدة التحكم لديك عبر واجهة الإدارة البرمجية:علامة التبويب Test
لكل محرر حاجز حماية علامة تبويب Test: الصق عينة، اختر المرحلة،
وشغّل السياسة الحالية بدون استدعاء للأعلى وبدون حصة. شاهد الحكم،
ولقواعد mask، النص المُصيَّر. الـ sandbox الاختباري مبوّب لـ
Developer+ (يمكنه إطلاق استدعاءات judge/grounding مدفوعة وطلبات
تكامل صادرة).
علامة التبويب Eval
تسجّل علامة التبويب Eval حاجز حماية مقابل مجموعات JSONL مُرفقة أو
مخصصة — مفيدة لتأكيد أن قاعدة حجب تلتقط تسريباً معروفاً قبل ربط مفتاح.
تشغيل تقييم يحتاج فقط وصول قراءة (viewer+).
7. إلى أين تذهب بعد ذلك
القواعد الآمنة على البث
كيف يقطع الماسح بث SSE في منتصفه، وكيف تؤلّف سياسة تصمد على حركة
المرور المبثوثة.
مرحلة المخرجات
فحص استجابة النموذج — block مقابل mask، ردّ الحصة، والترسيخ السياقي.
مرحلة المدخلات
فحص الطلب قبل النموذج — بما في ذلك الإخفاء، مبثوثاً أو لا.
الإجراءات
block وmask وflag وannotate وspotlight بتعمق — متى يكون كل منها
القرار الصحيح.
مفاهيم ذات صلة
مفاهيم ذات صلة
تهديدات يعالجها هذا
تهديدات يعالجها هذا
المرجع الكامل للمحرك
المرجع الكامل للمحرك
حواجز الحماية — كل نوع قاعدة وحقل ومسار،
بما في ذلك الترسيخ السياقي وLLM judge.
