796 字
4 分钟
Cloudflare Worker零成本搭建ChatGPT API反向代理

Cloudflare Worker 零成本搭建 ChatGPT API 反向代理#

OpenAI 大规模封号那段时间,很多人发现直接访问 API 会被限制。最稳妥的解决方案是自己搭建反向代理,把请求转发到 OpenAI 服务器。Cloudflare Worker 是个绝佳选择——免费、全球加速、部署简单。

项目地址#

DoingDog
/
chatgpt-proxy-cloudflare-worker
Waiting for api.github.com...
00K
0K
0K
Waiting...

核心功能#

  • 反向代理:将请求转发到 OpenAI API
  • 流式输出:支持 SSE 流式响应
  • 访问密码:可设置 API 访问密码,防止被滥用
  • 联网搜索:支持在请求中插入 WS[搜索内容] 触发搜索
  • 多 Key 轮询:支持配置多个 API Key 自动切换

部署步骤#

1. 创建 Cloudflare Worker#

  1. 登录 Cloudflare 控制台
  2. 进入 Workers & Pages
  3. 点击 “Create a Service”
  4. 选择 “Hello World” 模板

2. 粘贴代码#

index.js 的内容粘贴到 Worker 编辑器中:

// 核心代码逻辑(简化版)
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const url = new URL(request.url)
// 验证访问密码
const auth = request.headers.get('Authorization')
if (!auth || !auth.includes(PASSWORD)) {
return new Response('Unauthorized', { status: 401 })
}
// 转发到 OpenAI API
const openaiUrl = 'https://api.openai.com' + url.pathname + url.search
const modifiedRequest = new Request(openaiUrl, {
method: request.method,
headers: {
'Authorization': 'Bearer ' + API_KEY,
'Content-Type': 'application/json'
},
body: request.body
})
return await fetch(modifiedRequest)
}

3. 配置环境变量#

在 Worker 设置中添加:

变量名说明示例
PASSWORD访问密码(可选,默认cpcw)mypassword
API_KEYOpenAI API Key(可选)sk-xxx
KAMIYA_TOKENKamiya.dev 的 Key(可选)sk-xxx
多Key配置

多个 Key 或密码可以用逗号分隔:password1,password2

使用方法#

作为 OpenAI API 使用#

Terminal window
curl https://your-worker.your-subdomain.workers.dev/v1/chat/completions \
-H "Authorization: Bearer your-password" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "Hello"}]
}'

在客户端配置:

  • API 地址:https://your-worker.your-subdomain.workers.dev/v1/chat/completions
  • API Key:你的访问密码(或直接使用 OpenAI Key)

联网搜索功能#

在请求中插入 WS[搜索内容] 触发联网搜索:

{
"model": "gpt-4",
"messages": [
{"role": "user", "content": "给我现在的时间。WS[现在时间]WS[北京时间]"}
]
}
性能提示

搜索会拖慢响应速度。默认每次提问最多 2 次搜索,单次回答总共最多 4 次搜索。

Kamiya API 支持#

如果使用 Kamiya.dev 提供的 API:

Terminal window
curl https://your-worker.your-subdomain.workers.dev/kamiya/v1/chat/completions \
-H "Authorization: Bearer your-kamiya-token"

生产环境优化#

代码仓库提供了两个版本:

  • index.js - 源代码,带注释,方便修改
  • production.js - 压缩后的代码,节省 Worker 空间

建议部署时使用 production.js

为什么选择 Worker?#

  1. 免费额度:每天 10 万次请求,对大部分人够用
  2. 全球加速:Cloudflare 的边缘网络让各地访问都很快
  3. 无需服务器:无需购买 VPS,没有维护成本
  4. 隐藏真实 IP:OpenAI 看到的是 Cloudflare 的 IP

常见问题#

Q: 为什么还是被封号了? A: Worker 只能隐藏你的 IP,如果你的账号本身有问题(如使用虚拟信用卡、违反 ToS),仍然可能被封。

Q: 支持 Claude/Gemini 吗? A: 这个 Worker 专为 OpenAI API 设计。需要其他 AI 的代理,请参考类似思路自行修改。

Q: 流量超限怎么办? A: Cloudflare 免费版每天有 10 万次请求限制。超出后可以:

  • 升级到付费计划
  • 部署多个 Worker 分流
  • 使用其他代理方案(如 VPS)

参考链接#

Cloudflare Worker零成本搭建ChatGPT API反向代理
https://im.awsl.app/posts/networking/016-cf-worker-chatgpt-proxy/
作者
uu
发布于
2023-05-30
许可协议
CC0 1.0