用Cloudflare Workers解决openai的api无法访问

众所周知，openai 的 api 网站已经被污染了，中国大陆用户是无法访问的，虽然我们没法直接使用 ChatGPT，但是可以通过 openai 提供的 apikey 本地部署的方式来进行访问，但是随着它的 api 网站的被墙，导致本地部署也的需要点魔法才能使用，其实我们可以通过 Cloudflare Workers 来解决 openai 的 api 被墙，实现在不借助魔法的环境下也能畅快使用 ChatGPT 带来的乐趣。

准备工作

一个自己的域名（因为 Workers 也被墙）

将自己域名 NS 转移到 Cloudflare

将域名转移到 Cloudflare 到 DNS

登陆 Cloudflare 首页，找到添加站点，将自己的域名输入进去，按他的步骤一步一步走即可，一般一小时内即可解析完成。这里比较简单，我重点介绍部署 workers

开始部署 Workers

我们回到控制台的首页，找到左侧边栏中的 workers，进去后我们可以看到右上角有个创建服务，这边我们创建一个服务

然后我们给这个服务取个名字，直接点击创建服务即可。

创建好了就会自动回到这个服务中，点击右上角的快速编辑

然后将以下代码替换到左边编辑器里的代码

Copy
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;
}

然后点击下方 “保存并部署” 即可！

但是这个时候，你的 workers 并不能访问，我们还需要绑定自己刚才转移到 Cloudflare 的域名
回到项目中，找到 “触发器”！

然后绑定域名即可！

接下来你就可以愉快的使用这个域名作为 openai 的 api 接口域名了！