claude-worker-proxy
是一个部署在Cloudflare Workers上的代理服务。 它的核心功能是将Google Gemini和OpenAI等多种大模型API的请求格式转换为Anthropic Claude的格式。 这使得原来需要适配Claude API格式的客户端应用,例如Claude Code,可以直接请求Gemini或OpenAI的模型,从而降低了开发和维护成本。 该项目支持流式和非流式响应,支持工具调用,并且可以一键部署,实现了开箱即用。
Function List
- API格式转换: 将Gemini和OpenAI等模型的API请求和响应格式无缝转换为Claude API的格式。
- 兼容Claude生态: 使得为Claude API设计的客户端(如Claude Code)能够直接使用其他厂商的AI模型。
- One-Click Deployment: 用户可以通过Cloudflare Workers平台快速部署,无需复杂的服务器配置。
- Streaming response support: 兼容需要实时返回数据的流式API响应模式。
- 支持工具调用: 支持AI模型与外部工具或函数进行交互。
- 零配置启动: 项目设计简洁,用户部署后即可直接使用,无需额外配置。
Using Help
部署和使用claude-worker-proxy
非常简单,主要依赖于Cloudflare Workers平台和npm包管理器。
Pre-installation
- 一个Cloudflare账号:你需要注册并登录Cloudflare。
- Node.js和npm:确保你的开发环境中安装了Node.js和npm。
- Wrangler CLI:Wrangler是Cloudflare官方的命令行工具,用于管理Workers项目。如果尚未安装,可以通过npm全局安装:
npm install -g wrangler@latest
Deployment process
- Cloning Project Code
首先,从GitHub克隆该项目的源代码到本地。git clone https://github.com/glidea/claude-worker-proxy
- 进入项目目录并安装依赖
cd claude-worker-proxy npm install
- 登录Wrangler
执行登录命令,它会打开一个浏览器窗口让你授权访问你的Cloudflare账户。wrangler login
- 执行部署命令
在项目根目录下,运行部署脚本。这个脚本会打包代码并将它部署到你的Cloudflare账户下的一个新Worker服务中。npm run deploycf
部署成功后,命令行会输出一个
.workers.dev
后缀的URL,这就是你的代理服务的访问地址。
How to use
部署成功后,你可以通过向你的Worker URL发送HTTP POST请求来使用这个代理。URL的格式和请求头有特定要求。
URL格式
请求的URL结构如下:
{你的Worker URL}/{目标模型类型}/{目标API基础地址}/v1/messages
{你的Worker URL}
: 部署成功后获得的地址,例如https://claude-worker-proxy.xxxx.workers.dev
The{目标模型类型}
: 目前支持gemini
cap (a poem)openai
The{目标API基础地址}
: 目标厂商的官方API基础地址,需要带上API版本号。例如,Gemini的地址是https://generativelanguage.googleapis.com/v1beta
The
请求头 (Header)
请求时必须包含一个特定的请求头来传递目标厂商的API密钥:
x-api-key
: 值为你的目标厂商API密钥(例如你的Gemini API Key)。
请求示例:使用curl请求Gemini
以下示例展示了如何通过代理,以Claude的格式向Google Gemini模型发送请求:
curl -X POST https://claude-worker-proxy.xxxx.workers.dev/gemini/https://generativelanguage.googleapis.com/v1beta/v1/messages \
-H "x-api-key: YOUR_GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-1.5-flash",
"messages": [
{"role": "user", "content": "Hello"}
]
}'
please includehttps://claude-worker-proxy.xxxx.workers.dev
替换为你的实际Worker地址,并将YOUR_GEMINI_API_KEY
替换为你的有效Gemini API密钥。
在Claude Code中使用
对于Claude Code用户,可以通过修改其配置文件来将API请求指向这个代理服务。
- Edit Configuration File
~/.claude/settings.json
The - 修改其中的环境变量,示例如下:
{ "env": { "ANTHROPIC_BASE_URL": "https://claude-worker-proxy.xxxx.workers.dev/gemini/https://generativelanguage.googleapis.com/v1beta", "ANTHROPIC_CUSTOM_HEADERS": "x-api-key: YOUR_GEMINI_API_KEY", "ANTHROPIC_MODEL": "gemini-1.5-pro", "ANTHROPIC_SMALL_FAST_MODEL": "gemini-1.5-flash", "API_TIMEOUT_MS": "600000" } }
ANTHROPIC_BASE_URL
: 设置为你的代理URL,并拼接好目标模型类型和API地址。ANTHROPIC_CUSTOM_HEADERS
: 设置API密钥。ANTHROPIC_MODEL
: 指定你希望使用的大模型。ANTHROPIC_SMALL_FAST_MODEL
: 指定希望使用的小模型。
- 保存配置文件后,在终端中直接运行
claude
命令,即可通过代理使用配置好的模型。
application scenario
- 统一开发接口
对于已经适配了Claude API的应用程序,开发者无需为Gemini或OpenAI等不同模型重写API请求逻辑。只需将请求指向这个代理,即可快速切换和使用不同厂商的模型。 - 配合特定工具使用
像Claude Code这类原生为Claude API设计的工具,可以通过此代理无缝切换到其他更具成本效益或性能优势的模型,例如使用Gemini模型来处理代码相关任务。 - 简化前端应用开发
在开发Web或桌面应用时,可以将这个Worker代理作为统一的后端API网关。前端应用只需遵循一种API格式,而代理层负责处理与不同AI服务商的通信细节。
QA
- Is this program free?
项目源代码是开源免费的。 但是,部署在Cloudflare Workers上会消耗平台资源,Cloudflare有免费额度,超出部分需要付费。同时,你调用的目标模型API(如Gemini)是按使用量向其提供商(如Google)付费的。 - 为什么URL中需要提供目标厂商的API基础地址?
这种设计提供了更大的灵活性。它允许用户动态指定任意兼容OpenAI或Gemini格式的API服务端点,而不是硬编码在代码中。这意味着如果将来厂商更新了API版本或你使用了第三方兼容API,只需修改请求URL即可。 - 这个代理会存储我的API密钥或请求数据吗?
根据项目的开源代码,它仅作为请求转发和格式转换的中间层,并不会记录或存储用户的API密钥及请求内容。但部署在第三方平台时,仍需遵守该平台的数据和隐私政策。 - 相比直接调用Gemini或OpenAI的API,使用这个代理有什么优势?
主要优势是对于已有的Claude客户端实现了API兼容。如果你的应用或工具链是围绕Claude API构建的,使用这个代理可以让你在不修改客户端代码的情况下,灵活地将后端的AI模型替换为Gemini或OpenAI。