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