自2022年11月30日 OpenAI 發布 ChatGPT 以來,雖然時有唱衰的聲音出現,但在OpenAI不斷推陳出新,陸續發布了OpenAPI、GPT-4、ChatGPT Plugins之后,似乎讓大家看到了一個聊天機器人往作業系統入口進軍的升緯之路,
ChatGPT能被認為是作業系統級別的入口平臺,那么必然會催生各行各業應用的重新入局,對此,作為一名開發者來說,面對這樣的變革,應該盡早的去了解與實踐,在藍海里更容易找到一份自己的位置,目前DD知道的就有不少小伙伴在基于其API做一些出海的應用,
最近,DD也花了不少時間去研究和體驗了一些有趣的內容,比如:嘗試跑了一些基于其API實作的類ChatGPT應用:

還有比如下面這個通過拖拽就能輕松除錯和構建智能聊天應用的開源工具:

在這幾天的不斷嘗試程序中,DD發現一個比較麻煩的問題,就是這些應用都需要OpenAI的API Key,

作為開發者來說,相信不少小伙伴知道如何獲取了,這里就不細節說了,大家可以Google一下,有大量的資料,
這里具體說說另外一個問題:由于我們本地除錯、服務器部署等原因,在請求 https://api.openai.com 的時候,很容易造成IP混亂,稍有不慎就有可能被封號,所以,我們最好還是有一個穩定的位于國外的呼叫來源,這樣日常開發除錯就能更效率一些,
那么如何快捷方便的來搞定呢?下面就給大家分享一個利用阿里云函式計算(有大量免費試用額度)來實作的方案,
命令列部署
準備作業
- 點擊鏈接(https://t.aliyun.com/U/nb5Ka1),進入管理“控制臺”,開通函式計算FC

-
安裝最新版本的nodejs,不會的可以看官網:https://nodejs.org/
-
執行命令安裝Serverless Devs Tool
npm安裝:
$ npm install @serverless-devs/s -g
yarn安裝:
$ yarn global add @serverless-devs/s
- 通過該鏈接(https://usercenter.console.aliyun.com/#/manage/ak ),獲取阿里云的AccessKey,一定要把這里獲取的AccessKey ID和AccessKey Secret記下來,下面馬上要用,
- 為Serverless Devs Tool配置阿里云的AccessKey
$ s config add
? Please select a provider: Alibaba Cloud (alibaba)
?? Refer to the document for alibaba key: http://config.devsapp.net/account/alibaba
? AccessKeyID 此處填寫AccessKeyID
? AccessKeySecret 此處填寫AccessKeySecret
? Please create alias for key pair. If not, please enter to skip alibaba-access
Alias: alibaba-access
AccountID: 自動獲取AccountID
AccessKeyID: 此處填寫AccessKeyID
AccessKeySecret: 此處填寫AccessKeySecret
? Configuration successful
兩行命令實作部署
在完成了上面的準備作業之后,接下來我們只需要兩行命令即可完成代理服務的部署!
第一步:初始化專案,執行命令**s init openai-proxy**,創建openai-proxy專案,
$ s init openai-proxy
?? More applications: https://registry.serverless-devs.com
? Please input your project name (init dir) openai-proxy
? file decompression completed
創建應用所在的地區
? 地域 us-west-1
? please select credential alias aliyun-key
??? Thanks for using Serverless-Devs
?? You could [cd /Users/zhaiyongchao/IdeaProjects/test/openai-proxy] and enjoy your serverless journey!
??? If you need help for this example, you can use [s -h] after you enter folder.
?? Document ? Star: https://github.com/Serverless-Devs/Serverless-Devs
?? More applications: https://registry.serverless-devs.com
會有幾個選項,一直回車就好,如果想修改也行,自己根據需要選擇即可,
第二步:一鍵部署,進到初始化好的openai-proxy目錄下,然后執行命令**s deploy**直接部署到阿里云上,不要懷疑,就是這么絲滑,一鍵完成!
$ s deploy
?? Config check:
Online status => Target Status
routeConfig: [
0: {
+ qualifier: undefined
}
]
? Domain [auto] was changed, please confirm before deployment:
* You can also specify to use local configuration through --use-local during deployment) use local
? Generated auto custom domain...
? Generated custom domain (3.78s)
? Generated auto custom domain...
注意:當前域名并非阿里云官方域名,由 CNCF Project Serverless Devs 社區提供,僅供測驗使用,
Note: The current domain name is not the official domain name of Alibaba Cloud. It is provided by the CNCF Project Serverless Devs community for testing purposes only
? Generated domain (23.38s)
? Checking Service, Function, Triggers (1.53s)
? Creating Service, Function, Triggers (9.57s)
? Creating custom domain (1.7s)
Tips for next step
======================
* Display information of the deployed resource: s info
* Display metrics: s metrics
* Display logs: s logs
* Invoke remote function: s invoke
* Remove Service: s remove service
* Remove Function: s remove function
* Remove Trigger: s remove trigger
* Remove CustomDomain: s remove domain
...

在部署完成之后,最后面會有上圖這樣的一段輸出,記住紅線部分的域名,這是可以直接訪問,你可以嘗試訪問一下,如果回傳如下資訊,說明部署成功了,
{
"error": {
"message": "Invalid URL (GET /)",
"type": "invalid_request_error",
"param": null,
"code": null
}
}
同時,我們也可以通過這個鏈接https://fcnext.console.aliyun.com/us-west-1/services 去阿里云的控制臺找到創建的這個函式服務:

應用中心部署
如果你不喜歡命令列的部署方式的話,還可以通過應用中心實作部署,方法更簡單!
第一步:點擊鏈接(https://t.aliyun.com/U/nb5Ka1),進入管理“控制臺”,開通函式計算FC

訪問應用中心:http://www.devsapp.cn/details.html?name=openai-proxy
第二步:點擊“一鍵部署”按鈕

第三步:點擊“創建并部署默認環境”

接下來就是等著阿里云的精彩表演:

完成部署之后,可以看到如下圖的操作列中,有“訪問域名”鏈接,點擊后就可以獲取到用來代理的域名了,

使用代理訪問API
通過簡單的五步操作,我們已經完成了一個OpenAI呼叫的代理搭建,還記得上面最后配置的域名不?接下來就可以隨便找一個開源專案來使用一下試試,
比如可以用這個專案來驗證一下:https://github.com/ddiu8081/chatgpt-demo
方法很簡單,只需要
- 拉取代碼:
git clone [email protected]:ddiu8081/chatgpt-demo.git - 安裝依賴:
npm install - 復制
.env.example檔案,命名為.env檔案,把申請的OPENAI_API_KEY填上,再把OPENAI_API_BASE_URL填寫上面配置好的代理地址,比如:http://openai-proxy.abc123.com

- 啟動應用:
npm start,控制臺輸出如下資訊,代表啟動成功
> [email protected] start
> astro dev
?? astro v2.1.7 started in 209ms
┃ Local http://localhost:3000/
┃ Network use --host to expose
- 打開瀏覽器,訪問:http://localhost:3000/,可以看到如下頁面:

嘗試給他設定一個角色,然后發幾句話試試吧,如果可以收到AI回復,那就代表已經完成代理,
當然,你也可以選擇很多其他的應用來驗證和使用,比如下面這些有趣的專案:
- https://github.com/mckaywrigley/chatbot-ui
- https://github.com/logspace-ai/langflow
總結
通過本文的方法搭建之后,由于已經有一個位于海外的呼叫來源,所以在本地開發和線上測驗的時候,可以都直接用同一個API Key即可,本地日常使用也不需要采用其他特殊手段了,是不是安逸不少呢?
最后,聊聊為什么選擇函式計算來部署,主要還是幾個方面的考慮:
- 輕松部署:可以看到只需要簡單幾步,就完成了,非常適合這類輕量級的應用部署,
- 免運維:幾乎不需要運維,大大減少了日常繁瑣的精力投入,可以更專注業務開發了,
- 省錢利器:函式計算擁有彈性伸縮的能力,最小可以縮為零,也就是如果不呼叫,都不會產生費用,
進一步思考下,函式計算還是非常適合于開發ChatGPT應用的,由于OpenAPI的API Key是按量計費的,函式計算也是按量計費的,那么這樣的按量計費模式可以繼續傳遞到用戶側,如果用戶側的呼叫實作采用函式計算的方式來部署,那么可以說除了基礎控制模塊存在固定成本之外,用戶側的成本和收益是強系結關系,只要架構合理,充分利用函式計算的彈性伸縮能力,那就可以構建出一個低成本運行但卻又能自動應對突發大流量的強壯應用,
其實,巧妙的應用函式計算來構建偏向用戶側的應用,不光對于ChatGPT有用,對于一些SaaS應用的場景來說,也可以深入思考和嘗試,除了彈性伸縮的能力之外,借助函式計算提供的API能力,還能利用其實作SaaS租戶的資源隔離,寫著寫著似乎又偏題了…
回到ChatGPT的正題,如果你還在糾結,未來ChatGPT是否會淘汰程式員的話,那就一起行動起來吧!與其被ChatGPT取代,不如征服ChatGPT,做它的主人!
參考資料
- https://github.com/Ice-Hazymoon/openai-scf-proxy/
- https://www.aliyun.com/product/fc
- https://github.com/ddiu8081/chatgpt-demo
歡迎關注我的公眾號:程式猿DD,第一時間了解前沿行業訊息、分享深度技術干貨、獲取優質學習資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/548721.html
標籤:其他
上一篇:C++:explicit關鍵字
