我用ChatGPT在一周內(nèi)上線了個小程序
前段時間一直在玩stable diffusion和dreambooth,生成了我這個知乎頭像。而對于chatgpt,我一直還只是把它作為我的個人助理,有一天被朋友問到能用chatgpt做些什么呢?那段時間一直苦于起名字的事,朋友說要不就做個起個名的小程序吧,說干就干,看看一個不懂前端的我能不能一周內(nèi)上線個小程序
開發(fā)
后端:后端其實比較簡單,主要就是對接的openai的api,openai也給了各個語言的sdk,因為我的主力開發(fā)語言是java,引入maven依賴
封裝下對應(yīng)的api調(diào)用,openai要有complete和chat兩種類型的api可以調(diào)用,如果是單純起個名字不需要上下文信息其實使用complete就可以,然而openai說了gpt-3.5-turbo的價格更便宜,差不多在十分之一,本著省錢精神,自然選擇了gpt-3.5-turbo,調(diào)用非常簡單,構(gòu)造一個List<ChatMessage>, 指定模型與temperature參數(shù)即可。
temperature這個參數(shù)取值為0-1,越大代表模型回答的發(fā)散性越大,考慮到我這個起名字應(yīng)用是希望能有著更多樣性的回答,我將temperature從一般的0.7調(diào)到了0.8,這里向大家介紹一個調(diào)試參數(shù)的s很輕,就是openai自身的playgroud:?https://platform.openai.com/playground?可以在頁面上指定各個參數(shù)

2. 前端:重點來了,因為我本身是一個后端程序員,不懂小程序開發(fā),要在一星期內(nèi)學(xué)會并真正開發(fā)出來時間是不太夠的,所以我就直接問下了chatgpt



chatgpt基本把整個架子搭好了,運行下還是那么回事。隨著自己對ui的要求改善,后續(xù)就是不斷折磨chatgpt的過程,竟然有種產(chǎn)品經(jīng)理指著程序員干活的感覺,比如我需要在首頁的每個場景加個圖片

再比如讓他調(diào)整下樣式(這里還說錯了,可是gpt4依然理解的很好)

我現(xiàn)在覺得自己活脫脫就是一個拿著小皮筋的產(chǎn)品經(jīng)理
終于在我百般折磨下,終于把整個UI搞定了,在專業(yè)UI看來也許很差,但對于我來說已經(jīng)心滿意足了
3. 部署: 這一塊我使用的是云托管,這里真的要給騰訊點個贊,整個個開發(fā)部署流程非常流程,容器化部署,serverless,CICD,對于個人開發(fā)者來說真的節(jié)省了很大的部署部署運維成本。這一塊按照官方文檔來即可。
4. prompt engineering: 雖然這個應(yīng)用很簡單,但還是用到了一些prompt engineering的知識,主要體現(xiàn)在當(dāng)用戶為寶寶起名字的時候,即使用戶給了姓名,大模型仍然不會給出連著姓的全名,這里需要增加一些例子給到prompt,也就是few shot prompt, 我的system message如下
當(dāng)然這里還有一個bug,就是在起公司名字的時候,當(dāng)用戶指定的字?jǐn)?shù)過多時,比如5個字,大模型仍然不能識別總的字?jǐn)?shù)長度,我為了這個問題試了few shot prompting,甚至考慮加入思維連,但是效果都不是太令我滿意,如果有大神有這方面的經(jīng)驗也歡迎指正
5. 上線: 小程序上線需要走審批上線流程,這里需要把基礎(chǔ)的各個信息都填完整,第一次上線審批時間比較久,我差不多用了一天多的時間。
總結(jié):
我算了一下,從第一次commit到最后正式上線正好用了一周時間,這個對于我一個完全不懂小程序的人來說還是非常短的一個時間,再次感嘆AI的時代已經(jīng)正式到來。希望這篇文章能幫到大家,如果有問題,也歡迎討論,讓我們更好地讓AI為我所用(這篇文章全是人工完成,沒有chatgpt參與,第一次寫,大家多多包涵)
小程序: 小程序搜索 "起個名字啊"