【GPT科技系列】国内开发者调用openAI-API科技方法

1. 前言

openAI上线7个月了,但是随着openAI的约束越来越多,国内开发者想要使用openai的接口实现开发简直就是难上加难。那真的就没有办法了吗?no no no,CF解决一切不开心~

2.准备工作

    1. 我们需要一个国际域名
    1. 注册cloudflare账号
    1. 一个代理转发的脚本

工具介绍

域名
域名是互联网上的一个地址,用于标识一个网站或者一个网络服务的名称。它的作用是让用户更方便地访问网站或者网络服务,而不需要记住复杂的IP地址。当用户在浏览器中输入一个域名时,浏览器会向域名系统(DNS)服务器发送请求,获取该域名对应的IP地址,然后再向该IP地址发送请求,获取网站或者网络服务的内容。域名通常由多个部分组成,例如www.example.com,其中www是子域名,example是二级域名,com是顶级域名。

CloudFlare:简称CF(可不是穿越火线~~)
CloudFlare是一家提供云计算服务的公司,其主要业务是提供网站加速、安全防护、DNS解析等服务。通过将网站的内容缓存到全球各地的服务器上,CloudFlare可以加速网站的访问速度,同时还可以提供DDoS攻击防护、SSL证书管理、防火墙等安全服务。CloudFlare的DNS解析服务可以帮助网站管理员更方便地管理域名解析,同时还可以提供一些高级功能,例如负载均衡、智能路由等。总之,CloudFlare是一家提供全方位云计算服务的公司,可以帮助网站提高性能、安全性和可靠性。
我们在项目中使用的就是他的路由和负载功能

3.实现思路

在这里插入图片描述

4.开始操作

4.1 域名注册

推荐使用GNAME、GoDady进行域名注册

以下案例以GNAME实现思路实现:

4.1.1 进入官网注册账号,有账号直接登录

GAME域名注册官网-点击这里
在这里插入图片描述

4.1.2 域名注册

在输入框中输入想要的域名进行购买,推荐top年费不到5刀,续费同价
在这里插入图片描述

然后加购进行购买可以使用AliPay支付。

注意
1.GNAME支付后会将资金冻结,需要添加两个方式以上的账号安全认证才能解冻继续支付
2.建议添加谷歌邮箱和国内手机号码验证

4.1.3 够买成功后在管理中心可以看到购买域名

在这里插入图片描述

4.2 CloudFlare注册以及配置

4.2.1 注册账号

CloudFlare官网-点击进入
CloudFlare官网注册地址-点击进入
进入后右上角进行注册登录
在这里插入图片描述

4.2.2 添加站点

在输入框里输入刚刚注册的域名,然后添加站点
在这里插入图片描述

4.2.3 收费模式选择免费

免费计划:每天提供10万次转发、负载请求次数,对于我们开发一个小型场景也够了,如果你的大型网站那建议使用VPS或者自行搭建反向代理服务可以减少支出达到更好的效果。
在这里插入图片描述

4.2.4 跳过添加DNS记录

直接点击继续
在这里插入图片描述
下一步弹窗点击确定即可:
在这里插入图片描述

4.2.5 更改申请域名的DNS服务名称地址

继续上一步后,界面中级工会告诉你删除哪些原有的dns规则,然后添加由cloudFlare提供的dns地址
在这里插入图片描述
注册域名后可以通过whois确定域名代理机构,GNAME就是专业域名注册机构所以GNAME有管理工具
回到GNAME官网,然后到“域名管理”

1. 先添加一个域名管理模板

因为gname需要模板实名来管理每一个dns地址
在这里插入图片描述

2. 修改DNS服务名

在这里插入图片描述

(1)首先将域名模板设置为刚刚你保存的域名模板
在这里插入图片描述
设置完成后刷新一下网页就ok
(2)点击修改DNS
在这里插入图片描述

选择自定义
在这里插入图片描述
然后将CloudFlare提供的两个DNS地址复制黏贴进来即可
在这里插入图片描述

在这里插入图片描述
确定之后稍等片刻,刷新网页DNS域名变为绿色代表成功

4.2.6 回到CloudFlare继续检查监测域名与DNS服务是否修改

在这里插入图片描述

这个操作可能需要5分钟~4小时不等,我的等待了30分钟,我们可以不用理会继续往下执行,写好代码也差不多了,但是官方的解答是根据服务运行并发情况而定,因为本身CloudFlare也是一个域名解析站点所以吞吐较大

在这里插入图片描述
站点网页出现这个窗体代表站点DNS已经完成解析,但是我在开发时发现没有出现此提示我的转发服务依旧可以使用,ping 域名也能发现dns已经发生了改变所以可能是网站的状态更新延迟,根据实际调用结果而定。

4.2.7 创建openAI代理转发Worker

worker的功能就是以代码的方式实现转发或负载

1. 创建worker

在这里插入图片描述
生成的代码和三级域名不理会直接保存(Deploy)
在这里插入图片描述

2.修改代码

保存好Worker后在管理界面点击“快速编辑”
在这里插入图片描述
此时会进入一个浏览器在线调试编译工具

注意:编译工具请求次数会非常多,页面的每次改变都会触发1~25个请求不等(我测试出来的不知道大家的如何),所以按照我的方法赋值黏贴好即可

如果进入后出现白屏情况换Edge浏览器,因为里面有微软的在线编译工具插件

在这里插入图片描述
进入后将以下代码复制进入左侧代码窗体:

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

保存完成后点击保存并部署
在这里插入图片描述

3. 设置你的域名映射到当前添加的Worker

进入当前Worker的触发器,点击添加自定义域
在这里插入图片描述
输入你的域名后保存,等待10分钟左右直到证书标识生效功能就完成了

5. 测试验证

比如我们请求openai官方的获取模型列表的api接口:
原地址:https://platform.openaiapi.com/v1/models
通过CloudFlare转发的地址:(将openai的转为你的地址)
https://你的域名/v1/models

测试结果:

在这里插入图片描述

6. 总结

到这里,我们就完成了在国内就可以访问openai的接口了,我们不需要花大力气去做VPS,在Python和java中调用只要使用OKHttps类库之类的就可以正常访问了

希望本文对大家有帮助,点赞、收藏、加关注哟老板们~~~~

猜你喜欢

转载自blog.csdn.net/gjb760662328/article/details/130819479