使用GPT 自动化您的代码库
您是否希望使用 GPT 简化代码操作,但厌倦了复制粘贴过程?好吧,这是提示器形式的解决方案。一个开源工具,用于自动化您的代码库。
推荐:使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景
介绍
随着人工智能领域的发展和演变,我们已经看到了GPT,ChatGPT,Bard等强大工具的兴起。程序员正在使用这些工具来简化他们的工作流程并优化他们的代码库。它使他们能够更多地专注于构建程序的核心逻辑,而不是更平凡和重复的任务。但是,程序员遇到了将代码复制粘贴到这些模型中、获取建议然后更新其代码库的问题。对于经常这样做的人来说,这个过程变得很烦人。
幸运的是,现在有解决这个问题的方法。让我向您介绍 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, --交互式: 它启用交互模式并允许用户传递各种输入。
- -p, --prompt <prompt>: 它是一种非交互模式,它可以是字符串或包含提示的 URL/路径
同样,您可以根据您的用例使用其 GitHub 存储库中提到的其他一些选项。现在,您可能想知道这一切是如何在引擎盖下发生的。所以,让我们来探讨一下。
提示器如何工作?
图片来源:作者
您要做的第一件事是清洁您的工作区域并提交任何更改。然后,您需要编写一个带有明确说明的提示,就好像您正在向没有经验的同事解释任务一样。之后,指定您将随提示一起发送给 GPT 的上下文。请注意,提示是您对 GPT 的指示,而上下文是指 GPT 必须知道才能执行代码库操作的文件。例如
promptr -p "Cleanup the code in this file" index.js
这里的 index.js 指的是上下文,而“清理此文件中的代码”是您对 GPT 的提示。提示器会将其发送到 GPT 并等待响应,因为这可能需要一些时间。然后,GPT 生成的响应首先由提示器解析,然后将建议的更改应用于您的文件系统。就是这样!简单但非常有用的工具。
设置提示器以自动执行代码库
以下是在本地计算机上设置提示器的步骤:
要求
- 节点.js v18 或更高版本
- OpenAI Api Key
安装
打开终端或命令行窗口。通过运行以下任一命令(具体取决于您使用的包管理器)全局安装提示器:
npm:
npm install -g @ifnotnowwhen/promptr
Yarn:
yarn global add @ifnotnowwhen/promptr
您还可以通过将当前版本的二进制文件复制到您的路径来安装 Promptr,但目前仅 macOS 用户支持它。
安装完成后,您可以通过执行以下命令进行验证
promptr --version
设置 OpenAI API 密钥
您需要一个 OpenAI API 密钥才能使用提示器。如果您没有,您可以注册一个免费帐户以获得高达 18 美元的免费积分。
获得密钥后,您必须设置一个环境变量“OPENAI_API_KEY”。
对于 Mac 或 Linux:
export OPENAI_API_KEY=<your secret key>
对于视窗:
单击“编辑系统环境变量”以添加新变量“OPENAI_API_KEY”,并将其值设置为从 OpenAI 帐户收到的密钥。
结论
虽然它允许人们像维护文本文件一样对他们的代码执行操作,但这项技术仍处于早期阶段,并且有一些缺点。例如,如果 GPT 建议删除文件,则可能会丢失数据,因此建议在使用之前致力于您的重要工作。同样,有些人对使用OpenAI API的每代币成本表示担忧。尽管如此,我想知道当我们能够开发可以自我修复的软件时,还有多远。如果您想尝试一下,这里是官方 GitHub 存储库的链接 - 提示器。
由3D建模学习工作室 整理翻译,转载请注明出处!