把代碼貼進(jìn)去自動(dòng)找bug,這個(gè)debug神器自動(dòng)修復(fù)僅需幾秒,還有GPT-3在線解惑
在編寫程序時(shí),無論是對(duì)于初學(xué)者還是對(duì)于專業(yè)開發(fā)人員,都會(huì)花費(fèi)大量時(shí)間來調(diào)試或修復(fù)源代碼錯(cuò)誤,也就是 Debug。
這個(gè)過程繁瑣復(fù)雜,包括 Bug 復(fù)現(xiàn)和 Bug 定位等環(huán)節(jié)。如果有了自動(dòng)化的 Debug 程序,就可以顯著提高編程實(shí)踐的效率。
近日,有開發(fā)者打造了一款可以在幾秒鐘內(nèi)修復(fù)并解釋問題代碼的 Debug 神器 ——Adrenaline。
試用地址:https://useadrenaline.com/
該工具由 OpenAI Codex 提供支持,Codex 是 OpenAI 與 GitHub 聯(lián)合發(fā)布的 AI 代碼補(bǔ)全工具 GitHub Copilot 背后的技術(shù)支撐。
鑒于 Codex 的補(bǔ)全功能是基于 GPT-3 的,所以 Adrenaline 也多了一項(xiàng)特色 Debug 功能:解釋 Bug。
目前,Adrenaline 已經(jīng)開源,GitHub 存儲(chǔ)庫(kù)地址為:https ://github.com/shobrook/adrenaline
使用方法
請(qǐng)注意,使用 Adrenaline 的前提是,用戶必須從 OpenAI 控制臺(tái)提供自己的 OpenAI API 密鑰。這是為了防止 API 濫用。

要在本地運(yùn)行,需要克隆存儲(chǔ)庫(kù)并運(yùn)行以下命令:
目前,Adrenaline 支持 Python、JavaScript、Java、Ruby、PHP、C++、C、Shell 多種編程語言。

調(diào)試過程如下:Adrenaline 將代碼和錯(cuò)誤信息發(fā)送到 OpenAI 編輯與插入 API ( code-davinci-edit-001),該 API 會(huì)發(fā)回可能修復(fù)錯(cuò)誤的代碼編輯。建議的修復(fù)會(huì)像 diff 一樣在線顯示,帶有接受、拒絕或修改每個(gè)代碼更改的選項(xiàng)。

Adrenaline 不僅會(huì)為錯(cuò)誤提出修復(fù)建議,還會(huì)使用 GPT-3 ( text-davinci-003) 以通俗易懂的英語解釋錯(cuò)誤:
該錯(cuò)誤消息意味著無法計(jì)算 Granger 因果檢驗(yàn)統(tǒng)計(jì)量,因?yàn)?VAR(向量自回歸)模型對(duì)數(shù)據(jù)有完美的擬合。這意味著數(shù)據(jù)的可預(yù)測(cè)性太強(qiáng),VAR 模型無法找到變量之間的任何有意義的關(guān)系。要解決此問題,您可以嘗試使用不同的模型或調(diào)整 VAR 模型的參數(shù)。
如果代碼沒有引發(fā)異常,但可能仍然存在錯(cuò)誤,Adrenaline 還可以使用 OpenAI Codex 掃描代碼以查找問題并提出修復(fù)建議。
作者:希望能引入 ChatGPT 助手
現(xiàn)在,Adrenaline 只是一個(gè)簡(jiǎn)單的 Demo,僅僅展示了 AI 驅(qū)動(dòng) Debug 的可能性。但在作者的構(gòu)想中,未來的 Adrenaline 將會(huì)有更豐富的功能。
在項(xiàng)目主頁(yè),作者也介紹了有關(guān)如何改進(jìn) Adrenaline 的一些想法:
1. 客戶端智能(例如靜態(tài)代碼分析)可用于為 GPT-3 構(gòu)建更好的 prompt。
2. Adrenaline 不僅應(yīng)該解釋錯(cuò)誤,還應(yīng)該提供一個(gè) ChatGPT 風(fēng)格的助手來回答有關(guān)錯(cuò)誤的問題。
3. 創(chuàng)建一個(gè)執(zhí)行此操作的 VSCode 擴(kuò)展,將消除將代碼和錯(cuò)誤消息復(fù)制粘貼到站點(diǎn)中的問題。
當(dāng)然,ChatGPT 未必是完全正確的。有人問:如何處理來自 ChatGPT 的錯(cuò)誤?

作者表示:「Adrenaline 不會(huì)總是正確地糾正你的錯(cuò)誤,但它至少可以給你一個(gè)起點(diǎn)。」






























