使用Promptr和GPT自動處理您的代碼庫
譯文譯者 | 布加迪
審校 | 重樓
引言
隨著人工智能領(lǐng)域不斷發(fā)展進化,我們看到了GPT、ChatGPT和Bard等強大工具的興起。廣大程序員正在使用這些工具簡化其工作流程并優(yōu)化代碼庫。它使程序員能夠更專注于構(gòu)建程序的核心邏輯,少操心更普通的重復(fù)任務(wù)。然而,程序員遇到了這個問題:將代碼復(fù)制粘貼到這些模型中、獲取建議,然后更新代碼庫。對于經(jīng)常這么做的人來說,這個過程變得很無聊。
幸好,現(xiàn)在有一個辦法可以解決這個問題。Promptr這個基于命令行的開源工具讓程序員可以在不離開編輯器的情況下自動處理代碼庫。聽起來太酷了,是不是?如果您有興趣進一步了解這款工具的工作原理、它提供的特性以及如何設(shè)置,請耐心讀下去。
Promptr是什么?
Promptr是一個CLI工具,它使將GPT代碼建議運用到代碼庫的過程變得容易多了。您可以重構(gòu)代碼、實現(xiàn)通過測試的類、嘗試LLM、執(zhí)行調(diào)試和故障排除等,而這一切只需要一行代碼。官方文件聲稱:
“這對于GPT4來說最有效,因為它有更大的上下文窗口,但GPT3對于更小的范圍仍然有用。”
該工具接受由空格分隔的幾個參數(shù),這些參數(shù)指定了生成輸出的模式、模板、提示以及其他設(shè)置。
一般的語法:
Promptr -m <mode> [options] <file1> <file2> <file3>…
比如說:
- -m,--mode <mode>:指定要使用的模式(GPT-3或GPT-4)。默認模式為GPT-3。
- -d,--dry-run:這是一個選標志;向模型只發(fā)送提示,但更改在文件系統(tǒng)中并未體現(xiàn)。
- -i,--interactive:啟用交互模式,允許用戶傳遞各種輸入。
- -p,--prompt <prompt>:這是一個非交互模式,它可以是字符串或含有提示的URL/路徑。
同樣,您可以使用GitHub代碼存儲庫上提到的其他一些選項,具體取決于您的用例?,F(xiàn)在,您可能想知道這一切在底層是如何發(fā)生的。不妨探討一下。
Promptr是如何工作的?
您要做的第一件事是清理工作區(qū)域并提交任何更改。然后,您需要編寫明確指示的提示,就好像您是在向毫無經(jīng)驗的同事解釋任務(wù)一樣。之后,指定將與提示一起發(fā)送給GPT的上下文。請注意,提示是傳達給GPT的指令,而上下文指GPT執(zhí)行代碼庫操作所必須知道的文件。比如說:
promptr -p "Cleanup the code in this file" index.js
這里index.js指上下文,而“Cleanup the code in this file”是GPT的提示。Promptr將把它發(fā)送到GPT并等待響應(yīng),因為這可能需要一些時間。然后,GPT生成的響應(yīng)先由Promptr解析,然后將建議的更改運用到文件系統(tǒng)。就是這樣!一款簡單又非常有用的工具。
為自動處理代碼庫設(shè)置Promptr
以下是在本地計算機上設(shè)置Promptr的步驟:
需求
- Node.js v18或更高版本
- OpenAI API密鑰
安裝
打開終端或命令行窗口。根據(jù)您所使用的軟件包管理器,通過運行下面提到的其中一個命令來全局安裝Promptr:
Npm:
NPM install -g @ifnotnowwhen/promptr
Yarn:
yarn global add @ifnotnowwhen/promptr
您還可以通過將當(dāng)前版本的二進制文件復(fù)制到所在路徑來安裝Promptr,但目前僅針對macOS用戶提供這種支持。
安裝完成后,您可以通過執(zhí)行以下命令進行驗證:
promptr --version
設(shè)置OpenAI API密鑰
您將需要OpenAI API密鑰來使用promptr。如果沒有,可以注冊一個免費賬戶,獲得最高18美元的免費積分。
獲得密文密鑰后,必須設(shè)置一個環(huán)境變量‘OPENAI_API_KEY’。
若是Mac或Linux:
export OPENAI_API_KEY=<your secret key>
若是Windows:
點擊“Edit the system environment variables”(編輯系統(tǒng)環(huán)境變量),添加一個新變量‘OPENAI_API_KEY’,并將其值設(shè)置為您從OpenAI帳戶收到的密鑰。
結(jié)論
雖然GPT允許人們對代碼執(zhí)行操作,就像他們維護文本文件一樣,但這項技術(shù)仍處于早期階段,并且有一些缺點。比如說,如果GPT建議刪除文件,有可能丟失數(shù)據(jù),因此建議在使用它之前提交重要的工作。同樣,一些人表達了他們對于使用OpenAI API的每個token成本的擔(dān)憂。然而,我想知道我們在開發(fā)能自我修復(fù)的軟件這條路上能走多遠。如果您想嘗試一下,這里是GitHub官方代碼存儲庫Promptr的鏈接:https://github.com/ferrislucas/promptr。
原文標題:Automate Your Codebase with Promptr and GPT,作者:Kanwal Mehreen