guardrail_id,該金鑰發出的每一次 /v1/* 呼叫都會在下次請求時被審查,無需重新部署,也無需修改 SDK。
本頁只涵蓋綁定本身——如何綁定、解析如何選出生效的政策,以及關閉開關做什麼。規則類型、動作與階段請見 防護欄參考。
1. 用 guardrail_id 為每把 API 金鑰綁定防護欄
防護欄是工作區層級的,但強制執行是逐金鑰決定的。每把 API 金鑰 都帶有一個 guardrail_id 欄位。讓它指向一個防護欄,那把金鑰——而且只有那把金鑰——就會被該政策審查。
這讓一個工作區得以在不同金鑰上執行不同政策:
- 一把綁定到嚴格
pii-blocker的生產金鑰, - 一把綁定到較輕量
flag-only政策的預備金鑰, - 一把沒有綁定任何東西的內部金鑰。
https://api.orcarouter.ai/v1/chat/completions。
中繼金鑰(
sk-orca-…)是你的應用程式發送的東西。把防護欄綁定到它是一個由你工作階段驗證的主控台/token API 動作——你絕不會用中繼金鑰本身去設定防護欄。2. 在主控台中綁定
從主控台設定綁定(角色把關:編輯金鑰與防護欄需要 Developer+)。
之後,用綁定金鑰發出的正常中繼呼叫就會自動被審查:
[EMAIL] 而永遠看不到地址——同一個呼叫,無需修改客戶端。
3. 解析如何選出生效的防護欄
對每個請求,閘道會按此順序解析出恰好一個生效的防護欄(或無):1 — 明確的金鑰綁定
1 — 明確的金鑰綁定
如果金鑰的
guardrail_id 指向一個防護欄,且該防護欄存在,且已啟用,則套用它。明確綁定具有權威性——它永不會靜默回退到工作區預設值。2 — 工作區預設值
2 — 工作區預設值
如果金鑰沒有綁定(
guardrail_id 為 0 /未設定),則套用工作區已啟用的預設防護欄(如果有設定的話)。3 — 兩者皆未解析出
3 — 兩者皆未解析出
不執行任何強制。請求與從未啟用此功能的工作區位元組完全一致——沒有東西被封鎖、遮罩或記錄。
4. 關閉開關:停用綁定,無回退
這是人們常忽略的部分。一個明確的金鑰綁定本身就是權威——所以停用綁定的防護欄會讓那把金鑰的強制執行關閉,而且它不會回退到工作區預設值。| 金鑰狀態 | 由什麼審查請求 |
|---|---|
guardrail_id → 已啟用的防護欄 | 該防護欄 |
guardrail_id → 已停用的防護欄 | 無(不回退) |
guardrail_id → 已刪除/遺失 | 無(不回退) |
guardrail_id = 0 /未設定 | 工作區預設值(如果有的話) |
5. 解除綁定或清除綁定
若要停止用某個特定防護欄審查一把金鑰,你有兩個結果不同的不同動作:- 清除綁定——將金鑰的
guardrail_id設為0。該金鑰現在會解析到工作區預設值(如果有的話),或解析到無。 - 停用防護欄——將防護欄的
enabled關閉。現在每一把明確綁定到它的金鑰都會解析到無(依 §4),而那些依賴它作為工作區預設值的金鑰則落到不執行強制。
6. 一個被審查的請求會(與不會)花費什麼
一旦解析出防護欄,它的規則就會決定請求。對綁定金鑰而言值得知道的兩種結果:- 一次 block 會傳回 HTTP 400,錯誤代碼為
guardrail_blocked,並指名觸發的防護欄與規則。它不消耗配額——輸入階段封鎖在計量之前觸發,輸出階段封鎖會退還已預先扣除的配額——並被標記為 skip-retry。 - 一次 mask 會把匹配項改寫為一個具型別的標籤(例如
[EMAIL]),並以淨化後的形式讓請求通過;上游模型永遠看不到原始內容。
guardrail_blocked 錯誤 頁面,輸出規則在串流回應上的行為請見 串流覆蓋。
7. 下一步去哪裡
建立你的第一個防護欄
建立你將綁定到金鑰的政策。
帳戶預設防護欄
一次審查工作區中的每一把金鑰。
防護欄參考
規則類型、動作、階段、PII、評審、接地。
金鑰、政策與工作區
綁定如何在閘道中限定範圍。
