Chuyển đến nội dung chính
Một guardrail giai đoạn input sàng lọc request của caller trước khi nó đến mô hình. Đây là nơi rẻ nhất để thực thi một chính sách nội dung: gateway kiểm tra prompt trên đường vào, và nếu một quy tắc block, request bị từ chối trước khi đo lường — bạn không trả gì cho cuộc gọi. Đây là nơi bạn chặn một secret bị rò rỉ, một trường PII, hoặc một nỗ lực injection từng chạm đến mô hình thượng nguồn. Để xem engine đầy đủ — mọi loại quy tắc, trường, và route — xem Tham chiếu Guardrails. Trang này tập trung vào giai đoạn input: cái gì chạy trước mô hình, và tại sao một block ở đây tốn không quota.

1. Input guardrails cho ứng dụng LLM, trước mô hình

Mỗi quy tắc guardrail mang một giai đoạninput, output, hoặc both. Một quy tắc input chạy đối với văn bản request ngay khi nó đến, trên đường đến mô hình thượng nguồn:
caller → [ input guardrail ] → metering → model → [ output guardrail ] → caller
Thứ tự đó là điểm mấu chốt. Một quy tắc input thấy prompt trước khi gateway tiêu trước bất kỳ quota nào, nên một block ở giai đoạn này là miễn phí — request không bao giờ đến mô hình và không bao giờ tính phí. So sánh với giai đoạn output, sàng lọc phản hồi của mô hình sau khi nó quay về (một block output hoàn trả lại quota đã tiêu trước thay vào đó).
Các quy tắc input sàng lọc request của caller. Nếu bạn cũng dùng registry prompts, system message được chèn được thêm muộn hơn ở routing — nên các quy tắc input thấy các message mà ứng dụng của bạn gửi, không phải prompt được chèn. Các quy tắc output sàng lọc phản hồi theo cả hai cách.

2. Cái gì bạn có thể chạy ở giai đoạn input

Bất kỳ loại quy tắc nào cũng có thể chạy ở input. Các lý do phổ biến nhất để kiểm soát request trước mô hình:

Che PII trong prompt

Một quy tắc pii với hành động mask viết lại các entity thành tag có kiểu (jane@acme.com[EMAIL]) để mô hình thượng nguồn không bao giờ thấy giá trị thô. Xem PII Shield.

Block secrets trước khi chúng rò rỉ

Một request mang một API key hoặc credential cloud bị từ chối ngay cửa — trước khi đo lường, không có cuộc gọi thượng nguồn. Xem Block secrets.

Chặn các nỗ lực injection

Preset Prompt-Injection cơ bản ghép các detector keyword/regex với một quy tắc llm_judge cho ý đồ injection. Xem Prompt injection.

Giới hạn kích thước prompt

Một quy tắc max_chars từ chối một prompt quá khổ trước khi nó tính phí bất kỳ token nào. Xem Cost guardrails.
Bảy loại quy tắc — keyword, regex, pii, max_chars, external, llm_judge, grounding — và năm hành động block, mask, flag, annotate, và spotlight đều áp dụng ở đây. (spotlight bọc văn bản không đáng tin đã khớp trong các dấu phân cách để mô hình coi nó là dữ liệu, không phải hướng dẫn — một phòng thủ prompt-injection ở giai đoạn input; annotate đính một ghi chú mà không thay đổi traffic.) Một ngoại lệ đáng biết: grounding đo lường câu trả lời so với các nguồn được truy xuất, nên nó vốn dĩ là một kiểm tra ở giai đoạn output. Mọi thứ khác phù hợp tự nhiên cho giai đoạn input.
Masking ở giai đoạn input đang hoạt động hôm nay — streaming hay không. Gateway viết lại request trước khi mô hình thấy nó trên mọi đường. Mask output chỉ redact các phản hồi không streaming; viết lại output in-stream nằm trong lộ trình, nên một quy tắc mask chưa redact một phản hồi streaming. Block output, ngược lại, được thực thi theo cả hai cách — streaming và không streaming (xem Streaming coverage).

3. Một ví dụ cụ thể

Soạn quy tắc trong console (dưới phiên của riêng bạn — cấu hình guardrail cần Developer+), không phải với một relay key. Thêm một quy tắc input đơn lẻ vào một guardrail tên secrets-shield:
{
  "type": "regex",
  "stage": "input",
  "action": "block",
  "pattern": "sk-[A-Za-z0-9]{20,}"
}
Gắn guardrail vào một key (đặt guardrail_id, hoặc đánh dấu nó làm mặc định workspace — xem Gắn vào một key), rồi gọi gateway với relay key 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"}
    ]
  }'
Request khớp ở giai đoạn input và bị từ chối với HTTP 400 guardrail_blocked trước khi gateway chuyển tiếp bất cứ gì lên thượng nguồn:
{
  "error": {
    "type": "guardrail_blocked",
    "message": "request blocked by guardrail \"secrets-shield\": regex(...)"
  }
}
Xem lỗi guardrail_blocked để biết hình dạng phản hồi đầy đủ.

4. Tại sao một block input tốn không quota

Đây là lợi thế cấu trúc của việc bắt mọi thứ trên đường vào. Một block ở giai đoạn input nằm trước pre-consume, nên:
Thuộc tínhBlock giai đoạn input
Trạng thái HTTP400 guardrail_blocked
Quota tính phíKhông có — kích hoạt trước khi đo lường
Cuộc gọi thượng nguồnKhông bao giờ thực hiện
RetryĐánh dấu skip-retry — chạy lại sẽ block lại
Vì request không bao giờ đến một kênh, một block input được đánh dấu skip-retry: chạy lại cùng một prompt đối với một kênh khác sẽ chỉ block lại và lãng phí công sức. Giai đoạn output khác — một block ở đó hoàn trả quota mà gateway đã tiêu trước. Cùng 400, kế toán khác nhau.

5. Phân giải và fallback

Một quy tắc giai đoạn input chỉ chạy nếu một guardrail thực sự phân giải trên request. Phân giải là tường minh:
  1. guardrail_id tường minh của key, nếu nó tồn tại và được bật.
  2. Nếu không, guardrail mặc định workspace.
  3. Nếu không nữa, không có gì — request giống hệt từng byte với một workspace không có chính sách.
Một liên kết tường minh không bao giờ âm thầm fallback. Tắt một guardrail đã gắn là công tắc off — nó không rớt xuống mặc định workspace. (Các chính sách firewall hành xử khác ở đây; xem Guardrails vs. firewall.)

6. Chứng minh nó trước khi bạn ship

Đừng gắn một quy tắc input blocking vào traffic thật theo niềm tin. Hai cách để xác thực trước:
Mở tab Test trong guardrail editor, dán một mẫu, chọn giai đoạn input, và chạy. Sandbox đánh giá chính sách hiện tại cục bộ — không có cuộc gọi thượng nguồn, không tốn quota — và trả về verdict cộng với (với các quy tắc mask) văn bản đã render. Xem Testing & eval.
Đặt hành động thành flag trước. Một flag không thay đổi gì về traffic — nó chỉ ghi lại một match — nên bạn có thể đo lường một quy tắc sẽ kích hoạt bao thường xuyên trên input thật trước khi bạn chuyển nó thành block. Xem Tinh chỉnh false positive.
Mỗi quy tắc kích hoạt ghi lại một match — type, action, stage, và một chuỗi detail. Chuỗi con đã khớp chỉ được ghi lại khi Log raw content bật (tắt theo mặc định). Xem Feed các matchLogging & quyền riêng tư.

7. Đi đâu tiếp theo

Giai đoạn input chặn input xấu khỏi đến mô hình. Để kiểm soát phản hồi của mô hình, ghép nó với giai đoạn output; để kiểm soát lời gọi tool của một agent, dùng firewall. Đọc Tham chiếu Guardrails để xem engine đầy đủ, hoặc security quickstart để nối input guardrails và firewall với nhau cho một baseline agent.