litellm

AI GatewaysDevOpsPython

★ 58,593주당 +535조회 5

무엇인가

LiteLLM은 애플리케이션과 LLM 제공자 사이에 놓이는 중계 계층이다. 제공자별 SDK를 직접 호출하던 자리를 대신한다. 같은 코드로 OpenAI, Anthropic, Gemini, Bedrock, Azure, VertexAI, vLLM, Nvidia NIM 등을 호출한다. 배포 형태는 두 가지다. 코드에 임베드하는 Python SDK와 팀 단위 중앙 서비스인 AI Gateway(Proxy Server)다.

어떻게 동작하나

게이트웨이는 Rust 코어와 Python SDK로 구성된다. 클라이언트는 /chat/completions, /responses, /embeddings, /images, /audio, /batches, /rerank, /a2a, /messages 엔드포인트로 요청을 보낸다. 게이트웨이가 요청을 제공자 포맷으로 변환해 전달하고, 응답을 OpenAI 포맷으로 되돌린다. 가상 키 발급, 지출 추적, 가드레일, 로드밸런싱, 로깅, 관리자 대시보드가 프록시 계층에서 처리된다. MCP 서버를 게이트웨이에 등록하면 /chat/completions 호출로 그 도구를 실행한다. A2A 에이전트는 에이전트별 protocolVersion(1.0 또는 0.3)을 지정해 등록한다.

무엇과 다른가

제공자 SDK를 각각 통합하면 인증 방식, 요청 스키마, 오류 타입, 재시도 정책, 비용 집계를 애플리케이션마다 구현해야 한다. LiteLLM은 이 로직을 게이트웨이 한 계층으로 옮긴다. OpenAI 호환 포맷을 쓰므로 제공자를 교체해도 호출 코드를 다시 쓰지 않는다. Python SDK 쪽에는 여러 배포(Azure/OpenAI 등)를 묶는 Router가 있어 재시도와 폴백을 애플리케이션 레벨에서 처리한다.

어떻게 쓰나

Python SDK로 라이브러리에 직접 통합하거나, 프록시 서버를 배포해 팀 단위 게이트웨이로 쓴다. 프로덕션 배포에는 12시간 부하 테스트를 거친 -stable 태그 Docker 이미지를 쓴다. Terraform 모듈로 AWS(ECS Fargate + Aurora + ElastiCache + ALB) 또는 GCP(Cloud Run + Cloud SQL + Memorystore + HTTPS LB)에 게이트웨이·백엔드·UI를 분리한 스택으로 올린다. 제공자 API 키는 AWS Secrets Manager에 두고 gateway_extra_secrets로 ARN을 참조한다. Cursor IDE에서는 MCP 서버를 게이트웨이에 등록해 연결한다.

전제와 한계

MCP OAuth에서 업스트림이 동적 클라이언트 등록을 광고하면서도 401 또는 403을 반환할 수 있다. 제공자가 사전 등록된 OAuth 앱을 요구하면 MCP 서버에 credentials.client_id와 credentials.client_secret을 설정해야 한다. 제공자가 그 앱을 MCP 접근용으로 승인해야 로그인과 도구 호출이 성립한다. A2A 호출에는 a2a-sdk 1.1.0 이상이 필요하다. Cloud Run은 ghcr.io에서 이미지를 직접 풀 수 없어 Artifact Registry 원격 저장소를 먼저 만들어야 한다.

유사 도구