1. AI 敏感詞過濾使用情境
一條keyword 規則是引擎中最簡單的規則:你給它一份詞彙清單,閘道就會在某階段針對文字比對其中任何一個。比對是不分大小寫的子字串——BadWord、badword 和 BADWORD 都會匹配,而且即使該詞嵌在一個更長的詞中也會匹配(所以 class 也會匹配 classic)。每個詞被視為一個字面字串,而非模式;你不必跳脫正規表示式的元字元。
在主控台中儲存規則一次,把防護欄綁定到任何 API 金鑰(或將它設為工作區預設值),那把金鑰上的每次呼叫都會被審查,無需修改 SDK,無需重新部署。政策存在於閘道中,而不是你的應用程式中——你的應用程式像以前一樣繼續呼叫 /v1/chat/completions。
2. 在主控台中撰寫規則
這裡的每個步驟都是你自己工作階段下的一個主控台動作。建立與編輯防護欄需要工作區中的 Developer+。只有最後的/v1/* 呼叫使用 sk-orca-... 中繼金鑰。
測試它
開啟 Test 分頁,貼上一個包含禁用詞的樣本,選擇一個階段,並在本機執行政策——沒有上游呼叫,不消耗配額(參見 §5)。
3. 選擇動作
一條關鍵字規則每條規則挑選一個動作:Block——拒絕呼叫
Block——拒絕呼叫
任何匹配都會以 HTTP 400
guardrail_blocked 拒絕請求。一個被封鎖的請求不消耗配額——輸入階段封鎖在計量之前觸發;輸出階段封鎖會退還已預先扣除的配額——並被標記為 skip-retry。用於絕不能在任一方向通過的詞彙。參見 guardrail_blocked 錯誤。Mask——遮罩詞彙
Mask——遮罩詞彙
每個匹配項會就地替換為一個隱碼標籤,而請求以淨化後的文字繼續——上游模型永遠看不到原始詞彙。參見 動作。
Flag——僅觀察
Flag——僅觀察
記錄一個匹配且不改變流量的任何部分。用它來在切換到強制執行之前衡量一個詞彙多常出現。
Spotlight——包裹為不可信資料(輸入)
Spotlight——包裹為不可信資料(輸入)
把匹配到的文字包裹在分隔符中(例如
⟦UNTRUSTED⟧…⟦/UNTRUSTED⟧),讓模型把它當作資料而非指令——一種輸入階段的提示注入防禦。文字仍會抵達模型,只是被圍起來。參見 動作。4. 串流覆蓋
你挑選的動作會與回應是否串流互動:| 動作 | 非串流 | 串流 |
|---|---|---|
block(輸出) | 強制執行 | 強制執行——掃描器切斷串流 |
mask(輸出) | 強制執行 | 尚未——遵守封鎖決策,遮罩後的文字不轉送(規劃中) |
5. 綁定前先測試
在任何金鑰指向它之前,先證明規則如你所期望地運作。開啟編輯器內的 Test 分頁,貼上一個樣本,選擇階段,然後執行:6. 發送請求
用一把綁定到banned-terms 的金鑰,像以前一樣呼叫 OrcaRouter——無新標頭,無需修改 SDK:
guardrail_blocked 被拒絕。把動作換成 mask,該詞彙就會改為在轉送前就地被遮罩。
7. 查看觸發了什麼
每條觸發的規則都會記錄一個 match——規則類型、動作、階段,以及一個詳情字串(對於關鍵字規則,是有多少個詞彙匹配)——呈現在工作區 Matches 動態中。 如果一個良性詞彙持續匹配(一個是常見詞子字串的封鎖清單項目),從 Matches 動態把它標記為誤報並收緊該項目。參見 調校誤報。8. 下一步去哪裡
正規表示式偵測器
當字面封鎖清單不夠時,匹配結構化模式——SKU、訂單號、格式。
品牌安全
建立在關鍵字規則之上的髒話、競爭對手提及與兒童安全預設。
動作
block、mask 與 flag 有何不同,以及何時使用各自。
防護欄參考
完整引擎——每種規則類型、欄位與路由。
llm_judge 規則 會針對一個工作區模型執行語意檢查。