零成本搭建AI中转平台:利用Cloudflare Workers白嫖大模型接口
最近AI大火,不管是ChatGPT还是国产的大模型,用起来确实香。但是,官方的API价格对于咱们这些爱折腾的个人玩家来说,还是有点肉疼。再加上网络环境问题,直接调用官方接口经常抽风。能不能有个“白嫖”的方案,既能稳定使用,又不用花一分钱?
今天给大家分享一个我自用的项目,利用 Cloudflare Workers(CF Worker)搭建一个 AI 接口中转平台。这个方案的核心优势就是零成本(CF Worker 免费额度够用)、稳定(Cloudflare 的全球节点)以及灵活(支持多种模型接入)。
为什么选 Cloudflare Workers?
Cloudflare Workers 运行于全球边缘网络,确保请求低延迟高可用。
咱们先来聊聊为什么要用 CF Workers。简单来说,它就是一个运行在 Cloudflare 边缘网络上的 JavaScript 运行环境。对于咱们做中转有这几个好处:
- 免费额度极大:CF Worker 的免费计划每天有 10 万次请求,这对于个人甚至小团队使用来说绰绰有余,完全覆盖了日常调用量。
- 自带域名和SSL:不需要自己去折腾服务器配置 Nginx 和证书,直接分配
*.workers.dev的域名,自带 HTTPS,省心省力。 - 全球加速:请求会自动路由到离用户最近的节点,速度比那些廉价的 VPS 要快得多,还不用担心被墙。
- 无需维护:不需要自己维护服务器系统,不用担心安全漏洞,只要逻辑写得对,就能一直跑。
核心原理:它是个啥?
很多小伙伴可能一头雾水,这个“中转平台”到底是干嘛的?
其实原理很简单:你发出的请求 -> 到了 Cloudflare Worker -> Worker 做了一些手脚(比如修改 Header、转换格式) -> 转发给真正的 AI 提供商(比如 OpenAI 或者其他有 API 的服务) -> 拿到结果 -> 原路返回给你。
因为请求是 Cloudflare 发出的,所以对于 AI 提供商来说,请求来源是 CF 的干净 IP,这就绕过了很多基于 IP 的限制(当然,API Key 还是你自己的,该付费还是得付费,除非你有其他路子)。
手把手部署教程
废话不多说,直接上干货。整个过程大概需要 5 分钟。
第一步:准备环境
- 注册一个 Cloudflare 账号(大家都懂)。
- 去控制台的 "Workers & Pages" 板块。
第二步:创建 Worker
- 点击 "Create Application" -> "Create Worker"。
- 给你的 Worker 起个名字,比如
my-ai-proxy,然后点击 "Deploy"。 - 部署完成后,点击 "Edit code" 进入编辑界面。
第三步:编写核心代码
这里给出一个简化的核心逻辑示例(基于 OpenAI 接口格式),你可以根据需要修改转发目标。
export default {
async fetch(request) {
// 目标 API 地址,这里可以是任何兼容 OpenAI 格式的接口
const targetUrl = "https://api.openai.com/v1";
// 获取请求信息
const url = new URL(request.url);
const path = url.pathname + url.search;
// 构建新的请求头
const newHeaders = new Headers();
// 可以在这里伪造或者处理特定的 Header
newHeaders.set("Authorization", request.headers.get("Authorization"));
newHeaders.set("Content-Type", "application/json");
// 处理 OPTIONS 预检请求
if (request.method === "OPTIONS") {
return new Response(null, {
status: 204,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
"Access-Control-Allow-Headers": "*",
},
});
}
try {
// 转发请求
const modifiedRequest = new Request(targetUrl + path, {
method: request.method,
headers: newHeaders,
body: request.body,
});
const response = await fetch(modifiedRequest);
// 处理响应头,解决跨域问题
const newResponseHeaders = new Headers(response.headers);
newResponseHeaders.set("Access-Control-Allow-Origin", "*");
// 返回结果
return new Response(response.body, {
status: response.status,
headers: newResponseHeaders,
});
} catch (error) {
return new Response(JSON.stringify({ error: error.message }), { status: 500 });
}
}
};
第四步:绑定自定义域名(可选)
如果你觉得 xxx.workers.dev 太长,或者担心在某些网络环境下被干扰,可以在 Worker 的设置 -> Triggers -> Custom Domains 里绑定自己的域名(前提是域名托管在 CF)。配置好 DNS 后,就能用 https://ai.yourdomain.com 来访问了。
中转平台工作原理:请求从用户发出,经 Worker 处理后转发至 AI 服务商,最后将结果原路返回。
进阶玩法与避坑指南
虽然搭建很简单,但这里面还是有些坑需要大家注意的,玩得转才是硬道理。
1. 跨域问题 (CORS)
直接在前端网页请求 Worker 接口经常会遇到跨域报错。这就需要在代码里像我在示例里那样,加上 Access-Control-Allow-Origin: * 的响应头,并且处理好 OPTIONS 预检请求。
2. API Key 的安全 虽然代码是你自己写的,但 Worker 的代码在理论上是可以被 CF 管理员看到的(虽然一般不会看)。建议不要把 Key 硬编码在代码里。可以通过环境变量来传递 Key,或者在请求动态带上 Key。最安全的做法是搭建一个鉴权层,只有知道你设置的密码的人才能通过。
3. 模型上下文限制 如果是转发给一些有免费额度的第三方转发站,要注意它们的 Token 限制和上下文长度限制。CF Worker 对请求体大小和执行时间也有限制(CPU 时间),处理超长文本可能会报错。建议在代码里做一个请求体大小检查。
4. 配合 AI 相关的扩展使用 搭建好之后,你可以把它用在各种支持自定义 API 端点的浏览器扩展或客户端里,比如沉浸式翻译、ChatBox 等,把 API 地址填上你 Worker 的地址即可,瞬间实现免费加速。

评论已关闭