banner
老言

老言博客

There's no such thing as a free lunch except web3.
x
telegram
github
discord server

使用Cloudflare Workers解決無法訪問openai的API問題

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

a.png

准备工作#

  1. 一个自己的域名(因为 Workers 也被墙)
  2. 将自己域名 NS 转移到 Cloudflare

将域名转移到 Cloudflare 到 DNS#

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

WX20230421-105607@2x.png

开始部署 Workers#

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

wk.jpg

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

1111.jpg

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

222.png

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

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 的域名
回到项目中,找到 “触发器”!

333.png

然后绑定域名即可!

yuming.gif

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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。