Chuyển đến nội dung chính
Khi bạn cần che dữ liệu nhạy cảm mà một prompt LLM mang theo — email, số thẻ, ID quốc gia, secret — gateway viết lại mỗi match tại chỗ trước khi mô hình thấy nó. Một giá trị được che trở thành một thẻ có kiểu (jane@acme.com[EMAIL]), nên mô hình vẫn đọc một prompt mạch lạc trong khi giá trị thô không bao giờ rời workspace của bạn. Trang này là góc nhìn tập trung về masking render cái gì, cách đổi thẻ, và cách che một số entity trong khi block những entity khác trên một quy tắc duy nhất. Về engine đầy đủ — mọi loại quy tắc, giai đoạn, và route — xem tài liệu tham khảo Guardrails, và về masking trên request cụ thể, quy tắc giai đoạn input.

1. Che dữ liệu nhạy cảm mà prompt LLM mang theo, với thẻ có kiểu

Một quy tắc pii với hành động mask phát hiện một entity và thay mỗi match bằng một thẻ redaction có kiểu — một nhãn viết hoa trong dấu ngoặc nêu cái gì đã bị loại bỏ mà không tiết lộ giá trị:
EntityThẻ render
email[EMAIL]
credit_card[CREDIT_CARD]
ssn[SSN]
Bộ detector built-in đầy đủ — email, phone, credit_card, ssn, ip, iban, mac_address, jwt, aws_access_key, api_key_openai, bitcoin_address, cộng các khu vực jp_mynumber, kr_rrn, và cn_resident_id — mỗi cái render thẻ trong ngoặc của riêng nó ([PHONE], [IBAN], [JP_MYNUMBER], v.v.). Thẻ là tất định: cùng một entity luôn render cùng một nhãn, nên các prompt downstream giữ ổn định và log của bạn đọc sạch sẽ.
Thẻ có kiểu thắng một [REDACTED] phủ định cho chất lượng mô hình. Mô hình vẫn biết nó đang nhìn một email so với một số tài khoản so với một số điện thoại, nên nó có thể tiếp tục suy luận về hình dạng của dữ liệu — “reply to [EMAIL]” vẫn là một hướng dẫn khả thi — mà không bao giờ giữ giá trị thực.
Masking input hoàn toàn trực tiếp — gateway viết lại prompt trước khi nó đến mô hình, dù streaming hay không. Masking output trực tiếp trên phản hồi non-streaming cũng vậy: một quy tắc mask trên giai đoạn output viết lại completion trước khi nó trả về. Chỉ masking output streaming nằm trong lộ trình; trên một phản hồi streamed, hãy ưu tiên block ở giai đoạn output. Xem phạm vi streaming cho ma trận giai đoạn/stream chính xác.

2. 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 yêu cầu Developer+, không phải một relay key. Thêm một quy tắc pii duy nhất vào một guardrail tên pii-shield:
{
  "type": "pii",
  "stage": "input",
  "action": "mask",
  "entities": ["email", "phone", "ssn"]
}
Gắn nó vào một key (đặt guardrail_id, hoặc đánh dấu nó là 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": "Reply to jane@acme.com about her SSN 123-45-6789"}
    ]
  }'
Gateway viết lại prompt thành “Reply to [EMAIL] about her SSN [SSN] trước khi chuyển tiếp. Mô hình thượng nguồn không bao giờ thấy địa chỉ hoặc số. Chứng minh render chính xác trong tab Test của editor trước (không có cuộc gọi thượng nguồn, không quota) — xem Testing & eval.

3. Ghi đè thẻ với mask_with

Entity built-in render một thẻ cố định. Entity tùy chỉnh — các regex detector của riêng bạn xếp lớp trên bộ built-in — để bạn tự đặt văn bản thay thế với mask_with:
{
  "type": "pii",
  "stage": "input",
  "action": "mask",
  "custom_entities": [
    {
      "name": "employee_id",
      "pattern": "EMP-[0-9]{6}",
      "mask_with": "[STAFF_ID]"
    }
  ]
}
mask_with là chuỗi thay thế nguyên văn cho các match của entity đó. EMP-004217 trở thành [STAFF_ID]. Để trống nó và match render thẻ mặc định [<UPPERCASE_NAME>] — ở đây, [EMPLOYEE_ID] — nên một detector tùy chỉnh luôn tạo ra một redaction có kiểu, đọc được ngay cả khi không ghi đè.
name (ASCII viết thường / chữ số / gạch dưới, phải bắt đầu bằng một chữ cái), pattern (một regex Go RE2 — thời gian tuyến tính, không backreference), checksum tùy chọn (luhn xác thực số kiểu thẻ), và mask_with tùy chọn. Tối đa 25 entity tùy chỉnh mỗi quy tắc — mỗi cái là một lần quét trên toàn bộ văn bản, nên giới hạn giữ đường nóng tuyến tính. Xem Entity PII tùy chỉnh.
Một name chảy vào audit log và Matches feed không trích dẫn, nên giữ nó ở ASCII viết thường, chữ số, và gạch dưới bắt đầu bằng một chữ cái (ví dụ employee_id, internal_ticket). Validator từ chối mọi thứ khác.

4. Che một số entity, block những entity khác — entity_actions

Một quy tắc pii duy nhất có thể áp dụng các hành động khác nhau cho các entity khác nhau qua entity_actions, thay vì chồng ba quy tắc trùng lặp. Hình dạng kinh điển: che dữ liệu liên hệ độ nhạy thấp, nhưng block thẳng các trường độ nhạy cao.
{
  "type": "pii",
  "stage": "input",
  "action": "mask",
  "entities": ["email", "phone", "ip", "credit_card", "ssn"],
  "entity_actions": {
    "credit_card": "block",
    "ssn": "block"
  }
}
Ở đây email, phone, và ip theo mask cấp cao nhất của quy tắc và render [EMAIL] / [PHONE] / [IP]; một match credit_card hoặc ssn thay vào đó block toàn bộ request với HTTP 400 guardrail_blocked.
TrườngQuy tắc
KeysPhải là một entity được khai báo trên quy tắc (built-in hoặc tùy chỉnh).
Valuesblock, mask, flag, hoặc annotate.
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 request được che đi qua với văn bản đã làm sạch. Nên một quy tắc có thể âm thầm redact các trường thường lệ và dừng cứng các trường được quản chế, với một lần gắn duy nhất và không đổi ứng dụng.

5. Mask so với block so với flag

Masking là một trong các hành động mà một quy tắc (hoặc ghi đè theo từng entity) có thể thực hiện. Chọn theo mức độ bạn muốn làm phiền traffic:

mask

Redact match thành một thẻ có kiểu và cho request đi qua với văn bản đã làm sạch. Mô hình không bao giờ thấy giá trị thô.

block

Từ chối toàn bộ request với HTTP 400 guardrail_blocked. Không có gì đến mô hình. Dùng nó cho dữ liệu không bao giờ được đi qua.

flag

Không thay đổi gì về traffic — chỉ ghi lại một match. Đo một quy tắc sẽ kích hoạt bao lâu một lần trước khi bạn thực thi nó.
Một lần triển khai tốt là flag → mask → block: flag để định cỡ tác động, mask khi bạn tin detector, và để dành block cho các trường bạn không thể cho đi qua chút nào. Xem Hành độngTinh chỉnh dương tính giả.

6. Xác minh cái gì đã được che

Mỗi quy tắc kích hoạt ghi lại một match trong Matches feed của workspace — loại quy tắc, hành động, giai đoạn, và một chuỗi chi tiết. Bản thân chuỗi con đã match (email thô, số thẻ thực tế) đượ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ì cả mục đích là giữ giá trị thô khỏi log của bạn.
Bật Log raw content chỉ khi bạn thực sự cần chuỗi con để phân loại, và chỉ cho từng guardrail. Với nó tắt, feed chứng minh một [CREDIT_CARD] đã được che mà không bao giờ lưu số. Công tắc không hồi tố. Xem Logging & quyền riêng tư.

7. Đi đâu tiếp theo

  • Preset PII Shield — điểm khởi đầu một-quy-tắc, che-mọi-thứ bạn có thể áp dụng trong một cú nhấp.
  • Entity PII tùy chỉnh — soạn các regex detector của riêng bạn với mask_withluhn tùy chọn.
  • Quy tắc giai đoạn input — nơi masking chạy trực tiếp hôm nay, trước mô hình và trước khi đo lường.
  • Block secret — với thông tin xác thực, block (không phải che) là lựa chọn đúng.
  • Phạm vi streaming — tổ hợp giai đoạn/stream nào che so với block hôm nay.
Đọc tài liệu tham khảo Guardrails cho engine hoàn chỉnh, hoặc phơi nhiễm PIIrò rỉ secret cho các mối đe dọa mà masking được xây để ngăn chặn.