가드레일 공급자: 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_respond
  • guardrail_provider: dynamoai
  • guardrail_json_response: 정책 세부 정보가 있는 전체 API 응답
  • duration: 가드레일 검사에 걸린 시간
  • start_timeend_time: 타임스탬프

이 로그들은 구성한 LiteLLM 로깅 콜백을 통해 사용할 수 있어요.

오류 처리 (Error Handling)

가드레일은 오류를 우아하게 처리해요:

  • API 실패: 오류를 기록하고 guardrail_failed_to_respond 상태로 예외 발생
  • 정책 위반: 상세 위반 정보와 함께 ValueError 발생
  • 잘못된 구성: API 키가 없으면 초기화 시 ValueError 발생

현재 제한사항 (Current Limitations)

  • 현재 BLOCK 동작만 지원돼요
  • WARN, REDACT, SANITIZE 동작은 성공으로 취급 (통과)

지원 (Support)

DynamoAI에 대한 더 자세한 정보: