在云服務(wù)器上搭建個人版chatGPT及后端Spring Boot集成chat GPT教程

總結(jié)/朱季謙

本文分成兩部分进统,包括【國內(nèi)服務(wù)器上搭建chat GPT】和【后端Spring Boot集成chat GPT】。

無論是在【國內(nèi)服務(wù)器上搭建chat GPT】和【后端Spring Boot集成chat GPT】艳悔,兩個方式都需要魔法訪問,否則是無法正常使用的辛辨,即需要具備正常訪問谷歌或者 api.openai.com的能力丧蘸。

至于什么是魔法訪問,以及如何搭建魔法訪問祖乳,請自行研究哈逗堵。

下面就開始講解兩部分的教程。

一眷昆、國內(nèi)服務(wù)器上搭建chat GPT

首先蜒秤,你需要準(zhǔn)備以下東西:

1、一臺可以訪問公網(wǎng)的Linux云服務(wù)器亚斋,最低配置1核2G即可(當(dāng)然作媚,有錢可以任性,買最高配置)

2帅刊、chatGPT的密鑰

3纸泡、開源的仿chatGPT的Docker鏡像




1.1、準(zhǔn)備一臺云服務(wù)器

可以是騰訊云赖瞒、阿里云或者華為云等女揭,我分別在阿里云和華為云上都能正常搭建蚤假。

1.2、設(shè)置網(wǎng)絡(luò)代理

在部署魔法訪問的服務(wù)器上吧兔,需要在/etc/profile增加代理磷仰,確保通過密鑰方式的chatGPT接口調(diào)用能正常訪問:

export all_proxy=http://127.0.0.1:8889
export http_proxy=http://127.0.0.1:8889
export https_proxy=https://127.0.0.1:8889
export all_proxy=socks5://127.0.0.1:1080

這里的8889和1080需要根據(jù)你的魔法訪問里的config.json來相應(yīng)設(shè)置。

配置完成后境蔼,執(zhí)行source /etc/profile灶平,檢驗一下curl https://api.openai.com/
可以訪問即沒問題∨费ǎ可以繼續(xù)往下走民逼。


1.3泵殴、安裝Docker

可以按照我以前記錄的一篇關(guān)于搭建Docker的方式進(jìn)行命令行按照CentOS7安裝Docker遇到的問題筆記

搭建完成后涮帘,因為Docker的對外訪問若需要走所在宿主的代理話,還需要設(shè)置以下操作——

創(chuàng)建一個~/.docker/目錄笑诅,然后在該目錄下新建一個config.json文件调缨,在該文件里添加以下命令——

{
   "default":
   {
     "httpProxy": "http://127.0.0.1:8889",
     "httpsProxy": "http://127.0.0.1:8889",
     "noProxy": "*.test.example.com,.example2.com,127.0.0.0/8"
   }
 }
}


1.4、Docker鏡像

目前網(wǎng)上GitHub已經(jīng)開源了許多優(yōu)秀的仿寫chatGPT 頁面的應(yīng)用吆你,我們無需再額外造輪子弦叶,只需要挑選其中一款用來打包部署成Docker容器運行即可。

我使用的是chatgpt-mirror這個開源項目妇多。

直接克隆項目到對應(yīng)的Linux服務(wù)器——

git clone https://github.com/yuezk/chatgpt-mirror.git

在基于該開源項目以Dockerfile形式打包前伤哺,需要執(zhí)行以下被依賴到的鏡像——

docker pull node:18-alpine 
docker pull node:18-slim

接下來,就可以執(zhí)行以下操作來創(chuàng)建一個Docker鏡像了——

cd chatgpt-mirror
#--network host表示與宿主公用網(wǎng)絡(luò)者祖,即走代理立莉,然后留意下最后有一個 .
docker build --network host  -t chatgpt-mirror . 
#正常執(zhí)行成功后,通過該指令能看到一個新鏡像
docker images

具體情況如下:


image.png

然后需要在cd chatgpt-mirror環(huán)境里新增一個文件env七问,該文件里寫入chatGPT密鑰與宿主機器的代理:

OPENAI_API_KEY=你的chatGPT密鑰
HTTP_PROXY=http://127.0.0.1:8889

完成以上操作后蜓耻,最后在該目錄chatgpt-mirror里執(zhí)行——

docker run -itd --net host -p 3000:3000 -v /app/config.json:/app/config/app.config --env-file env chatgpt-mirror

正常執(zhí)行完成后,即可在瀏覽上輸入http://你的服務(wù)器ip:3000械巡,就能出來一個外表仿chatGPT但內(nèi)在是調(diào)用真實chatGPT接口的應(yīng)用刹淌。

重點是,如此一來讥耗,你的電腦有勾、平臺、手機等終端都無需魔法訪問古程,就能直接使用chatGPT了蔼卡,而且響應(yīng)速度比直連官網(wǎng)快一倍左右速度,無比絲滑籍琳!而且菲宴,沒有像chatGPT官網(wǎng)直連那樣經(jīng)常出現(xiàn)響應(yīng)異常以及斷開的問題贷祈,協(xié)助效率大大增加。

以下就是訪問搭建在我自己服務(wù)器上的chatGPT頁面喝峦,是不是跟真實的很像势誊。

image.png


二、后端Spring Boot集成chat GPT

注意谣蠢,該方式同樣需要魔法訪問粟耻。

首先,在maven依賴引入以下配置——

<dependency>
    <groupId>com.theokanning.openai-gpt3-java</groupId>
    <artifactId>service</artifactId>
    <version>0.11.1</version>
</dependency>

編寫以下代碼——

@GetMapping("/ai")
public void sendMsg() throws InterruptedException {
    System.out.println("開始提問題~");
    System.out.println("你是一個工作助手眉踱,情幫忙設(shè)計一份活動策劃書" );
  //GPT_TOKEN即你的代碼密鑰
    OpenAiService service = new OpenAiService(GPT_TOKEN,Duration.ofSeconds(10000));
    CompletionRequest completionRequest = CompletionRequest.builder()
                //使用的模型
            .model("text-davinci-003")
            //輸入提示語
            .prompt("設(shè)計一份活動策劃書")
            //該值越大每次返回的結(jié)果越隨機挤忙,即相似度越小,可選參數(shù)谈喳,默認(rèn)值為 1册烈,取值 0-2
            .temperature(0.5)
            //返回結(jié)果最大分詞數(shù)
            .maxTokens(2048)
            //與temperature類似
            .topP(1D)
            .build();
    service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
    Thread.sleep(6000);
}

CompletionRequest的屬性文檔介紹在這里——

https://platform.openai.com/docs/api-reference/completions/create

啟動,調(diào)用該接口婿禽,即可正常使用chat GPT集成到SpringBoot后端代碼里——


image.png

需要注意的是赏僧,若是部署在有魔法訪問的Linux云服務(wù),代碼需要相應(yīng)做一下調(diào)整扭倾,否則是無法訪問到chatGPT的淀零,會出現(xiàn)以下異常提示:java.net.ConnectException:Failed to connect to api.openai.com/2a03:2880:f10c:283:face:b00c:0:25de:443]

故而,需要做以下調(diào)整:

public void send1Msg() throws InterruptedException {

        System.out.println("開始提問題~");
        System.out.println("你是一個工作助手膛壹,情幫忙設(shè)計一份活動策劃書" );
        //需要額外設(shè)置一個能訪問chatGPT的魔法訪問代理
        ObjectMapper mapper = defaultObjectMapper();
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8889));
        OkHttpClient client =  defaultClient(GPT_TOKEN,Duration.ofSeconds(10000))
                .newBuilder()
                .proxy(proxy)
                .build();
        Retrofit retrofit = defaultRetrofit(client, mapper);
        OpenAiApi api = retrofit.create(OpenAiApi.class);

                //將設(shè)置的代理傳給OpenAiService即可
        OpenAiService service = new OpenAiService(api);
        CompletionRequest completionRequest = CompletionRequest.builder()
                .model("text-davinci-003")
                .prompt("設(shè)計一份活動策劃書")
                .temperature(0.5)
                .maxTokens(2048)
                .topP(1D)
                .build();
        service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
        Thread.sleep(6000);
}

部署在Linux云服務(wù)上的聊天返回打印效果——


image.png

以上就是關(guān)于【國內(nèi)服務(wù)器上搭建chat GPT】和【后端Spring Boot集成chat GPT】教程驾中,更多好玩的關(guān)于chat GPT相關(guān)的內(nèi)容,可以關(guān)注我模聋,因為我對這塊很感興趣肩民,接下來會分享更多相關(guān)內(nèi)容。有不懂的也可以后臺問我撬槽。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末此改,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子侄柔,更是在濱河造成了極大的恐慌共啃,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暂题,死亡現(xiàn)場離奇詭異移剪,居然都是意外死亡,警方通過查閱死者的電腦和手機薪者,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門纵苛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事攻人∪∈裕” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵怀吻,是天一觀的道長瞬浓。 經(jīng)常有香客問我,道長蓬坡,這世上最難降的妖魔是什么猿棉? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮屑咳,結(jié)果婚禮上萨赁,老公的妹妹穿的比我還像新娘。我一直安慰自己兆龙,他們只是感情好杖爽,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著详瑞,像睡著了一般掂林。 火紅的嫁衣襯著肌膚如雪臣缀。 梳的紋絲不亂的頭發(fā)上坝橡,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天,我揣著相機與錄音精置,去河邊找鬼计寇。 笑死,一個胖子當(dāng)著我的面吹牛脂倦,可吹牛的內(nèi)容都是我干的番宁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赖阻,長吁一口氣:“原來是場噩夢啊……” “哼蝶押!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起火欧,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤棋电,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后苇侵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赶盔,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年榆浓,在試婚紗的時候發(fā)現(xiàn)自己被綠了于未。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖烘浦,靈堂內(nèi)的尸體忽然破棺而出抖坪,到底是詐尸還是另有隱情,我是刑警寧澤闷叉,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布柳击,位于F島的核電站,受9級特大地震影響片习,放射性物質(zhì)發(fā)生泄漏捌肴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一藕咏、第九天 我趴在偏房一處隱蔽的房頂上張望状知。 院中可真熱鬧,春花似錦孽查、人聲如沸饥悴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽西设。三九已至,卻和暖如春答朋,著一層夾襖步出監(jiān)牢的瞬間贷揽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工梦碗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留禽绪,地道東北人。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓洪规,卻偏偏與公主長得像印屁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子斩例,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容