- 近期把 huzhongyuan.com 这个域名的 dns server 从腾讯云挪到 cloudflare 去了. 备忘一下:
- openai 的 api 域名 (api.openai.com) 被墙了, 国内的阿里云服务器没有办法直接访问
- cloudflare 提供了一个叫做 worker 的服务, 可以把自定义的代码片段 (如 nodejs) 保存为一个 worker, 在 cloudflare 上运行
- cloudflare 会默认为这个 worker 分配一个形如 xxxx.worker.dev 的域名, 但是国内的阿里云服务器也没办法直接访问 xxx.worker.dev 的域名 (也被墙了)
- cloudflare 可以为这个 worker 绑定一个自定义域名 (chat-api-proxy.huzhongyuan.com) , 这个自定义域名其实也是解析到 cloudflare 那里去了, 但是自定义域名的访问并不会被墙 (但解析时好时坏)
- cloudflare 的 worker 是运行在海外的, 所以 worker 能够顺利访问 openai 的 api , 同时 worker 又可以被国内的阿里云服务器调用 (通过自定义域名调用), 因此可以把 worker 作为一个 openai 的 api proxy
- cloudflare 的 worker 在绑定自定义域名的时候, 需要提前先把主域名 (huzhongyuan.com) 的 dns server 转移到 cloudflare 下
- 最终的调用链: 微信聊天对话框等交互客户端 -> 阿里云服务器上的 bot server -> cloudflare 的 worker (使用自定义域名 (chat-api-proxy.huzhongyuan.com)) -> openai 的 api server
- 如果只是为了纯文字聊天, 还有另一套使用 chatgpt 的方案
- 把 https://github.com/Yidadaa/ChatGPT-Next-Web 这个 repo fork 到自己的 github 账号下
- 在 vercel 上创建一个新的 project , 让这个 project connect 到 fork 后的 ChatGPT-Next-Web 代码库
- 在 vercel 上配置 OPENAI_KEY , CODE 等环境变量
- 给 vercel project 绑定一个子域名 ( chat-ui.huzhongyuan.com ). 这个子域名只需要在 cloudflare 上添加一个 CNAME 记录, 指向 vercel 即可, https 部分 vercel 自动处理完毕了
- 访问 vercel project 就可以体验 chatgpt 的文字聊天功能了
- vercel 的体验不错, 和我想象中的 serverless 体验差不多. 以后有空的时候多探索一下其他功能.
暂无评论