軟件開發(fā)人員的福音:Aider—一款免費(fèi)命令行聊天機(jī)器人
在人工智能編碼工具的廣闊前景中,最近出現(xiàn)了一個新的參與者,Aider。這個由 GPT 驅(qū)動的命令行聊天機(jī)器人在開發(fā)者社區(qū)中引起了轟動,它以幫助直接在終端中使用可在任何運(yùn)行時目錄中調(diào)用的命令編寫和編輯代碼而聞名。
Aider 利用 GPT 模型進(jìn)行操作,了解開發(fā)人員使用所謂的“編碼助手”進(jìn)行編碼時的許多痛點,這使其與其他一些工具區(qū)分開來。Starcoder 和各種開源模型嚴(yán)重依賴廣泛的數(shù)據(jù)集來訓(xùn)練代碼生成等特定任務(wù),與此相反,Aider 采用了獨特的策略。Aider 的生成能力在于利用 GPT 模型的力量,使其更加專注于提供豐富的功能,從而簡化和豐富其輔助操作的功能。這帶來的體驗不僅是無縫的,而且是通過使其完全集成到開發(fā)環(huán)境中來滿足每個編碼員的特定需求的。
Aider 已被用來執(zhí)行各種編碼任務(wù),從創(chuàng)建簡單的“Hello World”Flask 應(yīng)用程序到使用 Pygame 設(shè)計基本的乒乓球游戲。通過這些示例,很明顯,Aider 在創(chuàng)建和編輯代碼方面提供了一定程度的多功能性和簡單性。
助手的主要特點
Aider 不僅僅是一個代碼生成器和編輯器,它還帶來了開發(fā)人員可能感興趣的幾個功能:
- 聊天界面:Aider 促進(jìn)與 GPT-3.5 或 GPT-4 的對話,為以協(xié)作方式處理代碼提供便利。
- 各種類型的請求:使用 Aider 的開發(fā)人員可以請求新功能、更改、改進(jìn)、故障排除,甚至錯誤修復(fù)。
- 直接編輯和提交:GPT 模型建議的編輯可以直接應(yīng)用于您的源文件,并且更改可以自動提交到您的本地 Git 存儲庫。
- 多個源文件:Aider 能夠同時處理多個源文件,適應(yīng)項目規(guī)模的更廣泛修改,而不僅僅是代碼片段。
- Git 存儲庫地圖:Aider 為 GPT 語言模型提供整個 Git 存儲庫的地圖,以便更好地理解和修改更大的代碼庫。
開始使用 Aider
對于有興趣將 Aider 集成到其工作流程中的開發(fā)人員來說,在將新工具添加到工具箱之前充分了解它始終是必要的步驟。與任何其他人工智能工具一樣,仔細(xì)測試和評估其功能、用例和整體實用性將有助于確保它非常適合您的需求。
1. 探索 Aider 的界面
Aider 的界面是通過命令行啟動的,使開發(fā)人員能夠討論他們的問題、要求和源代碼。這種在人工智能輔助下編輯代碼和實時響應(yīng)查詢的能力是如此本能,無論您是剛剛開始一個新項目還是深入開發(fā)過程,您都可以快速上手這個工具,而無需額外的學(xué)習(xí)和設(shè)置。
跟隨我來體驗一下 Aider 的界面吧。
安裝軟件包。
!pip install aider_chat
成功安裝后,命令“ aider”將在命令行或 shell 中可用。為了測試其創(chuàng)建代碼文件的能力,可以新建一個空文件夾并執(zhí)行命令aider:
!aider app.py
如果此文件夾中沒有 git 存儲庫,Aider 可以自動創(chuàng)建一個。然后,您應(yīng)該按照 Aider 的強(qiáng)制要求導(dǎo)出 OPENAI_API_KEY 變量以運(yùn)行其功能。
!export OPENAI_API_KEY="should be your api key"
現(xiàn)在,如果您aider app.py 再次運(yùn)行該命令,將加載模型,同時app.py將創(chuàng)建文件,您可以向該工具提示任何編碼請求。
我們可以嘗試提示一些東西,例如:
使用flask創(chuàng)建一個Web編輯器,帶有一個典型的菜單,包括功能項“保存”、“加載”。
此類任務(wù)大約需要 30 秒才能生成整個 Flask 項目,其中包含在預(yù)期文件夾結(jié)構(gòu)中創(chuàng)建的 Javascript 和 HTML 文件。
代碼生成期間的終端輸出
從下面的屏幕截圖來看,我請求的 Web 編輯器已成功創(chuàng)建并運(yùn)行,具有預(yù)期的功能。
2. 做出改變并要求改進(jìn)
Aider 的一項突出功能是它能夠請求對代碼進(jìn)行更改、改進(jìn)甚至錯誤修復(fù)。無論是需要更多測試用例、更新文檔還是進(jìn)行代碼重構(gòu),Aider 都可以通過 GPT 模型交互來幫助完成這些任務(wù)。
繼續(xù)上一章的例子,我將要求 Aider 改進(jìn)我的網(wǎng)頁編輯器,為其配備人工智能文本完成功能,該功能可以在用戶輸入“++”時生成自動文本。當(dāng)然,一些UI優(yōu)化也會包含在這個改進(jìn)中。
這是我的提示:
根據(jù)以下要求改進(jìn)文本編輯器: 1. 標(biāo)題和頁眉是“Aider 的 Yeyu's AI Editor” 2. 整個應(yīng)用程序是 ChatGPT-look CSS 樣式,深色模式,字體應(yīng)大兩倍 3. 當(dāng)用戶輸入“ ++”,將會顯示一個自動文本字符串,并且“++”將被刪除。自動文本字符串應(yīng)由 OPENAI API 使用文本完成功能的 gpt 模型生成。
從我的網(wǎng)絡(luò)瀏覽器上的下面的屏幕截圖來看,新改進(jìn)的網(wǎng)絡(luò)顯示其用戶界面滿足我的需求。text-davinci-002令人驚訝的是,通過將 OPENAI API 與源代碼中的“ ”模型集成,文本補(bǔ)全需求也得到了完美的實現(xiàn)。下面的屏幕截圖中的及其[AI text]后續(xù)文本是由我輸入“++”生成的。
3. 協(xié)調(diào)代碼更改和 GitHub 集成
同時處理多個源文件有時可能是一個挑戰(zhàn)。Aider 正面解決了這個問題,GPT 對單個鏈集或承諾文件夾中的所有文件進(jìn)行協(xié)調(diào)的代碼更改。此外,Aider 還可以向 GPT 提供整個 GitHub 存儲庫的地圖,使 AI 更容易理解和修改大型代碼庫。
例如,如果最后一步的結(jié)果不是你所期望的,你可以通過/undo在命令行中輕松輸入“ ”來快速將代碼恢復(fù)到最后一次 git 提交。其他 git 操作也可在其命令集中使用。