繼 GPT-4 超強(qiáng)進(jìn)化后,現(xiàn)在還能自我修復(fù)。國(guó)外網(wǎng)友開(kāi)發(fā)一個(gè)「金剛狼」項(xiàng)目,能夠自動(dòng)修復(fù) Python 中的 bug,并運(yùn)行代碼。
要問(wèn)程序員,一天中最煩的時(shí)候是什么?
那一定是給寫(xiě)好的程序 Debug 了。而現(xiàn)在,這種局面要得到改善了!
國(guó)外一名叫 BioBootloader 的開(kāi)發(fā)者基于 GPT-4 搞了一個(gè)叫「金剛狼」的項(xiàng)目,能夠自我修復(fù) Python 腳本。
從名字就能看出來(lái),這項(xiàng)目主打一個(gè)「自我愈合」。通過(guò) GPT 識(shí)別代碼中的錯(cuò)誤,并提供修改,直至程序順利運(yùn)行。
不過(guò),「金剛狼」目前只能用在 Python 上。
這項(xiàng)目已經(jīng)在 GitHub 上收攬了 1.2k 星,108 個(gè) Fork。
金剛狼?金剛狼!
BioBootloader 表示,用「金剛狼」運(yùn)行你的程序,只要一崩潰,GPT-4 就會(huì)自動(dòng)編輯,然后給出出錯(cuò)的原因。
哪怕碼農(nóng)寫(xiě)了一大堆 Bug,也沒(méi)事。「金剛狼」會(huì)反復(fù)運(yùn)行,直到一切 Bug 都被 De 掉。
GPT-4 想必大家都不陌生。這是由 OpenAI 開(kāi)發(fā)的多模態(tài)人工智能語(yǔ)言模型。
BioBootloader 在推特上的演示視頻中,展示了「金剛狼」的具體使用方式。
視頻中,開(kāi)發(fā)者先寫(xiě)了個(gè)簡(jiǎn)單的四則運(yùn)算代碼,然后故意把其中一些部分寫(xiě)錯(cuò)。
比方說(shuō),把結(jié)尾的 return result 隨便改成 return res,而 res 沒(méi)有定義,于是就出錯(cuò)了。
小哥還把減法部分的代碼刪掉了,就是上方的 substract_numbers。這樣一來(lái),下面 calculate 那里就一定會(huì)報(bào)錯(cuò)。因?yàn)?subtract 沒(méi)有定義了。
之后直接運(yùn)行「金剛狼」即可,GPT 生成的部分會(huì)出現(xiàn)在右側(cè)。
可以看到,「金剛狼」快速識(shí)別出了錯(cuò)誤,并且附上了解釋。
「腳本中沒(méi)有定義 subtract_numbers.
res 這個(gè)變量沒(méi)有定義,應(yīng)該用 result 代替?!?/p>
不光給了建議,「金剛狼」還直接把改好的代碼附上了。紅色是應(yīng)該刪掉的部分,綠色是添加的部分。
實(shí)際上,「金剛狼」是一個(gè)封裝器,它負(fù)責(zé)運(yùn)行程序,捕捉錯(cuò)誤信息,再把這些錯(cuò)誤發(fā)送給 GPT-4,詢(xún)問(wèn) GPT 代碼出了什么問(wèn)題。
像 GPT-4 這種 LLM,是用自然語(yǔ)言「編程」的,而這些指令被視為 prompts。
「金剛狼」所實(shí)現(xiàn)的功能很大一部分要?dú)w功于精心編寫(xiě)的提示,閱讀這些提示就可以更好的理解整個(gè)過(guò)程。
目前該項(xiàng)目已經(jīng)發(fā)布在了 GitHub 上。小哥也是貼心的給出了設(shè)置上的要求。
不止是 Python
在 GitHub 上,BioBootloader 發(fā)布了自己未來(lái)的計(jì)劃,「金剛狼」的功能會(huì)越來(lái)越全面、強(qiáng)大。
「目前的版本只是我花了幾個(gè)小時(shí)搞得一個(gè)原型產(chǎn)品。未來(lái)還會(huì)有很多可能的延展,同時(shí)歡迎大家一起來(lái)開(kāi)發(fā)?!?/p>
- 添加標(biāo)志來(lái)定制使用方法,例如在運(yùn)行改變的代碼前要求用戶確認(rèn)。
- 對(duì) GPT 的編輯格式進(jìn)行進(jìn)一步的迭代。目前,GPT 在縮進(jìn)方面有點(diǎn)困難,但我確信這一點(diǎn)可以得到改善。
- 一套有問(wèn)題的文件的例子,我們可以在上方的測(cè)試進(jìn)行提示,以確保其可靠性,并衡量改進(jìn)的如何。
- 多個(gè)文件 / 代碼庫(kù) —— 向 GPT 發(fā)送堆棧跟蹤中出現(xiàn)的所有文件
- 對(duì)大文件更好地處理,即我們是否應(yīng)該只向 GPT 發(fā)送相關(guān)的類(lèi) / 函數(shù)?
- 擴(kuò)展到 Python 以外的編程語(yǔ)言
從上面那個(gè)簡(jiǎn)單的例子可以看出來(lái),這個(gè)腳本還是未來(lái)可期的。
畢竟,總不能讓用別的語(yǔ)言工作的碼農(nóng)們看著智能 Debug Python 的「金剛狼」眼紅呀。
參考資料:
鄭重聲明:此文內(nèi)容為本網(wǎng)站轉(zhuǎn)載企業(yè)宣傳資訊,目的在于傳播更多信息,與本站立場(chǎng)無(wú)關(guān)。僅供讀者參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。