天天看點

GPT科技系列 | 國内開發者調用openAI-API科技方法

作者:泰克教育官方賬号

01

前言

openAI上線7個月了,但是随着openAI的限制越來越多,國内開發者想要使用openai的接口實作開發簡直就是難上加難。那真的就沒有辦法了嗎?no no no,CF解決一切不開心。

02

準備工作

1. 我們需要一個國際域名

2. 注冊cloudflare賬号

3. 一個代理轉發的腳本

工具介紹

域名:

域名是網際網路上的一個位址,用于辨別一個網站或者一個網絡服務的名稱。它的作用是讓使用者更友善地通路網站或者網絡服務,而不需要記住複雜的IP位址。當使用者在浏覽器中輸入一個域名時,浏覽器會向域名系統(DNS)伺服器發送請求,擷取該域名對應的IP位址,然後再向該IP位址發送請求,擷取網站或者網絡服務的内容。域名通常由多個部分組成,例如www.example.com,其中www是子域名,example是二級域名,com是頂級域名。

CloudFlare:簡稱CF(可不是穿越火線~)

CloudFlare是一家提供雲計算服務的公司,其主要業務是提供網站加速、安全防護、DNS解析等服務。通過将網站的内容緩存到全球各地的伺服器上,CloudFlare可以加速網站的通路速度,同時還可以提供DDoS攻擊防護、SSL證書管理、防火牆等安全服務。CloudFlare的DNS解析服務可以幫助網站管理者更友善地管理域名解析,同時還可以提供一些進階功能,例如負載均衡、智能路由等。總之,CloudFlare是一家提供全方位雲計算服務的公司,可以幫助網站提高性能、安全性和可靠性。

我們在項目中使用的就是他的路由和負載功能。

03

實作思路

GPT科技系列 | 國内開發者調用openAI-API科技方法

04

開始操作

4.1 域名注冊

推薦使用GNAME、GoDady進行域名注冊

以下案例以GNAME實作思路實作:

4.1.1 進入官網新增賬號,有賬号直接登入

https://www.gname.net-GAME域名注冊官網-點選這裡

4.1.2 域名注冊

GPT科技系列 | 國内開發者調用openAI-API科技方法

然後加購進行購買可以使用AliPay支付。

注意:

1.GNAME支付後會将資金當機,需要添加兩個方式以上的賬号安全認證才能解凍繼續支付

2.建議添加谷歌郵箱和國内手機号碼驗證

4.1.3 夠買成功後在管理中心可以看到購買域名

GPT科技系列 | 國内開發者調用openAI-API科技方法

4.2 CloudFlare注冊以及配置

4.2.1 新增賬號

https://dash.cloudflare.com-CloudFlare官網

https://dash.cloudflare.com/sign-up-CloudFlare官網注冊位址

進入後右上角進行注冊登入

GPT科技系列 | 國内開發者調用openAI-API科技方法

4.2.2 添加站點

在輸入框裡輸入剛剛注冊的域名,然後添加站點

GPT科技系列 | 國内開發者調用openAI-API科技方法

4.2.3 收費模式選擇免費

免費計劃:每天提供10萬次轉發、負載請求次數,對于我們開發一個小型場景也夠了,如果你的大型網站那建議使用VPS或者自行搭建反向代理服務可以減少支出達到更好的效果。

GPT科技系列 | 國内開發者調用openAI-API科技方法

4.2.4 跳過添加DNS記錄

直接點選繼續

GPT科技系列 | 國内開發者調用openAI-API科技方法
GPT科技系列 | 國内開發者調用openAI-API科技方法

4.2.5 更改申請域名的DNS服務名稱位址

繼續上一步後,界面中級工會告訴你删除哪些原有的dns規則,然後添加由cloudFlare提供的dns位址。

GPT科技系列 | 國内開發者調用openAI-API科技方法

注冊域名後可以通過whois确定域名代理機構,GNAME就是專業域名注冊機構是以GNAME有管理工具,回到GNAME官網,然後到“域名管理”

1. 先添加一個域名管理模闆

因為gname需要模闆實名來管理每一個dns位址

GPT科技系列 | 國内開發者調用openAI-API科技方法
GPT科技系列 | 國内開發者調用openAI-API科技方法

(1)首先将域名模闆設定為剛剛你儲存的域名模闆

GPT科技系列 | 國内開發者調用openAI-API科技方法

新一下網頁就ok

(2)點選修改DNS選擇自定義

GPT科技系列 | 國内開發者調用openAI-API科技方法
GPT科技系列 | 國内開發者調用openAI-API科技方法

确定之後稍等片刻,重新整理網頁DNS域名變為綠色代表成功

4.2.6 回到CloudFlare繼續檢查監測域名與DNS服務是否修改

GPT科技系列 | 國内開發者調用openAI-API科技方法

這個操作可能需要5分鐘-4小時不等,我的等待了30分鐘,我們可以不用理會繼續往下執行,寫好代碼也差不多了,但是官方的解答是根據服務運作并發情況而定,因為本身CloudFlare也是一個域名解析站點是以吞吐較大

GPT科技系列 | 國内開發者調用openAI-API科技方法

站點網頁出現這個窗體代表站點DNS已經完成解析,但是我在開發時發現沒有出現此提示我的轉發服務依舊可以使用,ping 域名也能發現dns已經發生了改變是以可能是網站的狀态更新延遲,根據實際調用結果而定。

4.2.7 建立openAI代理轉發Worker

worker的功能就是以代碼的方式實作轉發或負載

1. 建立worker

GPT科技系列 | 國内開發者調用openAI-API科技方法

生成的代碼和三級域名不理會直接儲存(Deploy)

GPT科技系列 | 國内開發者調用openAI-API科技方法

2.修改代碼

儲存好Worker後在管理界面點選“快速編輯”

GPT科技系列 | 國内開發者調用openAI-API科技方法

此時會進入一個浏覽器線上調試編譯工具

注意:編譯工具請求次數會非常多,頁面的每次改變都會觸發1~25個請求不等(我測試出來的不知道大家的如何),是以按照我的方法指派黏貼好即可

如果進入後出現白屏情況換Edge浏覽器,因為裡面有微軟的線上編譯工具插件

GPT科技系列 | 國内開發者調用openAI-API科技方法

進入後将以下代碼複制進入左側代碼窗體:

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

儲存完成後點選儲存并部署

GPT科技系列 | 國内開發者調用openAI-API科技方法

3. 設定你的域名映射到目前添加的Worker

進入目前Worker的觸發器,點選添加自定義域

GPT科技系列 | 國内開發者調用openAI-API科技方法

輸入你的域名後儲存,等待10分鐘左右直到證書辨別生效功能就完成了

05

測試驗證

比如我們請求openai官方的擷取模型清單的api接口:

原位址:https://platform.openaiapi.com/v1/models

通過CloudFlare轉發的位址:(将openai的轉為你的位址)

https://你的域名/v1/models

測試結果:

GPT科技系列 | 國内開發者調用openAI-API科技方法

06

總結

到這裡,我們就完成了在國内就可以通路openai的接口了,我們不需要花大力氣去做VPS,在Python和java中調用隻要使用OKHttps類庫之類的就可以正常通路了。

希望本文對大家有幫助,點贊、收藏、加關注喲。有咨詢請私聊

繼續閱讀