跳至主要內容

EnkryptAI 防護欄

LiteLLM 支援 EnkryptAI 防護欄,用於 LLM 輸入與輸出的內容審核和安全檢查。

快速入門

1. 在您的 LiteLLM config.yaml 中定義防護欄

請在 guardrails 區段下定義您的防護欄:

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: openai/gpt-3.5-turbo
api_key: os.environ/OPENAI_API_KEY

guardrails:
- guardrail_name: "enkryptai-guard"
litellm_params:
guardrail: enkryptai
mode: "pre_call"
api_key: os.environ/ENKRYPTAI_API_KEY
detectors:
toxicity:
enabled: true
nsfw:
enabled: true
pii:
enabled: true
entities: ["email", "phone", "secrets"]
injection_attack:
enabled: true

mode 的支援值

  • pre_call - 在 LLM 請求之前執行,針對輸入
  • post_call - 在 LLM 請求之後執行,針對輸出
  • during_call - 在 LLM 請求期間執行,針對輸入。與 pre_call 相同,但會與 LLM 請求並行執行

可用偵測器

EnkryptAI 支援多種內容偵測類型:

  • toxicity - 偵測有害語言
  • nsfw - 偵測 NSFW(非工作場合適合)內容
  • pii - 偵測可識別個人身分資訊
    • 設定實體:["pii", "email", "phone", "secrets", "ip_address", "url"]
  • injection_attack - 偵測提示注入嘗試
  • keyword_detector - 偵測自訂關鍵字/片語
  • policy_violation - 偵測政策違規
  • bias - 偵測帶有偏見的內容
  • sponge_attack - 偵測 sponge 攻擊

2. 設定環境變數

export ENKRYPTAI_API_KEY="your-api-key"

3. 啟動 LiteLLM 閘道

litellm --config config.yaml --detailed_debug

4. 測試請求

Langchain, OpenAI SDK 使用範例

curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{"role": "user", "content": "Hello, how can you help me today?"}
],
"guardrails": ["enkryptai-guard"]
}'

回應:HTTP 200 成功

內容通過所有偵測器檢查,並被允許通過。

影片導覽

進階設定

使用自訂政策

您可以指定自訂的 EnkryptAI 政策:

guardrails:
- guardrail_name: "enkryptai-custom"
litellm_params:
guardrail: enkryptai
mode: "pre_call"
api_key: os.environ/ENKRYPTAI_API_KEY
policy_name: "my-custom-policy" # Sent via x-enkrypt-policy header
detectors:
toxicity:
enabled: true

使用部署

指定 EnkryptAI 部署:

guardrails:
- guardrail_name: "enkryptai-deployment"
litellm_params:
guardrail: enkryptai
mode: "pre_call"
api_key: os.environ/ENKRYPTAI_API_KEY
deployment_name: "production" # Sent via X-Enkrypt-Deployment header
detectors:
toxicity:
enabled: true

監控模式(記錄但不阻擋)

block_on_violation: false 設為在不阻擋請求的情況下記錄違規:

guardrails:
- guardrail_name: "enkryptai-monitor"
litellm_params:
guardrail: enkryptai
mode: "pre_call"
api_key: os.environ/ENKRYPTAI_API_KEY
block_on_violation: false # Log violations but don't block
detectors:
toxicity:
enabled: true
nsfw:
enabled: true

在監控模式中,所有違規都會被記錄,但請求永遠不會被阻擋。

輸入與輸出防護欄

為輸入與輸出分別設定防護欄:

guardrails:
# Input guardrail
- guardrail_name: "enkryptai-input"
litellm_params:
guardrail: enkryptai
mode: "pre_call"
api_key: os.environ/ENKRYPTAI_API_KEY
detectors:
pii:
enabled: true
entities: ["email", "phone", "ssn"]
injection_attack:
enabled: true

# Output guardrail
- guardrail_name: "enkryptai-output"
litellm_params:
guardrail: enkryptai
mode: "post_call"
api_key: os.environ/ENKRYPTAI_API_KEY
detectors:
toxicity:
enabled: true
nsfw:
enabled: true

設定選項

參數類型說明預設值
api_keystringEnkryptAI API 金鑰ENKRYPTAI_API_KEY 環境變數
api_basestringEnkryptAI API base URLhttps://api.enkryptai.com
policy_namestring自訂政策名稱(透過 x-enkrypt-policy 標頭傳送)None
deployment_namestring部署名稱(透過 X-Enkrypt-Deployment 標頭傳送)None
detectorsobject偵測器設定{}
block_on_violationboolean在違規時阻擋請求true
modestring執行時機:pre_callpost_callduring_call必填

可觀測性

EnkryptAI 防護欄記錄包含:

  • guardrail_statussuccessguardrail_intervenedguardrail_failed_to_respond
  • guardrail_providerenkryptai
  • guardrail_json_response:包含偵測詳細資訊的完整 API 回應
  • duration:防護欄檢查所花費的時間
  • start_timeend_time:時間戳記

這些記錄可透過您設定的 LiteLLM 記錄回呼取得。

錯誤處理

此防護欄會妥善處理錯誤:

  • API 失敗:記錄錯誤並引發例外
  • 速率限制(429):記錄錯誤並引發例外
  • 無效設定:初始化時引發 ValueError

block_on_violation: false 設為即使偵測到違規也繼續處理(監控模式)。

支援

如需更多關於 EnkryptAI 的資訊: