Cloudflare Worker访问OpenAI API

发布于 2024-02-28  290 次阅读


一、前言

由于国内无法直接访问openai,不方便学习,一般要么把服务部署在国外(多消耗资源);要么在国内服务器配置代理软件(不够稳定);其实还可以通过cloudflare代理oepnai的api地址,在国内国内服务器无阻接入openai!

首先你要有一个域名,其次这个域名要托管到cloudfare,所以:

直接在cloudfare购买域名,方便省事!

找其他免费域名,再托管到cloudfare,本着一分钱不花的目的,这里提供一个顶级免费公益域名申请教程:eu.org!

优点:免费,稳定,历史悠久,几乎没什么限制,可以更改NS!

缺点:申请等待时间较长,1-30天都可能!

二、申请eu.org域名

1.点击eu.org[1]注册你的账号,填写信息,然后点击create创建

2.创建成功你的邮箱会收到一封验证邮件(请检查垃圾邮箱,并把该网站移出,方便后面及时收到审核通知),邮件内包含了你的登录名和验证链接,点击链接验证

3.点击Validate验证,然后登录即可!

4.点击new domain,注册域名,填写信息:

注意:

域名要包括后缀eu.org

name servers处填入cloudfare的,也可以其他的,注册成功可以修改

yichun.ns.cloudflare.com
demi.ns.cloudflare.com

5.点击submit后,如果域名已经存在会提示你,修改后再次提交即可,如果成功会down

6.接下来,等待审核通过的邮件即可:

三、设置cloudfare worker

这部分参考原教程[2]修改,感谢原作者提供clodflare worker创建教程!

1.托管域名到cloudfare

首先是把域名托管在cludfare上,进入cloufare[3]:,注册并点击website,

填入你申请的eu.org域名,如果前面步骤申请域名时候填写的name server是cloudfare的,就简单了!如果是用其他的dns,会提示你先修改ns,在eu.org那里找到你的域名,点击域名,然后点击nameservers,修改为cloudfare提示需要设置的namesever!

2.新建一个Cloudflare Worker

登录到 Cloudflare 的管理界面后,点击侧边栏的 “Workers” 选项,然后点击 “Create a Service” 创建一个 Worker。

然后在创建界面中输入 “Service name” 后点击 “Create Service” 按钮新建 Worker。“Select a starter” 项先不用管。

至此 Cloudflare 的 Worker 便创建好了,下面开始修改 Worker 的代码,使其能代理 OpenAI 的 API。

在 Worker 的管理界面,点击右上角的 “Quick Edit” 按钮编辑代码 Worker 的代码。

在左侧的代码编辑器中,删除现有的所有代码,然后复制粘贴以下内容到代码编辑器:

export default {
  async fetch(request) {
    const url = new URL(request.url);
    url.host = 'api.openai.com';
    return fetch(url, { headers: request.headers, method: request.method, body: request.body });
  },
};

最后点击编辑器右上角的 “Save and deploy” 按钮部署该代码,在弹出的对话框中继续选择 “Save and deploy” 确认部署。

3.绑定域名

在 Cloudflare Workers 的管理界面中,点击 “Triggers” 选项卡,然后点击 “Custom Domians” 中的 “Add Custom Domain” 按钮以绑定域名。

至此便完成了所有步骤。等待片刻,应该就可以通过你自己的域名来代替 OpenAI 的 API 地址了,即是把官方 API 地址 https://api.openai.com/v1/ 换为自己的域名 https://xxx.eu.org/v1/ ,其他参数均参照官方示例即可。

四、接入项目

对于现在的这个chatgpt-on-wechat项目,就是在config.json文件增加一行配置:

"open_ai_api_base": "https://xxxx.eu.org/v1",

以上完成后,国内服务器也可以不用配置代理软件了!Cloudflare 有每天免费 10 万次的请求额度,轻度使用基本是满足需求了!

本文来源[4]点击阅读原文进入博客查看!

参考资料

[1]

eu.org: https://nic.eu.org/arf/en/contact/create/

[2]

原教程: https://github.com/noobnooc/noobnooc/discussions/9

[3]

cloufare: https://dash.cloudflare.com/

[4]

本文来源:https://mp.weixin.qq.com/s/SYGPuHKO7ShzfmBGsQ363w

个人博客
最后更新于 2024-02-28