3
头图

ChatGPT最近几个月可算是火爆了,但是在使用的时候你是否遇到以下问题:

1. 国内网络受限,无法直接访问
2. 页面停留几分钟后token就过期了,必须频繁的刷新页面
3. 自己写个后台部署还得买个国外的服务器

如果你也被以上问题困扰,不妨往下看,你现在面临的正是我所经历的,这篇文章或许能够给你提供一些帮助。
针对以上问题有很多种解决方案,网络受限我们可以选择购买vpn;token过期我们可以升级plus;后端调不通openai的接口,我们可以选择国外的服务器,或者服务器上装代理;那有没有更完美的解决方案呢?今天给大家分享一个通过cloudflare实现最小成本代理openai的方案。

废话不多说,上Demo,亲测可用。

传送门

第一步:注册cloudflare账号

前往cloudflare官网注册一个账号
image.png

第二步:创建worker,进行请求中转

image.png
image.png
image.png
image.png
将此js代码替换上图左侧部分的代码

export default {
  async fetch(request, env) {
    return await handleRequest(request)
  }
}


async function handleRequest(request) {
  // 定义目标服务器的地址
  const url = new URL(request.url)
  const targetUrl = 'https://api.openai.com'

  // 构造新的请求对象
  const proxyRequest = new Request(targetUrl + url.pathname + url.search, {
    method: request.method,
    headers: request.headers,
    body: request.body
  })

  // 发送请求到目标服务器
  const response = await fetch(proxyRequest)

  // 构造新的响应对象
  const proxyResponse = new Response(response.body, {
    status: response.status,
    statusText: response.statusText,
    headers: response.headers
  })

  // 返回响应给客户端
  return proxyResponse
}

点击保存并发布,至此,域名转发配置完成。但是workers.dev在国内依然无法访问,这时我们需要一个国内可访问的域名来转发。

第三步:域名转发

image.png
回到workers首页,找到刚才添加的server,点击进入详情。
image.png
image.png
此处需注意,如果已经有域名的直接填入即可,没有的需要去注册一个,国内平台注册域名需要备案才行,如果觉得备案麻烦,可以就在cloudflare上购买,大概一年30元左右,比起购买国外的服务器和VPN来说实惠不少。
image.png
实际支付截图
image.png

第四步:使用中转域名

import openai
openai.api_base = '[刚才填写的域名]/v1'  # 注意后面/v1不可省略
openai.api_key = '[你的openai key]'
openai.ChatCompletion.create(
        model='gpt-3.5-turbo-0301',
        messages=[messages],
        stream=stream
    )

最后,愉快的玩耍去吧~


写在最后,可以通过抖音扫码查看Demo视频,亲测可用~
image.png


程序员An
162 声望3 粉丝

前端开发工程师