GitHub - 1rgs/claude-code-proxy: Run Claude Code on OpenAI models
요약
PREFERRED_PROVIDER 환경 변수를 통해 선호하는 백엔드를 구성할 수 있습니다.BIG_MODEL 및 SMALL_MODEL 설정을 통해 sonnet과 haiku 같은 Claude 모델 요청을 OpenAI 또는 Gemini의 특정 모델에 유연하게 매핑하여 사용할 수 있습니다.상세 내용
1rgs/claude-code-proxy는 Anthropic API를 위한 프록시 서버로, Anthropic 클라이언트(예: Claude Code)가 Gemini, OpenAI 또는 Anthropic 자체 백엔드와 상호작용할 수 있도록 지원합니다. 이 프로젝트의 핵심은 LiteLLM 라이브러리를 활용하여 다양한 LLM(Large Language Model) 공급자 간의 요청 및 응답 형식을 투명하게 변환하는 데 있습니다.핵심 작동 방식 (Core Methodology):
이 프록시는 Anthropic API 형식의 HTTP 요청을 수신합니다. 수신된 요청은 LiteLLM을 사용하여 OpenAI API 형식으로 변환됩니다. 변환된 요청은 PREFERRED_PROVIDER 환경 변수에 따라 구성된 대상 백엔드(OpenAI, Google Gemini, 또는 Anthropic)로 전송됩니다. 대상 백엔드로부터 응답을 받은 후, 프록시는 해당 응답을 다시 Anthropic API 형식으로 역변환(reverse translation)하여 원래의 클라이언트에 반환합니다. 이 과정은 스트리밍(streaming) 및 비스트리밍(non-streaming) 응답 모두에 대해 완벽한 호환성을 유지하도록 설계되었습니다.
모델 매핑 및 구성:
프록시는 Anthropic의 haiku 및 sonnet 모델 요청을 백엔드 모델로 동적으로 매핑합니다. 이 매핑은 PREFERRED_PROVIDER (기본값 openai, 선택적으로 google 또는 anthropic) 환경 변수에 따라 결정됩니다.
* (기본값): haiku는 SMALL_MODEL (기본 openai/gpt-4o-mini)에, sonnet은 BIG_MODEL (기본 openai/gpt-4o)에 매핑됩니다.
* : haiku는 SMALL_MODEL (기본 gemini/gemini-2.0-flash)에, sonnet은 BIG_MODEL (기본 gemini/gemini-2.5-pro)에 매핑됩니다. 이때, 지정된 모델이 서버의 알려진 GEMINI_MODELS 목록에 없으면 OpenAI 매핑으로 폴백(fallback)합니다. Google 백엔드는 GEMINI_API_KEY를 통한 인증 또는 ADC(Application Default Credentials)를 사용하는 Vertex AI를 통해 USE_VERTEX_AUTH, VERTEX_PROJECT, VERTEX_LOCATION 환경 변수를 사용하여 구성할 수 있습니다.
* : BIG_MODEL 및 SMALL_MODEL 설정은 무시되며, haiku/sonnet 요청은 anthropic/ 접두사와 함께 Anthropic 모델로 직접 전달되어 투명한 프록시(transparent proxy) 역할을 수행합니다.BIG_MODEL과 SMALL_MODEL에 명시된 모델 이름은 자동으로 openai/ 또는 gemini/ 접두사가 붙어 LiteLLM에서 인식할 수 있는 완전한 모델 경로를 형성합니다.
설치 및 사용:uv 패키지 관리자를 사용하여 소스 코드에서 실행하거나, Docker 이미지를 통해 쉽게 배포할 수 있습니다. 클라이언트 측에서는 ANTHROPIC_BASE_URL 환경 변수를 프록시 서버의 주소로 설정함으로써 (와 같이) claude-code와 같은 Anthropic 클라이언트가 이 프록시를 통해 요청을 보낼 수 있습니다. 이 유연성은 사용자가 비용 효율적인 대안 모델을 활용하거나, 특정 백엔드에 대한 요청을 라우팅해야 할 때 유용합니다.