AI Neo Lab
스킬

LiteLLM으로 100개 이상 LLM을 OpenAI 형식 하나로 호출하는 법

여러 LLM 공급자를 쓰려면 각기 다른 SDK, 인증, 요청 포맷, 에러 처리를 따로 관리해야 해서 코드가 금방 복잡해집니다. LiteLLM은 Rust 코어와 Python SDK로 100여 개 모델을 OpenAI 호환 인터페이스 하나로 묶고, 프록시 서버로 비용 추적·가드레일·로드밸런싱·로깅까지 한곳에서 처리합니다. 이 글은 설치부터 첫 호출, 프록시 배포, 운영 팁까지 6단계로 정리합니다.

LLM 공급자가 늘수록 코드 여기저기에 공급자별 래퍼가 생기고, 키 관리·비용 확인·장애 대응이 각각 따로 놀게 됩니다. LiteLLM은 이 파편화를 단일 게이트웨이로 흡수해 개발자는 '모델 이름만 바꾸면 되는' 경험을 얻게 해줍니다.

LiteLLM이란 무엇인가요

LiteLLM은 100개 이상의 LLM API를 OpenAI 형식 하나로 일관되게 호출할 수 있도록 돕는 오픈소스 AI 게이트웨이예요. Rust 코어 기반의 빠른 성능과 Python SDK의 편리함을 결합해 Bedrock, Azure, OpenAI, Anthropic, VertexAI, vLLM, Nvidia NIM 등 다양한 공급자의 모델을 단일 인터페이스로 묶어줘요.

모델마다 서로 다른 인증 방식이나 요청 규격, 에러 형식을 맞추느라 코드를 계속 뜯어고칠 필요가 없어요. LiteLLM을 적용하면 기존의 OpenAI 호출 코드를 그대로 유지하면서 뒤단의 모델만 자유롭게 교체할 수 있답니다.

사용 모드동작 방식주요 특징
Python SDK코드 내 직접 라이브러리 연동간편한 코드 기반 호출 및 빠른 프로토타입 제작
AI 게이트웨이 (프록시 서버)중앙 집중형 서버 배포팀 단위 운영, 자체 호스팅, 통합 프록시 제공

LiteLLM은 단순한 API 규격 통일에 그치지 않고, 엔터프라이즈 환경에서 꼭 필요한 실질적인 운영 기능들을 함께 지원해요.

  • 비용 추적(Cost Tracking): 모델별 사용량과 비용을 한눈에 관리
  • 가드레일(Guardrails): 안전하고 통제된 모델 입출력 환경 마련
  • 로드 밸런싱(Load Balancing): 트래픽을 분산해 안정적인 API 호출 유지
  • 로깅(Logging): 전체 호출 흐름을 기록하고 모니터링

왜 LiteLLM을 쓰나요

여러 공급자(Lambda)를 동시에 쓸 때 가장 큰 걸림돌은 SDK·인증·요청 포맷·에러 타입이 제각각이라는 점이에요. 공급자마다 다른 파이썬 패키지를 깔고, 키 관리 방식도 달라서 운영 코드 여기저기에 조건문이 퍼지게 되죠. LiteLLM은 이 차이를 단일 OpenAI 호환 인터페이스로 흡수해, 애플리케이션 코드를 고치지 않고 모델만 바꿔 끼울 수 있게 해줘요.

프록시 서버로 띄우면 가상 키(virtual key) 발급·비용 추적·가드레일·로드밸런싱·로깅까지 한곳에서 처리돼요. 팀 전체가 같은 엔드포인트를 쓰니 모델 교체·폴백·비용 통제가 코드 변경 없이 설정만으로 가능해집니다. 100개 이상 모델을 OpenAI 포맷 그대로 호출하니, 기존 OpenAI 클라이언트 코드(openai.ChatCompletion.create(...))를 거의 그대로 재사용할 수 있어요.

  • 공급자별 SDK·인증·포맷 차이 → 단일 인터페이스로 통합
  • Drop-in OpenAI 호환: 코드 수정 없이 모델 교체
  • 프록시 서버: 가상 키·비용·가드레일·로드밸런싱·로깅 중앙화
  • 설정만으로 폴백·우선순위·비용 상한 제어 가능

설치와 첫 호출 3단계

LiteLLM을 로컬에서 바로 써보려면 Python 패키지만 설치하면 됩니다. 터미널에서 아래 명령어를 실행하세요.

터미널에서 실행
pip install litellm

설치가 끝나면 사용할 LLM 공급자의 API 키를 환경 변수로 등록합니다. OpenAI를 예로 들면 OPENAI_API_KEY를, Anthropic이면 ANTHROPIC_API_KEY를 쉘 프로파일(.bashrc, .zshrc 등)이나 실행 직전 export 명령으로 지정하세요.

환경 변수 예시 (OpenAI)
export OPENAI_API_KEY="sk-..." # 본인 키로 교체

첫 completions 요청 보내기

파이썬에서 첫 호출
from litellm import completion

resp = completion(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "안녕, 한 줄로 인사해줘"}],
)
print(resp.choices[0].message.content)
  1. 패키지 설치

    pip install litellm 실행

  2. 키 설정

    사용할 공급자의 API 키를 환경 변수로 export

  3. 첫 호출

    completion(model="공급자/모델명", messages=[...]) 호출

프록시 서버(게이트웨이) 배포와 팀 공유

LiteLLM 프록시 서버는 팀 전체가 하나의 엔드포인트로 100개 이상 LLM을 OpenAI 형식 그대로 쓰게 해주는 게이트웨이예요. 컨테이너로 띄우면 인증·라우팅·비용 추적·가드레일을 중앙에서 관리할 수 있어 운영 부담이 크게 줄어듭니다.

한눈에 보는 주요 기능 비교표

LiteLLM의 핵심 스펙을 한눈에 비교할 수 있도록 표로 정리했어요. 100개 이상 공급자를 OpenAI 포맷 하나로 호출하면서, 운영에 꼭 필요한 기능이 모두 내장돼 있어요.

분류주요 기능설명
공급자 지원100+ LLM 제공자OpenAI, Anthropic, Gemini, Bedrock, Azure, VertexAI, vLLM, NVIDIA NIM 등 주요 클라우드·로컬 모델을 OpenAI 호환 포맷으로 통합
트래픽 제어로드밸런싱 & 폴백여러 모델·엔드포인트에 요청을 분산하고, 장애 시 자동으로 대체 모델로 전환해 가용성 확보
비용·사용량 관리토큰 예산 & 사용량 추적프로젝트·키·모델 단위로 토큰 한도 설정, 실시간 비용 집계 및 알림 가능
보안·거버넌스프롬프트 가드레일PII 마스킹, 유해 콘텐츠 차단, 프롬프트 인젝션 탐지 등 입력·출력 필터를 미들웨어로 적용
관측성로깅 백엔드 연동Langfuse, LangSmith, Datadog, OpenTelemetry, ClickHouse, PostgreSQL 등 20+ 백엔드에 요청·응답·비용 로그 전송
배포 형태Python SDK / 프록시 서버 / 호스티드라이브러리 임포트, 도커·쿠버네티스로 자체 게이트웨이 운영, 또는 매니지드 서비스 즉시 사용
인증·접근 제어가상 키 & 팀/프로젝트 스코프단일 엔드포인트 뒤에 발급 키별로 모델·예산·속도 제한을 다르게 적용
성능 기반Rust 코어 + Python SDK핵심 경로는 Rust로 처리해 지연 최소화, Python 생태계와 자연스럽게 연동

위 표는 README와 공식 문서에 공개된 주요 기능만을 추려 정리한 거예요. 각 기능의 상세 설정 방법은 다음 섹션에서 프록시 서버 배포·설정 예시와 함께 다룰 예정이에요.

운영 시 주의할 점과 트러블슈팅

LiteLLM은 100개 이상의 LLM을 하나의 OpenAI 형식으로 호출할 수 있는 오픈소스 AI 게이트웨이예요. 3년 3개월 전(2023년 7월)부터 시작돼 이번 달(2026년 10월)에도 활발히 업데이트되고 있답니다. 운영 환경에서는 라이브러리 버전이 급변할 수 있기 때문에, pip install litellm==<버전>처럼 버전을 고정해 두는 것이 좋습니다. 버전 고정은 예기치 않은 API 변화로 인한 장애를 예방해 줍니다.

LiteLLM은 로드밸런싱·로깅·가드레일·비용 추적 기능을 기본 제공해요. 이 로그를 활용하면 레이턴시를 실시간으로 모니터링하고, 비정상적인 지연이 감지되면 알림을 받을 수 있습니다. 특히 엔터프라이즈 환경에서는 로그를 중앙화된 모니터링 툴(예: Grafana, Prometheus)과 연동해 두는 것이 안전합니다.

  • litellm 로깅 옵션을 활성화한다: export LITELLM_LOG_LEVEL=INFO
  • 로그 파일을 주기적으로 압축·보관한다
  • 레이트 제한(Rate Limit) 및 평균 응답시간을 대시보드에 시각화한다

API 키 관리도 중요한데, LiteLLM은 가상 키(Virtual Key) 방식을 지원해요. 가상 키를 사용하면 실제 공급자 키를 노출하지 않고도 요청을 라우팅할 수 있습니다. 키가 유출됐다고 생각되면, 가상 키를 재생성하고 해당 키를 사용하는 모든 서비스에 새 키를 적용해야 합니다.

키 순환 설정 방법

1️⃣ export VIRTUAL_KEY=새키값 로 환경변수를 바꾸고, 2️⃣ LiteLLM 프록시를 재시작하면 새로운 키가 적용됩니다. 3️⃣ 기존 키는 즉시 폐기합니다.

스트리밍 호출 시 타임아웃 설정을 놓치기 쉽습니다. LiteLLM 자체에서는 기본 타임아웃을 제공하지 않으니, 클라이언트 코드에서 timeout 파라미터를 명시해 주세요. 또한 모델마다 지원하는 파라미터(예: temperature, max_tokens)가 다르니, 각 공급자 문서를 확인해 일관된 요청을 만드는 것이 필요합니다.

지원 기능제공 여부
로드밸런싱✅
로깅✅
가드레일✅
비용 추적✅

이런 글도 있어요