Replies: 149 comments 344 replies
-
{ |
Beta Was this translation helpful? Give feedback.
-
你好,请问最后一张图的post请求是在哪里操作的呢? |
Beta Was this translation helpful? Give feedback.
-
const region = request.headers.get('cf-ipcountry').toUpperCase(); Uncaught (in promise) TypeError: Cannot read properties of null (reading 'toUpperCase') |
Beta Was this translation helpful? Give feedback.
-
请教一个问题:给cloudflare绑定域名的,注册一个普通的域名可以吗,还是有什么要求? |
Beta Was this translation helpful? Give feedback.
-
亲测好用,感谢分享~ 给后面的人指条路:如果没有免费域名,可以去eu.org申请。我用的就是这个,就是审批时间有点长,可能需要一个月。 另外,如果大家使用的是bob的那个插件,记得更改api时只替换openai的部分,后面的chat不用加上去。不过大家都开始玩api了,估计代码也能看懂~ cheers for open source forever~ |
Beta Was this translation helpful? Give feedback.
-
{ |
Beta Was this translation helpful? Give feedback.
-
非常感谢,我这里可以正常调用了。 |
Beta Was this translation helpful? Give feedback.
-
亲测好用,大佬牛掰 |
Beta Was this translation helpful? Give feedback.
-
很棒,按教程一遍过 |
Beta Was this translation helpful? Give feedback.
-
一个没有被 GFW 认证的域名? |
Beta Was this translation helpful? Give feedback.
-
是否可以理解为,使用二级域名也可以? |
Beta Was this translation helpful? Give feedback.
-
通过cloudfare 这个方法,从发送请求到收到请求,cost time: 10s,这个正常么? |
Beta Was this translation helpful? Give feedback.
-
事实证明 ChatGPT 是足够火爆的,火爆到什么程度呢,其 API 一经推出便获得了 GFW 的认证。在 Twitter 上看到很多人都在为解决无法正常访问 OpenAI 的 API 而苦恼,最常见解决方案是使用一台服务器来进行反向代理,但这样又徒增了一些成本。因为之前在公司的业务上遇到过类似问题,当时老板找到了一个还不错的几乎零成本解决方案,试了一下现在仍然可以用来解决 OpenAI 的 API 无法访问的问题,所以在这里推荐给大家。
该方案的主要思路是使用 Cloudflare 的 Workers 来代理 OpenAI 的 API 地址,配合自己的域名即可在境内实现访问。因为 Cloudflare Workers 有每天免费 10 万次的请求额度,也有可以免费注册的域名,所以几乎可以说是零成本。而且该方法理论上支持所有被认证的网站,而不只是 OpenAI。
使用这个方案需要你有以下东西:
没有的话也可以到 https://www.freenom.com 免费注册一个,太长不看
api.openai.com
如果具体步骤有问题,可以参考下面的详细版教程。
🆕 将域名 NS 转到 Cloudflare
如果域名已经托管在 Cloudflare 的忽略这一步即可。
没有 Cloudflare 账号的话可以注册一个,具体注册细节就不多说了。注册或登录到 Cloudflare 的管理界面后,点击侧边栏的 “Websites” ,然后点击 “Add a Site” 按钮准备将域名转到 Cloudflare:
在 “Enter your site (example.com)” 处输入要转入的域名后,点击 “Add Site”:
根据 Cloudflare 的提示,在域名注册商处将 NS 修改到 Cloudflare 指定的地址,等待域名解析成功后,即可进行后续操作。
创建一个 Cloudflare Worker
登录到 Cloudflare 的管理界面后,点击侧边栏的 “Workers” 选项,然后点击 “Create a Service” 创建一个 Worker。
然后在创建界面中输入 “Service name” 后点击 “Create Service” 按钮新建 Worker。“Select a starter” 项先不用管。
至此 Cloudflare 的 Worker 便创建好了,下面开始修改 Worker 的代码,使其能代理 OpenAI 的 API。
修改 Cloudflare Worker 的代码
在 Worker 的管理界面,点击右上角的 “Quick Edit” 按钮编辑代码 Worker 的代码。
在左侧的代码编辑器中,删除现有的所有代码,然后复制粘贴以下内容到代码编辑器:
最后点击编辑器右下角的 “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 绑定一个自己的域名。绑定域名
在 Cloudflare Workers 的管理界面中,点击 “Triggers” 选项卡,然后点击 “Custom Domians” 中的 “Add Custom Domain” 按钮以绑定域名。
输入域名后点击 “Add Custom Domain”,⚠️ 据评论区提示,目前只支持 NS 托管在 Cloudflare 上的域名,如果不介意,可以点击 Cloudflare 侧边栏的 “Websites”,然后点击 “Add a Site” 按钮,根据提示将域名的 NS 记录指定到 Cloudflare。
根据提示修改域名的 DNS 记录。因为我的域名是托管在 Cloudflare 上的,所以无需手动更改 DNS 记录,如果域名没有托管在 Cloudfalre 上,可以根据相关提示自行配置。至此便大功告成。等待片刻,应该就可以通过你自己的域名来代替 OpenAI 的 API 地址了,比如在本文的例子中,想要请求 ChatGPT 的 API ,即是把官方 API 地址⚠️ 注意请不要使用我这里的
https://api.openai.com/v1/chat/completions
换为我自己的域名https://openai.nooc.ink/v1/chat/completions
,其他参数均参照官方示例即可。由于 Cloudflare 有每天免费 10 万次的请求额度,所以轻度使用基本是零成本的。openai.nooc.ink
,因为随时可能会被我关闭🤪🥰 如果本文对你有帮助,欢迎 follow 我的 Twitter 和 GitHub 。
🤖 也欢迎关注我发布的开源项目 OhMyGPT ,仅需几步即可发布属于自己的基于 ChatGPT API 的 Web 应用。
📱如果你不知道拿 OpenAI API 来干嘛,又或者想找一个 ChatGPT 的第三方客户端,不妨试试我新开发的 AssisChat。
Beta Was this translation helpful? Give feedback.
All reactions