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

1. حواجز حماية المدخلات لتطبيقات LLM، قبل النموذج

كل قاعدة حاجز حماية تحمل مرحلةinput أو output أو both. قاعدة input تعمل على نص الطلب لحظة وصوله، في طريقه إلى النموذج الأعلى:
caller → [ input guardrail ] → metering → model → [ output guardrail ] → caller
ذلك الترتيب هو المغزى. قاعدة المدخلات ترى المطالبة قبل أن تستهلك البوابة مسبقاً أي حصة، فالحجب في هذه المرحلة مجاني — لا يصل الطلب إلى النموذج أبداً ولا يُفوتر أبداً. قارن مرحلة المخرجات، التي تفحص استجابة النموذج بعد عودتها (حجب المخرجات يردّ الحصة المستهلكة مسبقاً بدلاً من ذلك).
قواعد المدخلات تفحص طلب المستدعي. إذا استخدمت أيضاً مطالبات السجل، تُضاف رسالة النظام المحقونة لاحقاً في التوجيه — لذا ترى قواعد المدخلات الرسائل التي أرسلها تطبيقك، لا المطالبة المحقونة. أما قواعد المخرجات فتفحص الاستجابة في الحالتين.

2. ما يمكنك تشغيله في مرحلة المدخلات

أي نوع قاعدة يمكنه العمل في input. أكثر الأسباب شيوعاً لتبويب الطلب قبل النموذج:

أخفِ PII في المطالبة

قاعدة pii بإجراء mask تعيد كتابة الكيانات إلى وسوم مُصنّفة (jane@acme.com[EMAIL]) بحيث لا يرى النموذج الأعلى القيمة الخام أبداً. انظر PII Shield.

احجب الأسرار قبل أن تتسرب

طلب يحمل مفتاح API أو اعتماد سحابة يُرفض عند الباب — قبل القياس، بلا استدعاء للأعلى. انظر حجب الأسرار.

أوقف محاولات الحقن

إعداد أساسيات حقن المطالبات المسبق يقرن كواشف keyword/regex بقاعدة llm_judge لنية الحقن. انظر حقن المطالبات.

ضع سقفاً لحجم المطالبة

قاعدة max_chars ترفض مطالبة مفرطة الحجم قبل أن تفوتر أي رموز. انظر حواجز حماية التكلفة.
أنواع القواعد السبعة — keyword، regex، pii، max_chars، external، llm_judge، grounding — والإجراءات الخمسة block، mask، flag، annotate، وspotlight كلها تنطبق هنا. (spotlight يغلّف النص غير الموثوق المطابق بفواصل بحيث يعامله النموذج كبيانات، لا تعليمات — دفاع حقن مطالبات في مرحلة المدخلات؛ وannotate يرفق ملاحظة دون تغيير حركة المرور.) استثناء واحد جدير بالمعرفة: grounding يقيس الإجابة مقابل المصادر المسترجعة، فهو بطبيعته فحص مرحلة مخرجات. كل ما عداه يناسب مرحلة المدخلات بشكل طبيعي.
إخفاء مرحلة المدخلات حي اليوم — بثاً أو لا. تعيد البوابة كتابة الطلب قبل أن يراه النموذج على كل مسار. أما mask على المخرجات فينقّح الاستجابات غير المبثوثة فقط؛ إعادة كتابة المخرجات ضمن التدفق على خارطة الطريق، فقاعدة الإخفاء لا تنقّح ردّاً مبثوثاً بعد. وعلى النقيض، يُفرض block على المخرجات بكلتا الطريقتين — بثاً وغير بث (انظر تغطية البث).

3. مثال واحد ملموس

ألّف القاعدة في وحدة التحكم (تحت جلستك — تكوين حاجز الحماية يتطلب Developer+)، وليس بمفتاح ترحيل. أضف قاعدة input واحدة إلى حاجز حماية باسم secrets-shield:
{
  "type": "regex",
  "stage": "input",
  "action": "block",
  "pattern": "sk-[A-Za-z0-9]{20,}"
}
اربط حاجز الحماية بمفتاح (اضبط guardrail_id، أو علّمه افتراضي مساحة العمل — انظر اربط بمفتاح)، ثم استدعِ البوابة بمفتاح الترحيل sk-orca-... ذاك:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "Debug this: OPENAI_API_KEY=sk-abcdefghij1234567890"}
    ]
  }'
يطابق الطلب في مرحلة المدخلات ويُرفض بـ HTTP 400 guardrail_blocked قبل أن تعيد البوابة توجيه أي شيء للأعلى:
{
  "error": {
    "type": "guardrail_blocked",
    "message": "request blocked by guardrail \"secrets-shield\": regex(...)"
  }
}
انظر خطأ guardrail_blocked لشكل الاستجابة الكامل.

4. لماذا حجب المدخلات لا يكلّف أي حصة

هذه هي الميزة البنيوية لاصطياد الأشياء في طريق الدخول. حجب مرحلة المدخلات يجلس قبل الاستهلاك المسبق، لذا:
الخاصيةحجب مرحلة المدخلات
حالة HTTP400 guardrail_blocked
الحصة المحاسَبةلا شيء — يُطلق قبل القياس
الاستدعاء الأعلىلم يُجرَ أبداً
إعادة المحاولةمُعلَّم skip-retry — إعادة التشغيل تحجب مجدداً
لأن الطلب لا يصل إلى قناة أبداً، يُعلَّم حجب المدخلات بـ skip-retry: إعادة تشغيل نفس المطالبة مقابل قناة أخرى ستحجب مجدداً فحسب وتهدر الجهد. تختلف مرحلة المخرجات — الحجب هناك يردّ الحصة التي استهلكتها البوابة مسبقاً. نفس 400، محاسبة مختلفة.

5. الحل والتراجع

قاعدة مرحلة المدخلات تعمل فقط إذا حُلّ حاجز حماية فعلاً على الطلب. الحل صريح:
  1. guardrail_id الصريح للمفتاح، إن كان موجوداً ومفعّلاً.
  2. وإلا حاجز الحماية الافتراضي لمساحة العمل.
  3. وإلا لا شيء — الطلب متطابق بايت ببايت مع مساحة عمل بلا سياسة.
الربط الصريح لا يتراجع صامتاً أبداً. تعطيل حاجز حماية مربوط هو مفتاح الإيقاف — لا يسقط إلى افتراضي مساحة العمل. (سياسات جدار الحماية تتصرف بشكل مختلف هنا؛ انظر حواجز الحماية مقابل جدار الحماية.)

6. أثبتها قبل أن تشحنها

لا تربط قاعدة مدخلات حاجبة بحركة المرور الحية على الإيمان. طريقتان للتحقق أولاً:
افتح علامة التبويب Test في محرر حاجز الحماية، الصق عينة، اختر مرحلة input، وشغّل. يقيّم الـ sandbox السياسة الحالية محلياً — بدون استدعاء للأعلى، بدون حصة — ويعيد الحكم بالإضافة إلى (لقواعد mask) النص المُصيَّر. انظر الاختبار والتقييم.
اضبط الإجراء على flag أولاً. التعليم لا يغيّر شيئاً في حركة المرور — يسجّل مطابقة فقط — بحيث يمكنك قياس كم مرة ستُطلق قاعدة على مدخلات حقيقية قبل أن تقلبها إلى block. انظر ضبط الإيجابيات الكاذبة.
كل قاعدة تُطلق تسجّل مطابقة — النوع والإجراء والمرحلة وسلسلة تفصيل. السلسلة الفرعية المطابقة تُسجَّل فقط عند تفعيل Log raw content (مُطفأ افتراضياً). انظر تغذية المطابقات و التسجيل والخصوصية.

7. إلى أين تذهب بعد ذلك

مرحلة المدخلات تمنع المدخلات السيئة من الوصول إلى النموذج. لتبويب استجابة النموذج، اقرنها بمرحلة المخرجات؛ ولحكم استدعاءات أدوات وكيل، استخدم جدار الحماية. اقرأ مرجع حواجز الحماية للمحرك الكامل، أو البدء السريع للأمان لتوصيل حواجز حماية المدخلات وجدار الحماية معاً لخط أساس وكيل.