Chuyển đến nội dung chính
Một số thứ bạn cần bắt không phải là một từ literal và không phải là một entity PII có kiểu — nó là một hình dạng. Một định dạng SKU, một bố cục số đơn hàng, một pattern URL nội bộ, một mã coupon, một tham chiếu hợp đồng. Một quy tắc regex để bạn match hình dạng đó trên mọi cuộc gọi rồi block, mask, hoặc flag nó, trước khi prompt đến mô hình và trước khi phản hồi đến người dùng của bạn. Đây là trang đích tập trung cho trường hợp dùng pattern có cấu trúc. Về engine guardrail đầy đủ — mọi loại quy tắc, trường, và route — xem tài liệu tham khảo Guardrails.
Mọi bước ở đây là một hành động console trên gateway được lưu trữ (api.orcarouter.ai). Bạn soạn guardrail dưới phiên của riêng bạn; chỉ cuộc gọi /v1/* cuối cùng dùng một relay key sk-orca-.... Tạo và chỉnh sửa guardrails yêu cầu Developer+ trong workspace.

1. Khi nào bạn cần một kiểm soát guardrail regex LLM

Một quy tắc regex là công cụ đúng khi thứ bạn muốn bắt có cấu trúc mà một denylist literal không thể diễn đạt nhưng không phải là một danh tính chuẩn mà detector pii đã bao quát.

Mã có cấu trúc

SKU, mã coupon, tham chiếu hợp đồng, ID ticket nội bộ — một tiền tố cố định cộng một chuỗi chữ số hoặc chữ-số.

Token kiểu định dạng

Bất cứ thứ gì match theo hình dạng hơn là một danh sách từ hữu hạn — một bố cục số đơn hàng, một định dạng serial, một pattern URL nội bộ.

Pattern rò rỉ output

Một phản hồi không nên hiện một hostname nội bộ, một đường dẫn file, hoặc một định dạng record-ID — quét output của mô hình tìm hình dạng.

Kiểm tra rẻ, tất định

So khớp pattern thuần, không có cuộc gọi mô hình, không mạng — an toàn để chạy trên mọi request ở cả hai hướng.
Chọn công cụ nhẹ nhất phù hợp. Một danh sách hữu hạn các thuật ngữ literal → denylist keyword. Một hình dạng danh tính có tên bạn muốn một thẻ mask có kiểu ([EMAIL], [SSN]) hoặc một kiểm tra Luhn → một entity PII / tùy chỉnh. Một pattern cấu trúc không có kiểu theo từng entity → một quy tắc regex, được bao quát ở đây.

2. RE2 — thời gian tuyến tính, không backreference

pattern của một quy tắc regex là một regex Go RE2. RE2 là engine làm một quy tắc regex an toàn để chạy trên mọi request:
RE2 đảm bảo thời gian so khớp tuyến tính theo độ dài input, bất kể pattern. Một engine backtracking có thể nổ tung theo cấp số nhân trên một input đối kháng (một “ReDoS”); RE2 không thể. Đó là lý do pattern của bạn an toàn để đánh giá trên đường nóng trên mọi cuộc gọi.
RE2 không hỗ trợ backreference (\1), lookahead, hoặc lookbehind. Nếu bạn port một pattern PCRE dựa vào những cái đó, viết lại nó không có chúng. Character class, anchor, quantifier, alternation, và non-capturing group đều hoạt động như kỳ vọng.
Không có công tắc “ignore case” riêng — đặt flag inline. Thêm tiền tố (?i) cho không phân biệt hoa thường, (?m) cho multiline. Ví dụ: (?i)\bproject-orca\b.
Trình tạo quy tắc biên dịch pattern của bạn khi bạn lưu guardrail. Một pattern không biên dịch được bị từ chối với chỉ số quy tắc trong lỗi, nên một detector tồi không bao giờ đến được đường relay.
Pattern RE2 không phải PCRE. Bất ngờ port phổ biến nhất là một backreference hoặc một lookahead — cả hai đều không được hỗ trợ. Viết match thành một pattern character-class / alternation thay vào đó và xác minh nó trong tab Test trước khi gắn một key.

3. Giải phẫu một quy tắc regex

Một quy tắc regex là quy tắc nhỏ nhất trong engine sau keyword: một pattern, một giai đoạn, và một hành động.
TrườngNó làm gì
patternMột regex Go RE2 (thời gian tuyến tính, không backreference). Phải biên dịch được.
stageinput (request), output (response), hoặc both.
actionblock, mask, hoặc flag.
Trên một hành động mask, mỗi match được thay tại chỗ bằng một thẻ literal [REDACTED] duy nhất — một quy tắc regex không có kiểu, nên nó không render một thẻ theo từng entity như [EMAIL]. Nếu bạn muốn một thẻ có kiểu hoặc một token thay thế tùy chỉnh, mô hình hóa hình dạng như một entity PII tùy chỉnh thay vào đó.

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

Giả sử các số đơn hàng nội bộ của bạn trông như ORD- theo sau bởi tám chữ số, và bạn không bao giờ muốn một cái dội lại trong phản hồi của một mô hình. Thêm một quy tắc regex duy nhất trên giai đoạn output:
{
  "type": "regex",
  "stage": "output",
  "action": "mask",
  "pattern": "ORD-\\d{8}"
}
Soạn nó trong console:
1

Tạo một guardrail

Mở Guardrails, nhấn New guardrail, và đặt tên nó (≤ 64 ký tự), ví dụ order-id-filter.
2

Thêm một quy tắc regex

Thêm một quy tắc — Type: Regular expression, Stage: Output, Action: Mask — và dán pattern ORD-\d{8}. Lưu.
3

Test nó trong sandbox

Mở tab Test, dán một mẫu, chọn giai đoạn output, và chạy chính sách hiện tại cục bộ — không có cuộc gọi thượng nguồn, không quota:
Your order ORD-48291507 has shipped.
Your order [REDACTED] has shipped.
4

Gắn một key

Chỉnh sửa một API key và chọn order-id-filter từ dropdown Guardrail (đặt guardrail_id trên key), hoặc đánh dấu guardrail là mặc định workspace. Xem Gắn vào một keyMặc định tài khoản.
Rồi gọi OrcaRouter y như trước — không có header mới, không đổi SDK:
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": "What is the status of my order?"}
    ]
  }'
Số đơn hàng được redact trong phản hồi trước khi nó đến người dùng của bạn.

5. Phạm vi giai đoạn và streaming

Hành động bạn chọn tương tác với việc phản hồi có stream hay không:
Hành độngNon-streamingStreaming
block (output)Được thực thiĐược thực thi — scanner cắt stream
mask (output)Được thực thiĐược thực thi — scanner viết lại buffer
Quy tắc giai đoạn input chạy trước cuộc gọi thượng nguồn, nên chúng không bị ảnh hưởng bởi streaming — che request trước khi mô hình từng thấy nó là trực tiếp. mask output và block output đều được thực thi trên phản hồi streaming và non-streaming. Xem phạm vi streaming.

6. Chọn một hành động

Một quy tắc regex chọn một hành động cho mỗi quy tắc:
Bất kỳ match nào từ chối request với HTTP 400 guardrail_blocked. Một request bị block không tốn quota — một block giai đoạn input kích hoạt trước khi đo lường; một block giai đoạn output hoàn lại quota đã tiêu trước — và nó được đánh dấu skip-retry. Xem lỗi guardrail_blocked.
Mỗi match được thay tại chỗ bằng [REDACTED] và request tiếp tục với văn bản đã làm sạch — mô hình thượng nguồn (giai đoạn input) hoặc người dùng của bạn (giai đoạn output) không bao giờ thấy bản gốc. Xem Hành động.
Ghi lại một match và không thay đổi gì về traffic. Điểm khởi đầu đúng cho một pattern mới: phát hành nó dưới dạng flag, theo dõi Matches feed, rồi thăng cấp lên mask/block khi bạn tin nó.
Ghi lại một match và gắn một ghi chú (ví dụ một phát hiện để hiện trong phân loại) mà không thay đổi traffic. Xem Hành động.
Một phòng thủ giai đoạn input: mỗi match được bọc trong các dấu phân cách (ví dụ ⟦UNTRUSTED⟧…⟦/UNTRUSTED⟧) bảo mô hình xử lý văn bản như dữ liệu, không phải hướng dẫn — một biện pháp giảm thiểu prompt-injection. Xem Hành động.

7. Xem cái gì đã kích hoạt — và tinh chỉnh độ chính xác

Mỗi quy tắc kích hoạt ghi lại một match — loại quy tắc, hành động, giai đoạn, và một chuỗi chi tiết — trong feed Matches của workspace.
Chuỗi con đã match được ghi lại chỉ khi Log raw content được bật, mà mặc định tắt — lập trường bảo thủ về quyền riêng tư. Với nó tắt, bạn vẫn thấy rằng một quy tắc regex đã kích hoạt và bao lâu một lần, chỉ không phải văn bản literal nó bắt. Bật nó cho từng guardrail khi bạn cần chuỗi con để phân loại; cài đặt không hồi tố. Xem Matches feedLogging & quyền riêng tư.
Một pattern quá rộng là cạm bẫy regex kinh điển — \d{8} match mọi chuỗi tám chữ số, không chỉ số đơn hàng của bạn. Neo nó (một tiền tố cố định như ORD-, ranh giới từ \b), theo dõi Matches feed, và đánh dấu dương tính giả để siết chặt khi bạn đi. Để có một lưới A/B đối với một corpus — chứng minh một pattern bắt cái nó nên bắt mà không gắn cờ traffic lành tính — Eval harness nằm cách một tab. Xem Tinh chỉnh dương tính giả.

8. Đi đâu tiếp theo

Entity PII tùy chỉnh

Khi hình dạng là một danh tính bạn muốn một thẻ mask có kiểu hoặc một checksum Luhn cho — không phải một [REDACTED] trần.

Từ nhạy cảm

Một danh sách hữu hạn các thuật ngữ literal — đơn giản hơn một pattern khi bạn không cần cấu trúc.

Hành động

Cách block, mask, và flag khác nhau và khi nào dùng mỗi cái.

Tài liệu tham khảo Guardrails

Engine hoàn chỉnh — mọi loại quy tắc, trường, và route.
Một quy tắc regex quản trị nội dung. Để quản trị lời gọi tool của một agent — từ chối các hành động hủy hoại, redact đối số lời gọi tool, yêu cầu phê duyệt — dùng Firewall và các rule matcher của nó. Cho các chính sách mờ mà không pattern nào có thể diễn đạt (độc hại, lạc đề, ý đồ injection), một quy tắc llm_judge chạy một kiểm tra ngữ nghĩa đối với một mô hình workspace. Để xem nơi regex phù hợp trong thiết kế tổng thể, đọc Guardrails so với Firewall.