利用Cloudflare Worker中转api.openai.com

    创建一个 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 的代码。在左侧的代码编辑器中,删除现有的所有代码,然后复制粘贴以下内容到代码编辑器:

    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);
      const headers_Origin = request.headers.get("Access-Control-Allow-Origin") || "*"
      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', headers_Origin);
      return modifiedResponse;
    }

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

    绑定域名

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

    (目前只支持 NS 托管在 Cloudflare 上的域名,如果不介意,可以点击 Cloudflare 侧边栏的 “Websites”,然后点击 “Add a Site” 按钮,根据提示将域名的 NS 记录指定到 Cloudflare。)

    至此便大功告成。等待片刻,应该就可以通过你自己的域名来代替 OpenAI 的 API 地址了。

    本文内容来自git:noobnooc/discussions/9,有修改