译者 | 布加迪
审校 | 重楼
引言
随着人工智能领域不断发展进化,我们看到了GPT、ChatGPT和Bard等强大工具的兴起。广大程序员正在使用这些工具简化其工作流程并优化代码库。它使程序员能够更专注于构建程序的核心逻辑,少操心更普通的重复任务。然而,程序员遇到了这个问题:将代码复制粘贴到这些模型中、获取建议,然后更新代码库。对于经常这么做的人来说,这个过程变得很无聊。
幸好,现在有一个办法可以解决这个问题。Promptr这个基于命令行的开源工具让程序员可以在不离开编辑器的情况下自动处理代码库。听起来太酷了,是不是?如果您有兴趣进一步了解这款工具的工作原理、它提供的特性以及如何设置,请耐心读下去。
Promptr是什么?
Promptr是一个CLI工具,它使将GPT代码建议运用到代码库的过程变得容易多了。您可以重构代码、实现通过测试的类、尝试LLM、执行调试和故障排除等,而这一切只需要一行代码。官方文件声称:
“这对于GPT4来说最有效,因为它有更大的上下文窗口,但GPT3对于更小的范围仍然有用。”
该工具接受由空格分隔的几个参数,这些参数指定了生成输出的模式、模板、提示以及其他设置。
一般的语法:
Promptr -m <mode> [options] <file1> <file2> <file3>…
比如说:
- -m,--mode <mode>:指定要使用的模式(GPT-3或GPT-4)。默认模式为GPT-3。
- -d,--dry-run:这是一个选标志;向模型只发送提示,但更改在文件系统中并未体现。
- -i,--interactive:启用交互模式,允许用户传递各种输入。
- -p,--prompt <prompt>:这是一个非交互模式,它可以是字符串或含有提示的URL/路径。
同样,您可以使用GitHub代码存储库上提到的其他一些选项,具体取决于您的用例。现在,您可能想知道这一切在底层是如何发生的。不妨探讨一下。
Promptr是如何工作的?
您要做的第一件事是清理工作区域并提交任何更改。然后,您需要编写明确指示的提示,就好像您是在向毫无经验的同事解释任务一样。之后,指定将与提示一起发送给GPT的上下文。请注意,提示是传达给GPT的指令,而上下文指GPT执行代码库操作所必须知道的文件。比如说:
promptr -p "Cleanup the code in this file" index.js
这里index.js指上下文,而“Cleanup the code in this file”是GPT的提示。Promptr将把它发送到GPT并等待响应,因为这可能需要一些时间。然后,GPT生成的响应先由Promptr解析,然后将建议的更改运用到文件系统。就是这样!一款简单又非常有用的工具。
为自动处理代码库设置Promptr
以下是在本地计算机上设置Promptr的步骤:
需求
- Node.js v18或更高版本
- OpenAI API密钥
安装
打开终端或命令行窗口。根据您所使用的软件包管理器,通过运行下面提到的其中一个命令来全局安装Promptr:
Npm:
NPM install -g @ifnotnowwhen/promptr
Yarn:
yarn global add @ifnotnowwhen/promptr
您还可以通过将当前版本的二进制文件复制到所在路径来安装Promptr,但目前仅针对macOS用户提供这种支持。
安装完成后,您可以通过执行以下命令进行验证:
promptr --version
设置OpenAI API密钥
您将需要OpenAI API密钥来使用promptr。如果没有,可以注册一个免费账户,获得最高18美元的免费积分。
获得密文密钥后,必须设置一个环境变量‘OPENAI_API_KEY’。
若是Mac或Linux:
export OPENAI_API_KEY=<your secret key>
若是Windows:
点击“Edit the system environment variables”(编辑系统环境变量),添加一个新变量‘OPENAI_API_KEY’,并将其值设置为您从OpenAI帐户收到的密钥。
结论
虽然GPT允许人们对代码执行操作,就像他们维护文本文件一样,但这项技术仍处于早期阶段,并且有一些缺点。比如说,如果GPT建议删除文件,有可能丢失数据,因此建议在使用它之前提交重要的工作。同样,一些人表达了他们对于使用OpenAI API的每个token成本的担忧。然而,我想知道我们在开发能自我修复的软件这条路上能走多远。如果您想尝试一下,这里是GitHub官方代码存储库Promptr的链接:https://github.com/ferrislucas/promptr。
原文标题:Automate Your Codebase with Promptr and GPT,作者:Kanwal Mehreen