ChatGPT最近幾個月可算是火爆了,但是在使用的時候你是否遇到以下問題:
1. 國內網路受限,無法直接訪問
2. 頁面停留幾分鐘後token就過期了,必須頻繁的重新整理頁面
3. 自己寫個後臺部署還得買個國外的伺服器
如果你也被以上問題困擾,不妨往下看,你現在面臨的正是我所經歷的,這篇文章或許能夠給你提供一些幫助。
針對以上問題有很多種解決方案,網路受限我們可以選擇購買vpn;token過期我們可以升級plus;後端調不通openai的介面,我們可以選擇國外的伺服器,或者伺服器上裝代理;那有沒有更完美的解決方案呢?今天給大家分享一個透過cloudflare
實現最小成本代理openai
的方案。
廢話不多說,上Demo,親測可用。傳送門
第一步:註冊cloudflare賬號
前往cloudflare官網註冊一個賬號
第二步:建立worker,進行請求中轉
將此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在國內依然無法訪問,這時我們需要一個國內可訪問的域名來轉發。
第三步:域名轉發
回到workers首頁,找到剛才新增的server,點選進入詳情。
此處需注意,如果已經有域名的直接填入即可,沒有的需要去註冊一個,國內平臺註冊域名需要備案才行,如果覺得備案麻煩,可以就在cloudflare
上購買,大概一年30元左右,比起購買國外的伺服器和VPN來說實惠不少。
實際支付截圖
第四步:使用中轉域名
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
)
最後,愉快的玩耍去吧~