一個(gè)令人贊不絕口的代碼 Debug 神器!
“
閱讀本文大概需要 5 分鐘。
在編寫程序時(shí),無(wú)論是對(duì)于初學(xué)者還是對(duì)于專業(yè)開(kāi)發(fā)人員,都會(huì)花費(fèi)大量時(shí)間來(lái)調(diào)試或修復(fù)源代碼錯(cuò)誤,也就是 Debug。
這個(gè)過(guò)程繁瑣復(fù)雜,包括 Bug 復(fù)現(xiàn)和 Bug 定位等環(huán)節(jié)。如果有了自動(dòng)化的 Debug 程序,就可以顯著提高編程實(shí)踐的效率。
近日,有開(kāi)發(fā)者打造了一款可以在幾秒鐘內(nèi)修復(fù)并解釋問(wèn)題代碼的 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)開(kāi)源。
GitHub 地址: https://github.com/shobrook/adrenaline
使用方法
請(qǐng)注意,使用 Adrenaline 的前提是,用戶必須從 OpenAI 控制臺(tái)提供自己的 OpenAI API 密鑰。這是為了防止 API 濫用。
要在本地運(yùn)行,需要克隆存儲(chǔ)庫(kù)并運(yùn)行以下命令:
npm install
npm run start-local
目前,Adrenaline 支持 Python、JavaScript、Java、Ruby、PHP、C++、C、Shell 多種編程語(yǔ)言。
調(diào)試過(guò)程如下: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) 以通俗易懂的英語(yǔ)解釋錯(cuò)誤:
該錯(cuò)誤消息意味著無(wú)法計(jì)算 Granger 因果檢驗(yàn)統(tǒng)計(jì)量,因?yàn)?VAR(向量自回歸)模型對(duì)數(shù)據(jù)有完美的擬合。
這意味著,數(shù)據(jù)的可預(yù)測(cè)性太強(qiáng),VAR 模型無(wú)法找到變量之間的任何有意義的關(guān)系。要解決此問(wèn)題,您可以嘗試使用不同的模型或調(diào)整 VAR 模型的參數(shù)。
如果代碼沒(méi)有引發(fā)異常,但可能仍然存在錯(cuò)誤,Adrenaline 還可以使用 OpenAI Codex 掃描代碼以查找問(wèn)題并提出修復(fù)建議。
作者:希望能引入 ChatGPT 助手
現(xiàn)在,Adrenaline 只是一個(gè)簡(jiǎn)單的 Demo,僅僅展示了 AI 驅(qū)動(dòng) Debug 的可能性。但在作者的構(gòu)想中,未來(lái)的 Adrenaline 將會(huì)有更豐富的功能。
在項(xiàng)目主頁(yè),作者也介紹了有關(guān)如何改進(jìn) Adrenaline 的一些想法:
-
客戶端智能(例如靜態(tài)代碼分析)可用于為 GPT-3 構(gòu)建更好的 prompt。
-
Adrenaline 不僅應(yīng)該解釋錯(cuò)誤,還應(yīng)該提供一個(gè) ChatGPT 風(fēng)格的助手來(lái)回答有關(guān)錯(cuò)誤的問(wèn)題。
-
創(chuàng)建一個(gè)執(zhí)行此操作的 VSCode 擴(kuò)展,將消除將代碼和錯(cuò)誤消息復(fù)制粘貼到站點(diǎn)中的問(wèn)題。
當(dāng)然,ChatGPT 未必是完全正確的。有人問(wèn):如何處理來(lái)自 ChatGPT 的錯(cuò)誤?
作者表示:「Adrenaline 不會(huì)總是正確地糾正你的錯(cuò)誤,但它至少可以給你一個(gè)起點(diǎn)。」
參考鏈接:https://www.reddit.com/r/MachineLearning/comments/106q6m9/p_i_built_adrenaline_a_debugger_that_fixes_errors/
文中所提到的所有開(kāi)源項(xiàng)目與工具,已收錄至 GitHubDaily 的開(kāi)源項(xiàng)目列表中。該列表包含了 GitHub 上諸多高質(zhì)量、有趣實(shí)用的開(kāi)源技術(shù)教程、開(kāi)發(fā)者工具、編程網(wǎng)站等內(nèi)容。從 2015 年至今,累積分享 3500+ 個(gè)開(kāi)源項(xiàng)目,有需要的,可訪問(wèn)下方 GitHub 地址或點(diǎn)擊文末「閱讀原文」自取:GitHub:https://github.com/GitHubDaily/GitHubDaily
好了,今天的分享到此結(jié)束,感謝大家抽空閱讀,我們下期再見(jiàn),Respect!

End
崔慶才的新書《Python3網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)(第二版)》已經(jīng)正式上市了!書中詳細(xì)介紹了零基礎(chǔ)用 Python 開(kāi)發(fā)爬蟲(chóng)的各方面知識(shí),同時(shí)相比第一版新增了 JavaScript 逆向、Android 逆向、異步爬蟲(chóng)、深度學(xué)習(xí)、Kubernetes 相關(guān)內(nèi)容,?同時(shí)本書已經(jīng)獲得 Python 之父 Guido 的推薦,目前本書正在七折促銷中!
內(nèi)容介紹:《Python3網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)(第二版)》內(nèi)容介紹

掃碼購(gòu)買
