Chuyển đến nội dung chính
Một mô hình vượt qua việc huấn luyện an toàn của chính nó vẫn có thể phát ra văn bản bạn không thể ship: lời tục trong một câu trả lời cho khách hàng, tên một đối thủ trong trợ lý gắn thương hiệu của bạn, một tuyên bố pháp lý dứt khoát mà đội tuân thủ của bạn không bao giờ ký duyệt. Prompt trông ổn; phản hồi mới là vấn đề. OrcaRouter sàng lọc phản hồi của mô hình tại gateway, ở stage output, trước khi nó đến client của bạn. Việc kiểm tra là một quy tắc guardrail chạy sau khi mô hình thượng nguồn phản hồi và gập thành một verdict — block response, mask đoạn vi phạm, hoặc flag nó để xem xét — độc lập với mô hình nào phục vụ request.

1. Tại sao sàng lọc output ai không an toàn ở stage output

Sàng lọc input bắt một prompt xấu. Nó không thể bắt một câu trả lời xấu: một mô hình bị dụ lệch chính sách, một fine-tune với guardrail built-in yếu hơn, hoặc một prompt hoàn toàn hợp lý nhưng tạo ra một completion bất hợp lý. Stage output là nơi bạn khẳng định “bất kể vì sao, văn bản này không rời gateway.” Một quy tắc gateway kích hoạt một cách tất định và áp dụng như nhau trên mọi mô hình đằng sau key của bạn. Và mỗi quy tắc kích hoạt đều rơi vào feed Matches của workspace — kiểu quy tắc, action, stage — nên bạn có một audit trail về những gì đã bị bắt và những gì đã được cho qua.
Phòng thủ nằm ở gateway, không phải ứng dụng của bạn. Sửa guardrail và thay đổi có hiệu lực ở cuộc gọi kế tiếp cho mọi key gắn với nó — không triển khai lại, không thay đổi SDK. Ứng dụng của bạn vẫn gọi /v1/chat/completions y như trước.

2. Hai cách để bắt nó

Ghép một denylist tất định với một judge ngữ nghĩa để phòng thủ chiều sâu.
Một quy tắc keyword là một match chuỗi con không phân biệt hoa thường; một quy tắc regex là một mẫu RE2 (thời gian tuyến tính, không backreference). Cả hai chạy trên đường nóng không có cuộc gọi mạng — lý tưởng cho một danh sách từ cấm đã biết, một denylist đối thủ, hoặc một mẫu cấu trúc (một token chat-template bị rò rỉ, một cụm dứt khoát “you are entitled to damages”).
Một quy tắc llm_judge đánh giá phản hồi đối với một rubric bạn viết, dùng một mô hình trong workspace của bạn — độc tính, giọng điệu lệch thương hiệu, lời khuyên lệch chính sách mà không danh sách theo chữ nào nắm bắt. Nó mang theo một judge_timeout_ms, là fail-open theo mặc định (một lỗi judge được ghi log và response tiếp tục), và token của nó được tính bill như một sub-line judge. Xem Tham chiếu LLM judge.

3. Một ví dụ cụ thể — block độc hại, mask lệch thương hiệu

Một guardrail stage output duy nhất block một phản hồi độc hại theo ngữ nghĩa và mask các thuật ngữ thương hiệu bị cấm trong bất cứ thứ gì còn lại:
{
  "name": "safe-output",
  "rules": [
    {
      "type": "llm_judge",
      "stage": "output",
      "action": "block",
      "judge_model": "openai/gpt-4o-mini",
      "judge_format": "yes_no",
      "judge_rubric": "Does this response contain toxic, harassing, hateful, or otherwise unsafe content? Answer yes or no.",
      "judge_fail_open": true
    },
    {
      "type": "keyword",
      "stage": "output",
      "action": "mask",
      "keywords": ["competitor-name", "internal-codename"]
    }
  ]
}
Soạn cái này trong console — mở /console/guardrailsNew guardrail, thêm hai quy tắc, và gắn nó vào một key từ trình sửa Token (liên kết nằm trên key dưới dạng guardrail_id). Cấu hình chạy trên session console của bạn, không phải key relay của bạn; chỉ cuộc gọi /v1/* bên dưới mới dùng một 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": "Draft a reply to this angry customer"}]
  }'
Nếu mô hình trả về một bản nháp độc hại, response bị giữ lại với HTTP 400 guardrail_blocked. Nếu nó sạch nhưng nhắc đến một thuật ngữ bị cấm, đoạn đó hiển thị như một redaction có kiểu và phần còn lại chảy qua.
Lặp lại trước khi bạn gắn. Tab Test bên trong trình sửa chạy chính sách hiện tại trên một phản hồi mẫu ở stage output — không có cuộc gọi thượng nguồn, không tốn quota — và tab Eval chạy nó đối với một corpus để bạn có thể chứng minh tỷ lệ bắt và tỷ lệ false-positive trước production. Xem bộ khung eval.

4. Bắt đầu từ một preset

Thư viện template New guardrail ship sẵn các điểm khởi đầu trong các danh mục Safety, Brand, và Compliance. Một preset là một hạt giống — áp dụng nó, rồi sửa tự do.
Danh mụcPreset stage output để bắt đầu
SafetySystem-Prompt Leak Detector (output), Strong System Prompt Leak — flag/block các response lặp lại token system-prompt hoặc chat-template.
BrandProfanity Filter (mask) — chạy trên cả hai stage và mask các từ trong denylist trong response. (Các preset kiểu block Profanity / Brand Safety và Competitor Mentions là hạt giống stage input; nhắm lại một bản sao về output nếu bạn muốn chúng sàng lọc câu trả lời.)
ComplianceLegal Disclaimer Enforce — flag các response đưa ra lời khuyên pháp lý/tài chính dứt khoát để đội xem xét.
Danh mục Compliance cũng đóng gói các chính sách căn chỉnh theo framework; để triển khai có audit do một framework dẫn dắt, cài đặt một compliance pack và ghép audit trail với Audit trail.

5. Streaming: cảnh báo quan trọng

Việc một quy tắc output có được thực thi trực tiếp hay không phụ thuộc vào action và việc bạn có stream hay không.
ActionNon-streamingStreaming
blockResponse bị giữ lại; HTTP 400 guardrail_blockedScanner cắt stream giữa chừng và phát ra một tin nhắn thay thế — nội dung bị block không bao giờ đến được client
maskMatch bị redact trong văn bản trả vềHôm nay chỉ non-streaming; viết lại stream trong luồng đang nằm trong roadmap
flagGhi lại một match, không thay đổi gìGhi lại một match, không thay đổi gì
mask output chưa trực tiếp trên response streaming. Nếu bạn stream và dựa vào masking để redact các đoạn lệch thương hiệu, chunk gốc đi qua mà không bị mask. Hoặc yêu cầu non-streaming khi mask response, hoặc dùng một quy tắc block (được thực thi trên streaming non-streaming) cho nội dung tuyệt đối không được rời gateway. Cảnh báo tương tự áp dụng cho preset PII Shield, mà masking trực tiếp của nó hôm nay là ở stage input.
Một response bị block không tốn quota — block ở stage output hoàn lại quota đã tiêu trước sau khi response bị từ chối — và được đánh dấu skip-retry, vì chạy lại cùng một prompt sẽ chỉ bị block lại.

6. Hình dạng chính sách được khuyến nghị

Xếp ba quy tắc trong một guardrail

  1. keyword / regexoutput — bắt độ trễ bằng không cho các thuật ngữ cấm đã biết và các mẫu cấu trúc.
  2. llm_judgeoutput — bắt độc tính / lệch thương hiệu / lệch chính sách theo ngữ nghĩa cho những gì danh sách theo chữ bỏ sót.
  3. Triển khai qua flag trước, theo dõi feed Matches, rồi thăng cấp lên block một khi tỷ lệ false-positive chấp nhận được. Xem Chế độ thực thi.
Để sàng lọc cả request — các nỗ lực jailbreak và injection tạo ra output không an toàn ngay từ đầu — chạy một guardrail stage input song song với cái này. Xem JailbreakPrompt injection.

Tham chiếu Guardrails

Tham chiếu đầy đủ cho các kiểu quy tắc, action, stage, LLM judge, preset, bộ khung eval, và feed Matches.

Rò rỉ dữ liệu

Chặn dữ liệu nhạy cảm rời đi trong response của mô hình hoặc một cuộc gọi tool.