가드레일 공급자: EnkryptAI Guardrails
가드레일 공급자: EnkryptAI Guardrails
LiteLLM은 LLM 입력과 출력에 대한 콘텐츠 조정 및 안전 검사를 위한 EnkryptAI 가드레일을 지원해요.
출처: 문서
본문
빠른 시작 (Quick Start)
1. LiteLLM config.yaml에 가드레일 정의하기
guardrails 섹션 아래에 가드레일을 정의하세요:
model_list:
- model_name: gpt-5.6-luna
litellm_params:
model: openai/gpt-5.6-luna
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에 대한 지원 값 (Supported values for mode):
pre_call- LLM 호출 전, 입력에 대해 실행post_call- LLM 호출 후, 출력에 대해 실행during_call- LLM 호출 중, 입력에 대해 실행. pre_call과 같지만 LLM 호출과 병행 실행
사용 가능한 감지기 (Available Detectors):
EnkryptAI는 여러 콘텐츠 감지 유형을 지원해요:
toxicity- 유해한 언어 감지nsfw- NSFW(Not Safe For Work) 콘텐츠 감지pii- 개인 식별 정보 감지.entities: ["pii", "email", "phone", "secrets", "ip_address", "url"]구성injection_attack- 프롬프트 인젝션 시도 감지keyword_detector- 커스텀 키워드/문구 감지policy_violation- 정책 위반 감지bias- 편향 콘텐츠 감지sponge_attack- 스펀지 공격 감지
2. 환경 변수 설정
export ENKRYPTAI_API_KEY="your-api-key"
3. LiteLLM 게이트웨이 시작
litellm --config config.yaml --detailed_debug
4. 테스트 요청
성공 호출:
curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ***" \
-d '{
"model": "gpt-5.6-luna",
"messages": [
{"role": "user", "content": "Hello, how can you help me today?"}
],
"guardrails": ["enkryptai-guard"]
}'
응답: HTTP 200 Success. 콘텐츠가 모든 감지기 검사를 통과하고 통과되도록 허용돼요.
실패 호출:
콘텐츠가 감지기 정책을 위반하면 실패할 것으로 예상:
curl -i http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ***" \
-d '{
"model": "gpt-5.6-luna",
"messages": [
{"role": "user", "content": "My email is [email protected] and my SSN is 123-45-6789"}
],
"guardrails": ["enkryptai-guard"]
}'
실패 시 예상 응답: HTTP 400 Error
{
"error": {
"message": {
"error": "Content blocked by EnkryptAI guardrail",
"detected": true,
"violations": ["pii"],
"response": {
"summary": {
"pii": 1
},
"details": {
"pii": {
"detected": ["email", "ssn"]
}
}
}
},
"type": "None",
"param": "None",
"code": "400"
}
}
고급 구성 (Advanced Configuration)
커스텀 정책 사용 (Using Custom Policies)
커스텀 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
감지는 policy_name이 참조하는 정책이 완전히 제어해요. LiteLLM은 텍스트와 이 헤더만 EnkryptAI에 보내므로, 감지기별 설정은 EnkryptAI 정책 자체에서 구성해야 해요. 감지된 위반은 요청을 차단해요.
입력 및 출력 가드레일 (Input and Output Guardrails)
입력과 출력에 별도 가드레일 구성:
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
구성 옵션 (Configuration Options)
| 파라미터 | 타입 | 설명 | 기본값 |
|---|---|---|---|
| api_key | string | EnkryptAI API 키 | ENKRYPTAI_API_KEY env var |
| api_base | string | EnkryptAI API base URL | https://api.enkryptai.com |
| policy_name | string | 커스텀 정책 이름 (x-enkrypt-policy 헤더로 전송) | None |
| mode | string | 실행 시점: pre_call, post_call, 또는 during_call | 필수 |
관측성 (Observability)
EnkryptAI 가드레일 로그는 다음을 포함해요:
guardrail_status: success, guardrail_intervened, 또는 guardrail_failed_to_respondguardrail_provider: enkryptaiguardrail_json_response: 감지 세부 정보가 있는 전체 API 응답duration: 가드레일 검사에 걸린 시간start_time과end_time: 타임스탬프
이 로그들은 구성한 LiteLLM 로깅 콜백을 통해 사용할 수 있어요.
오류 처리 (Error Handling)
가드레일은 오류를 우아하게 처리해요:
- API 실패: 오류 기록 및 예외 발생
- 요율 제한 (429): 오류 기록 및 예외 발생
- 잘못된 구성: 초기화 시 ValueError 발생
- 위반 감지: 예외 발생 및 요청 차단
지원 (Support)
EnkryptAI에 대한 더 자세한 정보: