이 글에서는 이메일을 [EMAIL REDACTED]문자열로 변경하는 LiteLLM Guardrail을 실습합니다.
Guardrail이란
Guardrail은 AI 모델를 안전하게 사용하기 위해 안전장치를 설정하는 기능입니다. 예를 들어 요청에 이메일, 주민번호 같은 개인정보가 들어 있다면 AI 모델로 보내기 전에 가리거나 차단해야 합니다. 이런 기능을 Guardrail이 합니다.
LiteLLM Guardrail은 AI provier Guardrail을 쓰거나 자체 Guardrail을 사용합니다.

LiteLLM 자체 Guardrail은 모델 호출 전후의 정책을 설정합니다.
| pre_call | LLM 호출 전 | 입력 검사, 차단 또는 마스킹 |
| post_call | LLM 호출 후 | 입력과 출력 검사, 차단 또는 마스킹 |
| during_call | LLM 호출과 병렬 | 입력을 검사하며, 검사가 끝날 때까지 응답 반환 보류 |
Guardrail 실습
이 글의 실습에서는 pre_call을 사용합니다. Guardrail은 Gurailrail메뉴에서 생성할 수 있습니다.
예제 Guardrail은 정규식으로 이메일 주소를 찾은 뒤 modify()를 호출해 [EMAIL REDACTED]로 바꿉니다. 모든 요청에 적용하려면 Default On도 활성화했습니다.

Test Playground에서 먼저 확인하기
Guardrails → Test Playground에서 만든 Guardrail을 선택하고 test@example.com을 입력합니다. 실행 결과가 [EMAIL REDACTED]로 바뀌면 정규식과 마스킹 로직이 정상입니다.

API 호출로 모델에 전달된 값 확인하기
같은 Guardrail이 실제 Chat Completions 요청에도 적용되는지 확인합니다. 아래 요청은 모델이 입력을 그대로 돌려주도록 작성했습니다.
curl "$LITELLM_URL/v1/chat/completions" \
-H "Authorization: Bearer $LITELLM_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4.1-nano",
"messages": [
{
"role": "user",
"content": "Echo my request. test@example.com is my address. This is a LiteLLM Guardrail test. Reply with the message unchanged."
}
]
}'
응답에는 test@example.com 대신 [EMAIL REDACTED]가 들어 있습니다. AI모델에게 요청하기 전, pre_call Guardrail이 이메일을 마스킹했고 AI모델은 마스킹된 문장을 입력으로 받아 그대로 응답으로 전송했습니다.

참고자료
'전공영역 공부 기록' 카테고리의 다른 글
| LiteLLM QuickStart - Budget limit(비용제한) (0) | 2026.07.12 |
|---|---|
| LiteLLM QuickStart - 모델 등록하고 호출해보기 (0) | 2026.07.12 |
| RPM/DNF 설치 자동화가 lock 에러로 실패할 수 상황 (0) | 2026.07.05 |
| 같은 코드를 여러 팀이 관리할 때 테스트 환경은 어떻게 제공해야할까?(feat Argo CD Pull Request generator) (0) | 2026.07.04 |
| ArgoCD private repo 연동: Github App이 PAT보다 안전한 이유 (0) | 2026.06.29 |