Anthropic API Proxy for Gemini & OpenAI Models 🔄
Anthropic 클라이언트(예: Claude Code)를 Gemini 또는 OpenAI 백엔드와 함께 사용하세요. 🤝
이 프록시 서버는 Anthropic 클라이언트를 통해 Gemini 또는 OpenAI 모델을 LiteLLM을 통해 사용할 수 있게 해줍니다. 🌉
빠른 시작 ⚡
사전 준비
- OpenAI API 키 🔑
- Google AI Studio(Gemini) API 키(구글 제공자 사용 시) 🔑
- uv 설치 필요
설치 🛠️
레포지토리 클론:
git clone https://github.com/1rgs/claude-code-openai.git cd claude-code-openai
uv 설치:
curl -LsSf https://astral.sh/uv/install.sh | sh
(
uv
는 서버 실행 시pyproject.toml
기반으로 의존성을 관리합니다)환경 변수 설정:
cp .env.example .env
.env
파일을 열어 API 키와 모델 설정을 입력하세요:ANTHROPIC_API_KEY
: (선택) Anthropic 모델로 프록시할 때 필요OPENAI_API_KEY
: OpenAI API 키(기본 또는 백업으로 OpenAI 사용 시 필수)GEMINI_API_KEY
: Google AI Studio(Gemini) API 키(Google 우선 사용 시 필수)PREFERRED_PROVIDER
(선택):openai
(기본값) 또는google
지정BIG_MODEL
(선택):sonnet
요청에 매핑할 모델(기본값:gpt-4.1
또는gemini-2.5-pro-preview-03-25
)SMALL_MODEL
(선택):haiku
요청에 매핑할 모델(기본값:gpt-4.1-mini
또는gemini-2.0-flash
)
매핑 로직:
PREFERRED_PROVIDER=openai
(기본값)일 때,haiku
/sonnet
은 각각SMALL_MODEL
/BIG_MODEL
에openai/
접두사가 붙음PREFERRED_PROVIDER=google
일 때, 해당 모델이GEMINI_MODELS
에 있으면gemini/
접두사가 붙음(없으면 OpenAI로 대체)
서버 실행:
uv run uvicorn server:app --host 0.0.0.0 --port 8082 --reload
(
--reload
는 개발용 옵션)
Claude Code와 함께 사용하기 🎮
- Claude Code 설치:
npm install -g @anthropic-ai/claude-code
- 프록시에 연결:
ANTHROPIC_BASE_URL=http://localhost:8082 claude
- 완료! 이제 Claude Code 클라이언트가 프록시를 통해 설정된 백엔드 모델(기본 Gemini)을 사용합니다. 🎯
모델 매핑 🗺️
프록시는 Claude 모델을 OpenAI 또는 Gemini 모델로 자동 매핑합니다:
Claude 모델 | 기본 매핑 | BIG/SMALL 모델이 Gemini일 때 |
---|---|---|
haiku | openai/gpt-4o-mini | gemini/[모델명] |
sonnet | openai/gpt-4o | gemini/[모델명] |
지원 모델
OpenAI 모델
- o3-mini
- o1
- o1-mini
- o1-pro
- gpt-4.5-preview
- gpt-4o
- gpt-4o-audio-preview
- chatgpt-4o-latest
- gpt-4o-mini
- gpt-4o-mini-audio-preview
- gpt-4.1
- gpt-4.1-mini
Gemini 모델
- gemini-2.5-pro-preview-03-25
- gemini-2.0-flash
모델 접두사 처리
- OpenAI 모델:
openai/
접두사 자동 추가 - Gemini 모델:
gemini/
접두사 자동 추가 - BIG_MODEL, SMALL_MODEL은 해당 모델 리스트에 따라 접두사 자동 부여
예시:
gpt-4o
→openai/gpt-4o
gemini-2.5-pro-preview-03-25
→gemini/gemini-2.5-pro-preview-03-25
- BIG_MODEL이 Gemini 모델이면 Claude Sonnet은
gemini/[모델명]
으로 매핑
모델 매핑 커스터마이즈
.env 파일 또는 직접 환경 변수로 매핑을 제어할 수 있습니다.
예시 1: 기본(OpenAI 사용)
OPENAI_API_KEY="your-openai-key"
GEMINI_API_KEY="your-google-key" # Google 우선 사용 시 필요
# PREFERRED_PROVIDER="openai" # 기본값
# BIG_MODEL="gpt-4.1" # 기본값
# SMALL_MODEL="gpt-4.1-mini" # 기본값
예시 2: Google 우선 사용
GEMINI_API_KEY="your-google-key"
OPENAI_API_KEY="your-openai-key" # 백업용
PREFERRED_PROVIDER="google"
# BIG_MODEL="gemini-2.5-pro-preview-03-25" # Google 우선 기본값
# SMALL_MODEL="gemini-2.0-flash" # Google 우선 기본값
예시 3: 특정 OpenAI 모델 사용
OPENAI_API_KEY="your-openai-key"
GEMINI_API_KEY="your-google-key"
PREFERRED_PROVIDER="openai"
BIG_MODEL="gpt-4o" # 예시
SMALL_MODEL="gpt-4o-mini" # 예시
작동 방식 🧩
- Anthropic API 형식으로 요청 수신 📥
- LiteLLM을 통해 OpenAI 형식으로 변환 🔄
- OpenAI로 변환된 요청 전송 📤
- 응답을 Anthropic 형식으로 다시 변환 🔄
- 클라이언트에 최종 응답 반환 ✅
프록시는 스트리밍/비스트리밍 응답 모두 지원하며, 모든 Claude 클라이언트와 호환됩니다. 🌊
기여하기 🤝
기여를 환영합니다! Pull Request를 자유롭게 제출해 주세요. 🎁
정보
OpenAI 모델에서 Claude Code 실행하기
라이선스 및 기타
- Python 100%
- 별 780개, 포크 113개
- README.md
- server.py
- pyproject.toml
- .env.example
© 2025 GitHub, Inc.
반응형