가드레일 공급자: DynamoAI Guardrails
가드레일 공급자: DynamoAI Guardrails
LiteLLM은 LLM 입력과 출력에 대한 콘텐츠 조정 및 정책 강제를 위한 DynamoAI 가드레일을 지원해요.
출처: 문서
본문
빠른 시작 (Quick Start)
1. LiteLLM config.yaml에 가드레일 정의하기
guardrails 섹션 아래에 가드레일을 정의하세요:
config.yaml:
model_list:
- model_name: gpt-5.6-terra
litellm_params:
model: openai/gpt-5.6-terra
api_key: os.environ/OPENAI_API_KEY
guardrails:
- guardrail_name: "dynamoai-guard"
litellm_params:
guardrail: dynamoai
mode: "pre_call"
api_key: os.environ/DYNAMOAI_API_KEY
mode에 대한 지원 값 (Supported values for mode):
pre_call- LLM 호출 전, 입력에 대해 실행post_call- LLM 호출 후, 출력에 대해 실행during_call- LLM 호출 중, 입력에 대해 실행. pre_call과 같지만 LLM 호출과 병행 실행
2. 환경 변수 설정
export DYNAMOAI_API_KEY="your-api-key"
# Optional: Set policy IDs via environment variable (comma-separated)
export DYNAMOAI_POLICY_IDS="policy-id-1,policy-id-2,policy-id-3"
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-terra",
"messages": [
{"role": "user", "content": "What is the capital of France?"}
],
"guardrails": ["dynamoai-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-terra",
"messages": [
{"role": "user", "content": "Content that violates policy"}
],
"guardrails": ["dynamoai-guard"]
}'
차단 시 예상 응답: HTTP 400 Error
{
"error": {
"message": "Guardrail failed: 1 violation(s) detected\n\n- POLICY NAME:\n Action: BLOCK\n Method: TOXICITY\n Description: Policy description\n Policy ID: policy-id-123",
"type": "None",
"param": "None",
"code": "400"
}
}
고급 구성 (Advanced Configuration)
Policy ID 지정:
적용할 특정 DynamoAI 정책을 구성하세요:
guardrails:
- guardrail_name: "dynamoai-policies"
litellm_params:
guardrail: dynamoai
mode: "pre_call"
api_key: os.environ/DYNAMOAI_API_KEY
policy_ids:
- "policy-id-1"
- "policy-id-2"
- "policy-id-3"
커스텀 API Base:
커스텀 DynamoAI API 엔드포인트를 지정하세요:
guardrails:
- guardrail_name: "dynamoai-custom"
litellm_params:
guardrail: dynamoai
mode: "pre_call"
api_key: os.environ/DYNAMOAI_API_KEY
api_base: "https://custom.dynamo.ai"
추적용 모델 ID (Model ID for Tracking):
추적·로깅 목적으로 모델 ID를 추가하세요:
guardrails:
- guardrail_name: "dynamoai-tracked"
litellm_params:
guardrail: dynamoai
mode: "pre_call"
api_key: os.environ/DYNAMOAI_API_KEY
model_id: "gpt-4-production"
입력 및 출력 가드레일 (Input and Output Guardrails):
입력과 출력에 별도 가드레일 구성:
guardrails:
# Input guardrail
- guardrail_name: "dynamoai-input"
litellm_params:
guardrail: dynamoai
mode: "pre_call"
api_key: os.environ/DYNAMOAI_API_KEY
# Output guardrail
- guardrail_name: "dynamoai-output"
litellm_params:
guardrail: dynamoai
mode: "post_call"
api_key: os.environ/DYNAMOAI_API_KEY
구성 옵션 (Configuration Options)
| 파라미터 | 타입 | 설명 | 기본값 |
|---|---|---|---|
| api_key | string | DynamoAI API 키 (필수) | DYNAMOAI_API_KEY env var |
| api_base | string | DynamoAI API base URL | https://api.dynamo.ai |
| policy_ids | array | 적용할 DynamoAI 정책 ID 목록 (선택) | DYNAMOAI_POLICY_IDS env var (comma-separated) |
| model_id | string | 추적/로깅용 모델 ID | DYNAMOAI_MODEL_ID env var |
| mode | string | 실행 시점: pre_call, post_call, 또는 during_call | 필수 |
관측성 (Observability)
DynamoAI 가드레일 로그는 다음을 포함해요:
guardrail_status: success, guardrail_intervened, 또는 guardrail_failed_to_respondguardrail_provider: dynamoaiguardrail_json_response: 정책 세부 정보가 있는 전체 API 응답duration: 가드레일 검사에 걸린 시간start_time과end_time: 타임스탬프
이 로그들은 구성한 LiteLLM 로깅 콜백을 통해 사용할 수 있어요.
오류 처리 (Error Handling)
가드레일은 오류를 우아하게 처리해요:
- API 실패: 오류를 기록하고
guardrail_failed_to_respond상태로 예외 발생 - 정책 위반: 상세 위반 정보와 함께 ValueError 발생
- 잘못된 구성: API 키가 없으면 초기화 시 ValueError 발생
현재 제한사항 (Current Limitations)
- 현재 BLOCK 동작만 지원돼요
- WARN, REDACT, SANITIZE 동작은 성공으로 취급 (통과)
지원 (Support)
DynamoAI에 대한 더 자세한 정보:
- 웹사이트: https://dynamo.ai
- 문서: API 문서는 DynamoAI에 문의