繼 GPT-4 超強進化后,現(xiàn)在還能自我修復。國外網(wǎng)友開發(fā)一個「金剛狼」項目,能夠自動修復 Python 中的 bug,并運行代碼。
要問程序員,一天中最煩的時候是什么?
那一定是給寫好的程序 Debug 了。而現(xiàn)在,這種局面要得到改善了!
國外一名叫 BioBootloader 的開發(fā)者基于 GPT-4 搞了一個叫「金剛狼」的項目,能夠自我修復 Python 腳本。
從名字就能看出來,這項目主打一個「自我愈合」。通過 GPT 識別代碼中的錯誤,并提供修改,直至程序順利運行。
不過,「金剛狼」目前只能用在 Python 上。
這項目已經(jīng)在 GitHub 上收攬了 1.2k 星,108 個 Fork。
金剛狼?金剛狼!
BioBootloader 表示,用「金剛狼」運行你的程序,只要一崩潰,GPT-4 就會自動編輯,然后給出出錯的原因。
哪怕碼農(nóng)寫了一大堆 Bug,也沒事?!附饎偫恰箷磸瓦\行,直到一切 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 這個變量沒有定義,應該用 result 代替。」
不光給了建議,「金剛狼」還直接把改好的代碼附上了。紅色是應該刪掉的部分,綠色是添加的部分。
實際上,「金剛狼」是一個封裝器,它負責運行程序,捕捉錯誤信息,再把這些錯誤發(fā)送給 GPT-4,詢問 GPT 代碼出了什么問題。
像 GPT-4 這種 LLM(即大型語言模型),是用自然語言「編程」的,而這些指令被視為 prompts。
「金剛狼」所實現(xiàn)的功能很大一部分要歸功于精心編寫的提示,閱讀這些提示就可以更好的理解整個過程。
目前該項目已經(jīng)發(fā)布在了 GitHub 上。小哥也是貼心的給出了設置上的要求。
不止是 Python
在 GitHub 上,BioBootloader 發(fā)布了自己未來的計劃,「金剛狼」的功能會越來越全面、強大。
「目前的版本只是我花了幾個小時搞得一個原型產(chǎn)品。未來還會有很多可能的延展,同時歡迎大家一起來開發(fā)。」
- 添加標志來定制使用方法,例如在運行改變的代碼前要求用戶確認。
- 對 GPT 的編輯格式進行進一步的迭代。目前,GPT 在縮進方面有點困難,但我確信這一點可以得到改善。
- 一套有問題的文件的例子,我們可以在上方的測試進行提示,以確保其可靠性,并衡量改進的如何。
- 多個文件 / 代碼庫 —— 向 GPT 發(fā)送堆棧跟蹤中出現(xiàn)的所有文件
- 對大文件更好地處理,即我們是否應該只向 GPT 發(fā)送相關(guān)的類 / 函數(shù)?
- 擴展到 Python 以外的編程語言
從上面那個簡單的例子可以看出來,這個腳本還是未來可期的。
畢竟,總不能讓用別的語言工作的碼農(nóng)們看著智能 Debug Python 的「金剛狼」眼紅呀。
參考資料:
https://twitter.com/bio_bootloader/status/1636880208304431104
https://hackaday.com/2023/04/09/wolverine-gives-your-python-scripts-the-ability-to-self-heal/
本文來自微信公眾號:新智元 (ID:AI_era)
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。