此方法可以解决openai API不能使用的问题,文章部分内容引用于nooc大神
准备工作:
1.一个域名(最好是国外),推荐用(纯数字).xyz的域名,这种域名很便宜,估计不到1刀,域名申请就不放教程了。
2.一个注册好的 Cloudflare的账号,Cloudflare注册地址 ,注册方法,可以自己搜一搜,这里也不放教程了。
注: Cloudflare可以切换成中文,注册时点击右上角就有语言选择一栏。下图引用部分用的是英文。
1.登录到 Cloudflare
登录到 Cloudflare的管理界面后,将自己注册的的域名添加进去,并修改服务器DNS。
2.创建一个 Cloudflare Worker
点击侧边栏的 “Workers” 选项,然后点击 “Create a Service” 创建一个 Worker。
然后在创建界面中输入 “Service name” 后点击 “Create Service” 按钮新建 Worker。“Select a starter” 项先不用管。
至此 Cloudflare 的 Worker 便创建好了,下面开始修改 Worker 的代码,使其能代理 OpenAI 的 API。
3.修改CloudflareWorker的代码
在 Worker 的管理界面,点击右上角的 “Quick Edit” 按钮编辑代码 Worker 的代码。
在左侧的代码编辑器中,删除现有的所有代码,然后复制粘贴以下内容到代码编辑器:
const TELEGRAPH_URL = 'https://api.openai.com';
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const url = new URL(request.url);
url.host = TELEGRAPH_URL.replace(/^https?:\/\//, '');
const modifiedRequest = new Request(url.toString(), {
headers: request.headers,
method: request.method,
body: request.body,
redirect: 'follow'
});
const response = await fetch(modifiedRequest);
const modifiedResponse = new Response(response.body, response);
// 添加允许跨域访问的响应头
modifiedResponse.headers.set('Access-Control-Allow-Origin', '*');
return modifiedResponse;
}
最后点击编辑器右下角的 “Save and deploy” 按钮部署该代码,在弹出的对话框中继续选择 “Save and deploy” 确认部署。
至此,便可以使用该 worker 的地址来代替 OpenAI 的 API 地址了。比如想要请求 ChatGPT 的 API 时,把官方文档中的 https://api.openai.com/v1/chat/completions
替换成 https://openai.workers.dev
即可(注意这个地址并不存在,是需要换成自己刚刚创建的 Worker 的地址)。
但是你可能会发现,这样做了依然还是没有解决问题,因为 Cloudflare Workers 的 workers.dev
域名也是被 GFW 认证过的🥲。但是好在只是认证了 workers.dev
域名,而 ip 还是幸存的状态,所以我们可以给 Worker 绑定一个自己的域名。
4.绑定自己的域名
在 Cloudflare Workers 的管理界面中,点击 “Triggers” 选项卡,然后点击 “Custom Domians” 中的 “Add Custom Domain” 按钮以绑定域名。
输入域名后点击 “Add Custom Domain”,根据提示修改域名的 DNS 记录。因为我的域名是托管在 Cloudflare 上的,所以无需手动更改 DNS 记录,如果域名没有托管在 Cloudfalre 上,可以根据相关提示自行配置。 ⚠️ 据评论区提示,目前只支持 NS 托管在 Cloudflare 上的域名,如果不介意,可以点击 Cloudflare 侧边栏的 “Websites”,然后点击 “Add a Site” 按钮,根据提示将域名的 NS 记录指定到 Cloudflare。
至此便大功告成。等待片刻,应该就可以通过你自己的域名来代替 OpenAI 的 API 地址了,比如在本文的例子中,想要请求 ChatGPT 的 API ,即是把官方 API 地址 https://api.openai.com/v1/chat/completions
换为我自己的域名 https://openai.nooc.ink/v1/chat/completions
,其他参数均参照官方示例即可。由于 Cloudflare 有每天免费 10 万次的请求额度,所以轻度使用基本是零成本的。⚠️ 注意请不要使用我这里的 openai.nooc.ink
,因为随时可能会被我关闭🤪。
扩展:推荐相应的应用

如在上图应用的API Server中点击加号既可添加你自己的域名来代替 OpenAI 的 API 地址了(忽视上图下面红色的字)
注意:在下面这些应用(捷径除外)中只用复制你的绑定成功的域名即可,不需要加后面的 /v1/chat/completions
捷径api地址只需要修改成你的绑定的域名,如这样:https://你绑定的域名/v1/chat/completions
PC端:谷歌浏览器插件和应用:
- 应用:[chatBox] (https://github.com/Bin-Huang/chatbox/releases)
- 插件:[chatHub](https://github.com/wong2/chathub/)
移动端:ios搜索“AMA”(适用于安卓应用和ios应用)见另一篇有下载地址
还有ios捷径:
- AI小助手:[AI小助手](https://www.icloud.com/shortcuts/620e11d10bc4419497c0fd323e3fe8f1)