将Anthropic客户端(如Claude Code)与Gemini、OpenAI或直接Anthropic后端配合使用。🤝
这是一个代理服务器,允许您通过LiteLLM将Anthropic客户端与Gemini、OpenAI或Anthropic模型本身(某种透明代理)一起使用。🌉
git clone https://github.com/1rgs/claude-code-proxy.git
cd claude-code-proxy
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密钥(如果PREFERRED_PROVIDER=google且USE_VERTEX_AUTH=true,则为必填项)。USE_VERTEX_AUTH(可选):设置为true将使用应用程序默认凭据(ADC)(无需静态API密钥)。注意:当USE_VERTEX_AUTH=true时,必须配置VERTEX_PROJECT和VERTEX_LOCATION。VERTEX_PROJECT(可选):您的Google Cloud项目ID(如果PREFERRED_PROVIDER=google且USE_VERTEX_AUTH=true,则为必填项)。VERTEX_LOCATION(可选):Vertex AI的Google Cloud区域(例如us-central1)(如果PREFERRED_PROVIDER=google且USE_VERTEX_AUTH=true,则为必填项)。PREFERRED_PROVIDER(可选):设置为openai(默认)、google或anthropic。这决定了haiku/sonnet映射的主要后端。BIG_MODEL(可选):用于映射sonnet请求的模型。默认为gpt-4.1(如果PREFERRED_PROVIDER=openai)或gemini-2.5-pro-preview-03-25。当PREFERRED_PROVIDER=anthropic时忽略。SMALL_MODEL(可选):用于映射haiku请求的模型。默认为gpt-4.1-mini(如果PREFERRED_PROVIDER=openai)或gemini-2.0-flash。当PREFERRED_PROVIDER=anthropic时忽略。映射逻辑:
如果PREFERRED_PROVIDER=openai(默认),haiku/sonnet将映射到前缀为openai/的SMALL_MODEL/BIG_MODEL。
如果PREFERRED_PROVIDER=google,haiku/sonnet将映射到前缀为gemini/的SMALL_MODEL/BIG_MODEL(如果这些模型在服务器已知的GEMINI_MODELS列表中,否则回退到OpenAI映射)。
如果PREFERRED_PROVIDER=anthropic,haiku/sonnet请求将直接传递给带有anthropic/前缀的Anthropic,不会重新映射到不同模型。
运行服务器:
uv run uvicorn server:app --host 0.0.0.0 --port 8082 --reload
(--reload是可选的,用于开发)
如果使用Docker,请将示例环境文件下载到.env并按上述说明编辑。
curl -O .env https://raw.githubusercontent.com/1rgs/claude-code-proxy/refs/heads/main/.env.example
然后,您可以使用docker compose启动容器(推荐):
services:
proxy:
image: ghcr.io/1rgs/claude-code-proxy:latest
restart: unless-stopped
env_file: .env
ports:
- 8082:8082
或使用命令:
docker run -d --env-file .env -p 8082:8082 ghcr.io/1rgs/claude-code-proxy:latest
npm install -g @anthropic-ai/claude-code
ANTHROPIC_BASE_URL=http://localhost:8082 claude
代理会根据配置的模型自动将Claude模型映射到OpenAI或Gemini模型:
| Claude模型 | 默认映射 | 当BIG_MODEL/SMALL_MODEL为Gemini模型时 |
|---|---|---|
| haiku | openai/gpt-4o-mini | gemini/[model-name] |
| sonnet | openai/gpt-4o | gemini/[model-name] |
以下OpenAI模型支持自动openai/前缀处理:
以下Gemini模型支持自动gemini/前缀处理:
代理会自动为模型名称添加适当的前缀:
例如:
通过.env文件中的环境变量或直接控制映射:
除API密钥外,.env中无需更改,或确保:
OPENAI_API_KEY="your-openai-key"
GEMINI_API_KEY="your-google-key" # 如果PREFERRED_PROVIDER=google则需要
# PREFERRED_PROVIDER="openai" # 可选,默认值
# BIG_MODEL="gpt-4.1" # 可选,默认值
# SMALL_MODEL="gpt-4.1-mini" # 可选,默认值
GEMINI_API_KEY="your-google-key"
OPENAI_API_KEY="your-openai-key" # 回退时需要
PREFERRED_PROVIDER="google"
# BIG_MODEL="gemini-2.5-pro" # 可选,Google偏好的默认值
# SMALL_MODEL="gemini-2.5-flash" # 可选,Google偏好的默认值
OPENAI_API_KEY="your-openai-key" # 回退时需要
PREFERRED_PROVIDER="google"
VERTEX_PROJECT="your-gcp-project-id"
VERTEX_LOCATION="us-central1"
USE_VERTEX_AUTH=true
# BIG_MODEL="gemini-2.5-pro" # 可选,Google偏好的默认值
# SMALL_MODEL="gemini-2.5-flash" # 可选,Google偏好的默认值
ANTHROPIC_API_KEY="sk-ant-..."
PREFERRED_PROVIDER="anthropic"
# 此模式下忽略BIG_MODEL和SMALL_MODEL
# haiku/sonnet请求直接传递到Anthropic模型
用例:此模式允许您使用代理基础设施(用于日志记录、中间件、请求/响应处理等),同时仍使用实际的Anthropic模型,而不是被迫重新映射到OpenAI或Gemini。
OPENAI_API_KEY="your-openai-key"
GEMINI_API_KEY="your-google-key"
PREFERRED_PROVIDER="openai"
BIG_MODEL="gpt-4o" # 示例特定模型
SMALL_MODEL="gpt-4o-mini" # 示例特定模型
此代理的工作原理如下:
代理处理流式和非流式响应,保持与所有Claude客户端的兼容性。🌊
欢迎贡献!请随时提交Pull Request。🎁
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务