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

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

오류 처리 (Error Handling)

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

  • API 실패: 오류 기록 및 예외 발생
  • 요율 제한 (429): 오류 기록 및 예외 발생
  • 잘못된 구성: 초기화 시 ValueError 발생
  • 위반 감지: 예외 발생 및 요청 차단

지원 (Support)

EnkryptAI에 대한 더 자세한 정보: