1. 為何在綁定金鑰前測試 AI 防護欄政策
一個內容政策有兩種失敗模式,而它們朝相反方向拉扯:- 漏網——一次攻擊或一次洩漏溜過去,因為沒有規則觸發。
- 誤報——一個良性提示被封鎖或遮罩,因為一條規則過於寬泛。
兩個工具都完全透過管理 API(
/api/guardrail/*)在你的工作階段上執行——絕非中繼金鑰。它們在本機評估文字並不向上游傳送任何東西,所以一次測試執行不消耗模型配額。2. Test 分頁——一個樣本、即時裁決
每個防護欄編輯器都有一個 Test 分頁。貼上一個樣本,選擇一個階段(input 或 output),並執行政策的目前草稿。你會得到完整的決策——blocked、mutated、sanitized 文字,以及 violations 清單——這樣你就能在儲存前證明單一規則如你所期望地運作。
Test 分頁用於「這一條規則做對了嗎」。若要一次跨數百個提示衡量一個政策,使用 Eval。
3. Eval 分頁——針對一個語料庫為政策評分
Eval 分頁針對一個有標籤樣本的語料庫執行你的防護欄,並回報它的評分:整體與每類別的精確率、召回率與 F1,外加它弄錯的確切樣本。用它來調校一個llm_judge rubric、證明一條封鎖規則捕捉到一個已知攻擊家族,或在一個過於寬泛的正規表示式開始拒絕好流量之前捕捉它。
一次執行會隨進行串流進度(每完成一個樣本一個事件),並持久化一筆你之後可重新開啟的執行列——queued → running → complete,並在執行時為規則拍快照,這樣之後對防護欄的一次編輯永不會重寫一次舊執行的裁決。
隨附語料庫
烘焙進閘道的紅隊與良性集合——提示注入、越獄、PII/密鑰、多語言、過度拒絕。無需設定。
自訂 JSONL
上傳你自己的有標籤集合,以針對你的真實流量形態衡量政策。
4. 一個語料庫長什麼樣(JSONL)
一個語料庫是 JSONL——每行一個 JSON 物件。每行是一個有標籤的樣本:要評估的text、它所屬的 stage,以及政策應該產生的 expected_action。執行器把政策的實際裁決與那個標籤比較以為執行評分。
欄位參考
欄位參考
| 欄位 | 含義 |
|---|---|
id | 每列唯一。必填——空 id 列會作為格式錯誤被丟棄。 |
text | 要評估的提示或完成內容。必填。 |
stage | input 或 output——讓樣本通過哪個階段的規則。 |
expected_action | block、mask、flag 或 ""(良性——不預期動作)。 |
category | 將每類別指標分桶的自由格式標籤。 |
格式錯誤的列被容忍,而非靜默
格式錯誤的列被容忍,而非靜默
一個帶有壞 JSON 或遺失
id/text 的列會被略過並計數,而非致命——單一錯字永不會炸掉整個執行。載入器會為長的多行提示提升它的緩衝區,所以一個在一個 JSON 字串內嵌入換行的樣本能正常解析。5. 隨附語料庫——紅隊集合,零設定
閘道出貨一份精選語料庫的目錄,你可以立即執行——每一個在選擇器中都攜帶它的來源、授權、語言覆蓋,以及一個樣本預覽。它們被分組為跨越實際流量所見攻擊面的 11 個類別:| 類別 | 它探測什麼 |
|---|---|
prompt_injection | 指令覆寫與人類撰寫的注入提交。 |
jailbreak_single_turn | 真實的野外越獄 + 一個學術行為基準。 |
jailbreak_encoded_multiturn | base64 / ROT13 / leetspeak / 酬載拆分探測。 |
indirect_agent | 透過工具輸出傳遞給一個使用工具的代理的注入。 |
multilingual | 跨多種語言的母語人士紅隊提示,含低資源語言。 |
pii_secrets | 電子郵件、SSN、卡號、IBAN、API 金鑰、AWS 金鑰、JWT。 |
toxicity | 有害生成提示與過度拒絕對照。 |
bias | 刻板印象與歧視探測。 |
hallucination | 對抗性事實性/忠實度集合。 |
hazardous_knowledge | 雙用途化學/生物/網路知識探測。 |
over_refusal_benign | 看起來不安全的安全提示——你的誤報退步守衛。 |
隨附的
owasp_llm_top10 語料庫是一個涵蓋 OWASP LLM Top 10 攻擊家族(提示注入、越獄、不安全輸出、資料外洩)的有標籤測試集——它是一個用以針對其執行評測的語料庫,而非一個合規包。關於具現化政策的框架包,參見 合規。6. 一個具體範例——評測 PII Shield 預設
假設你從 PII Shield 預設(一條pii 規則,mask)開始,並想在把它綁定到一把金鑰之前確認它捕捉到一個模型可能發出的識別碼形狀。針對隨附的 pii_smoke 語料庫執行它。
Eval 是一個讀取層級的動作(POST /api/guardrail/:id/eval,Member)——它持久化一筆執行列但不變動任何政策:
expected 對 got)的failures 清單,這樣你就能 grep 語料庫並修正規則。隨時從 Runs 清單(GET /api/guardrail/:id/eval/runs)重新開啟它。
7. 自訂語料庫——針對你自己的流量測試
隨附集合證明政策處理已知攻擊。若要證明它處理你的提示,上傳你自己的 JSONL。有三種方式把一次評測指向一個語料庫,而它們按此順序解析:臨時上傳(corpus_data)
臨時上傳(corpus_data)
在評測請求上行內傳遞一個 base64 編碼的 JSONL blob。勝過其他一切——反覆調整一個草稿集合而不把它儲存到工作區。
已儲存的語料庫(corpus_id)
已儲存的語料庫(corpus_id)
透過
POST /api/guardrail/eval/corpora(Developer+)上傳一次,然後在未來執行中以 id 引用它。名稱必須匹配 ^[a-z][a-z0-9_]*$ 且不能遮蔽一個隨附名稱。隨附(corpus_name)
隨附(corpus_name)
指名其中一個出貨的語料庫,如 §6。
GET /api/guardrail/eval/corpora(Member)列出與檢查它們;上傳與刪除是 Developer+。
8. 讀懂分數
執行器把每個樣本分類進一個混淆矩陣,並從中推導出頭條指標:| 術語 | 含義 |
|---|---|
| 召回率 | 在應該觸發政策的提示中,有多少觸發了。低召回率 = 漏網。 |
| 精確率 | 在政策觸發的提示中,有多少本該觸發。低精確率 = 誤報。 |
| F1 | 調和平均——一個會懲罰一面倒調校的數字。 |
9. 下一步去哪裡
調校誤報
把一個失敗清單變成一個更緊、更低雜訊的政策。
串流覆蓋
哪些階段/動作組合在 SSE 流量上成立——在你依賴它之前先驗證。
匹配動態
一旦上線,每條觸發的規則都落在這裡——評測的生產對應物。
版本控制
在一次評測告訴你上次變更退步後,比對與還原一個政策。
