国产精品久久99,51久久成人国产精品麻豆,亚洲欧洲免费三级网站,最近中文字幕mv,重口老太大和小伙乱

首頁(yè)>新聞 > 正文

最新:AI 寫(xiě)書(shū),升級(jí)了!

2023-06-23 05:37:37來(lái)源:程序員魚(yú)皮

大家好,我是屑老板魚(yú)皮,上周給大家分享了下我們 的寫(xiě)書(shū)功能。只需要輸入你想寫(xiě)的書(shū)名和描述,就能夠自動(dòng)讓 AI 幫你生成一本書(shū)籍:


(資料圖片僅供參考)

由于也是剛剛上線(xiàn)嘛,功能沒(méi)有做到特別完備,也收到了很多小伙伴們的反饋,比如:

寫(xiě)書(shū)的速度太慢,一本書(shū)要寫(xiě)個(gè)十幾分鐘!
我的書(shū)寫(xiě)到一半,突然就終止了,感覺(jué)不穩(wěn)定。。
我的書(shū)寫(xiě)到一半,魚(yú)毛兒沒(méi)了,領(lǐng)魚(yú)毛后發(fā)現(xiàn)又要重新寫(xiě)。。。

收到大家的反饋后,我就開(kāi)始寫(xiě)代碼來(lái)修復(fù)這些問(wèn)題了。

現(xiàn)在,AI 寫(xiě)書(shū)功能已經(jīng)全面升級(jí),改進(jìn)如下:

寫(xiě)書(shū)速度快了幾倍,一本 8 個(gè)章節(jié)的書(shū)籍只要 兩分半左右就能完成。
AI 寫(xiě)書(shū)失敗后,可以點(diǎn)擊重試,自動(dòng)接著之前的章節(jié)續(xù)寫(xiě)。
支持設(shè)置書(shū)籍的目錄數(shù),目錄數(shù)越多,書(shū)籍的內(nèi)容越完整。

歡迎大家體驗(yàn)一下,AI 寫(xiě)出來(lái)的書(shū),還是挺有意思的哈哈!

魚(yú)聰明 AI:

介紹完了優(yōu)化點(diǎn),接下來(lái)我想給大家分享一下 AI 寫(xiě)書(shū)程序的優(yōu)化方法。

當(dāng)我們要開(kāi)發(fā)一個(gè)執(zhí)行時(shí)間很長(zhǎng)、中間過(guò)程很多的任務(wù)時(shí),都可以采用下面的方法來(lái)設(shè)計(jì)程序,能夠給發(fā)起任務(wù)的用戶(hù)帶來(lái)更好的體驗(yàn)。

比如我們魚(yú)聰明的 AI 寫(xiě)書(shū)任務(wù),要經(jīng)過(guò):任務(wù)校驗(yàn) => 生成目錄 => 依次生成多篇文章 => 結(jié)果生成等多個(gè)流程,總耗時(shí)可能要超過(guò) 10 分鐘。

最簡(jiǎn)單粗暴的方式,就是一個(gè)方法內(nèi),把所有這套流程的代碼全部寫(xiě)完。像下面這樣:

String寫(xiě)書(shū)(){任務(wù)校驗(yàn)代碼100行生成目錄代碼100行生成多篇文章代碼100行結(jié)果生成代碼100行}

但是這樣的缺點(diǎn)很明顯:

代碼不利于閱讀理解
只要有任何一個(gè)環(huán)節(jié)拋出異常又沒(méi)注意處理,程序就會(huì)崩盤(pán),任務(wù)整體失敗

所以,首先我們要進(jìn)行 任務(wù)拆分,把每個(gè)任務(wù)作為一個(gè)單獨(dú)的方法(函數(shù)),將上一個(gè)任務(wù)的結(jié)果作為下一個(gè)任務(wù)的輸入來(lái)進(jìn)行參數(shù)傳遞。

像下面這樣:

String寫(xiě)書(shū)(){A=任務(wù)校驗(yàn)()B=生成目錄(A)C=生成多篇文章(B)D=結(jié)果生成(C)}

這樣,程序的結(jié)構(gòu)就很清晰了。但只要有一個(gè)方法失敗,整個(gè)寫(xiě)書(shū)任務(wù)還是會(huì)終止,再次重試時(shí)還會(huì)從第一步(任務(wù)校驗(yàn))開(kāi)始執(zhí)行。

怎么解決呢?

我們可以對(duì)任務(wù)狀態(tài)進(jìn)行 持久化,比如把每個(gè)任務(wù)的執(zhí)行結(jié)果、任務(wù)整體的執(zhí)行狀態(tài)保存到數(shù)據(jù)庫(kù)中,比如當(dāng)前正在寫(xiě)第幾篇文章。如果失敗了,就把失敗的信息和當(dāng)前步驟記錄到數(shù)據(jù)庫(kù)中,相當(dāng)于保存了個(gè)斷點(diǎn)。

然后,寫(xiě)書(shū)任務(wù)的每個(gè)小步驟在執(zhí)行前,都要從數(shù)據(jù)庫(kù)(而不是從程序中)獲取當(dāng)前任務(wù)的最新?tīng)顟B(tài),從而判斷自己是否需要執(zhí)行當(dāng)前步驟。

舉個(gè)例子,如果已經(jīng)生成過(guò)書(shū)籍的目錄,然后服務(wù)器掛了導(dǎo)致任務(wù)失敗。點(diǎn)擊重試后,生成目錄的任務(wù)就不用再執(zhí)行了。

偽代碼如下:

String寫(xiě)書(shū)(){任務(wù)校驗(yàn)()A=從數(shù)據(jù)庫(kù)查任務(wù)狀態(tài)if(A任務(wù)未生成目錄){生成目錄()}...后續(xù)操作}

通過(guò)上面的 任務(wù)拆分任務(wù)狀態(tài)持久化,我們的程序就已經(jīng)有了從中間失敗狀態(tài)繼續(xù)執(zhí)行的能力。

但是還要考慮一些特殊情況,比如任務(wù)失敗了,還沒(méi)來(lái)得及把 “失敗” 狀態(tài)保存到數(shù)據(jù)庫(kù)中服務(wù)器就掛了,給用戶(hù)的感覺(jué)就是 “任務(wù)仍在執(zhí)行中”。

對(duì)于這種情況,可以編寫(xiě)定時(shí)任務(wù)來(lái)輪詢(xún)數(shù)據(jù)庫(kù)中所有執(zhí)行超過(guò)一定時(shí)間、并且狀態(tài)仍為執(zhí)行中的任務(wù),并且將這些任務(wù)狀態(tài)置為 “失敗”,算是一種補(bǔ)償機(jī)制。

當(dāng)然,系統(tǒng)資源允許的情況下,還可以適當(dāng)增加重試策略,任務(wù)失敗后自動(dòng)重試,不影響用戶(hù)體驗(yàn)。但一定要設(shè)置最大重試次數(shù)、重試間隔時(shí)間等,避免 “滾雪球”。

此外,只要是開(kāi)發(fā)這種長(zhǎng)耗時(shí)的任務(wù),在上線(xiàn)初期最好多加一些監(jiān)控和日志,后面排查問(wèn)題會(huì)方便很多。

這樣一套流程下來(lái),程序的可靠性、可用性就會(huì)增強(qiáng)不少~

就先分享到這里,我們要繼續(xù)去開(kāi)發(fā)新功能了,后面給大家分享下大家優(yōu)秀的 AI 大作,期待的話(huà)請(qǐng)多多為我們點(diǎn)贊吧!

長(zhǎng)按掃碼,生成你的 AI 大作:

往期推薦

關(guān)鍵詞:

責(zé)任編輯:

免責(zé)聲明

頭條新聞

精彩推送

新聞推送