logo
0
1
WeChat Login
docs: README 添加 CI/Star/Fork 徽章

anthropic-bridge

Build Tag Star Fork

Go 实现的 HTTP 代理服务,接收 Anthropic Messages API 格式的请求,自动转换为 OpenAI Chat Completions API 格式,并按模型名路由到多个 OpenAI 兼容供应商。

功能

  • 请求转换 — 消息、系统提示、工具调用、图片、thinking 等完整转换
  • 响应转换 — 非流式 & 流式 (SSE) 双模式支持
  • 多供应商路由 — 按模型名自动路由到对应供应商 (OpenAI / DeepSeek / 其他兼容 API)
  • 模型映射 — 可选配置,将 Anthropic 模型名映射到目标模型;也支持直接使用目标模型名
  • Web 配置页面 — 浏览器在线编辑 JSON 配置,保存后自动热重载
  • API Key 认证 — 支持 x-api-keyAuthorization: Bearer 两种方式
  • API Key 脱敏 — 配置接口不会泄露完整密钥

快速开始

二进制运行

# 编译 go build -o anthropic-bridge . # 编辑配置 cp config/example.json config.json vim config.json # 启动 ./anthropic-bridge --config config.json --port 8000

Docker 运行

docker build -t anthropic-bridge . docker run -d -p 8000:8000 -v $(pwd)/config.json:/app/config.json anthropic-bridge

多平台构建

# 构建全部 6 个平台 (linux/darwin/windows × amd64/arm64) ./build.sh -v v1.0.0 # 仅构建指定平台 ./build.sh -p linux/amd64 -p darwin/arm64 -v v1.0.0 # 自定义输出目录 ./build.sh -v v1.0.0 -o release/

产物格式:anthropic-bridge-{version}-{os}-{arch}[.exe]

配置

{ "providers": [ { "name": "deepseek", "api_key": "sk-xxx", "base_url": "https://api.deepseek.com/v1", "models": ["deepseek-chat", "deepseek-reasoner"] }, { "name": "openai", "api_key": "sk-yyy", "base_url": "https://api.openai.com/v1", "models": ["gpt-4o", "gpt-4o-mini"] } ], "server": { "host": "0.0.0.0", "port": 8000 }, "api_key": "your-proxy-api-key", "model_mapping": { "claude-3-5-sonnet-20241022": "deepseek-chat", "claude-3-5-haiku-20241022": "deepseek-chat" } }
  • providers — 上游供应商列表,每个包含名称、API Key、Base URL 和支持的模型
  • api_key — 代理自身的认证密钥,留空则不鉴权
  • model_mapping — 可选,将 Anthropic 模型名映射到目标模型名;未匹配时直接在 providers 中查找

API 端点

端点方法说明
/v1/messagesPOSTAnthropic Messages API (核心代理接口)
/healthGET健康检查
/configGETWeb 配置页面
/api/configGET获取配置 (API Key 已脱敏)
/api/configPUT保存配置并热重载

CLI 参数

./anthropic-bridge [flags] -config string 配置文件路径 (默认 "config/example.json") -port int 覆盖监听端口 (0 = 使用配置值)

配合 Claude Code 使用

#!/bin/bash export ANTHROPIC_BASE_URL="http://localhost:8000" export ANTHROPIC_AUTH_TOKEN="no-key" export ANTHROPIC_MODEL="claude-3-5-sonnet-20241022" export ANTHROPIC_SMALL_FAST_MODEL="claude-3-5-haiku-20241022" exec claude "$@"

也可以直接使用目标模型名,无需配置 model_mapping

export ANTHROPIC_MODEL="deepseek-chat" export ANTHROPIC_SMALL_FAST_MODEL="deepseek-chat"

测试

go test ./...

项目结构

├── main.go # CLI 入口 ├── build.sh # 多平台构建脚本 ├── Dockerfile # 容器镜像 ├── config/ # 配置加载、保存、模型路由 ├── models/ # Anthropic & OpenAI 数据模型 ├── converter/ # 请求/响应/流式转换器 ├── client/ # OpenAI HTTP 客户端 ├── handler/ # HTTP 请求处理 (messages, health, config) ├── middleware/ # 认证、请求ID中间件 └── server/ # HTTP 服务器组装 & 集成测试

License

MIT