在人工智能编码工具的广阔前景中,最近出现了一个新的参与者,Aider。这个由 GPT 驱动的命令行聊天机器人在开发者社区中引起了轰动,它以帮助直接在终端中使用可在任何运行时目录中调用的命令编写和编辑代码而闻名。
Aider 利用 GPT 模型进行操作,了解开发人员使用所谓的“编码助手”进行编码时的许多痛点,这使其与其他一些工具区分开来。Starcoder 和各种开源模型严重依赖广泛的数据集来训练代码生成等特定任务,与此相反,Aider 采用了独特的策略。Aider 的生成能力在于利用 GPT 模型的力量,使其更加专注于提供丰富的功能,从而简化和丰富其辅助操作的功能。这带来的体验不仅是无缝的,而且是通过使其完全集成到开发环境中来满足每个编码员的特定需求的。
Aider 已被用来执行各种编码任务,从创建简单的“Hello World”Flask 应用程序到使用 Pygame 设计基本的乒乓球游戏。通过这些示例,很明显,Aider 在创建和编辑代码方面提供了一定程度的多功能性和简单性。
助手的主要特点
Aider 不仅仅是一个代码生成器和编辑器,它还带来了开发人员可能感兴趣的几个功能:
- 聊天界面:Aider 促进与 GPT-3.5 或 GPT-4 的对话,为以协作方式处理代码提供便利。
- 各种类型的请求:使用 Aider 的开发人员可以请求新功能、更改、改进、故障排除,甚至错误修复。
- 直接编辑和提交:GPT 模型建议的编辑可以直接应用于您的源文件,并且更改可以自动提交到您的本地 Git 存储库。
- 多个源文件:Aider 能够同时处理多个源文件,适应项目规模的更广泛修改,而不仅仅是代码片段。
- Git 存储库地图:Aider 为 GPT 语言模型提供整个 Git 存储库的地图,以便更好地理解和修改更大的代码库。
开始使用 Aider
对于有兴趣将 Aider 集成到其工作流程中的开发人员来说,在将新工具添加到工具箱之前充分了解它始终是必要的步骤。与任何其他人工智能工具一样,仔细测试和评估其功能、用例和整体实用性将有助于确保它非常适合您的需求。
1. 探索 Aider 的界面
Aider 的界面是通过命令行启动的,使开发人员能够讨论他们的问题、要求和源代码。这种在人工智能辅助下编辑代码和实时响应查询的能力是如此本能,无论您是刚刚开始一个新项目还是深入开发过程,您都可以快速上手这个工具,而无需额外的学习和设置。
跟随我来体验一下 Aider 的界面吧。
安装软件包。
!pip install aider_chat
成功安装后,命令“ aider”将在命令行或 shell 中可用。为了测试其创建代码文件的能力,可以新建一个空文件夹并执行命令aider:
!aider app.py
如果此文件夹中没有 git 存储库,Aider 可以自动创建一个。然后,您应该按照 Aider 的强制要求导出 OPENAI_API_KEY 变量以运行其功能。
!export OPENAI_API_KEY="should be your api key"
现在,如果您aider app.py 再次运行该命令,将加载模型,同时app.py将创建文件,您可以向该工具提示任何编码请求。
我们可以尝试提示一些东西,例如:
使用flask创建一个Web编辑器,带有一个典型的菜单,包括功能项“保存”、“加载”。
此类任务大约需要 30 秒才能生成整个 Flask 项目,其中包含在预期文件夹结构中创建的 Javascript 和 HTML 文件。
代码生成期间的终端输出
从下面的屏幕截图来看,我请求的 Web 编辑器已成功创建并运行,具有预期的功能。
2. 做出改变并要求改进
Aider 的一项突出功能是它能够请求对代码进行更改、改进甚至错误修复。无论是需要更多测试用例、更新文档还是进行代码重构,Aider 都可以通过 GPT 模型交互来帮助完成这些任务。
继续上一章的例子,我将要求 Aider 改进我的网页编辑器,为其配备人工智能文本完成功能,该功能可以在用户输入“++”时生成自动文本。当然,一些UI优化也会包含在这个改进中。
这是我的提示:
根据以下要求改进文本编辑器: 1. 标题和页眉是“Aider 的 Yeyu's AI Editor” 2. 整个应用程序是 ChatGPT-look CSS 样式,深色模式,字体应大两倍 3. 当用户输入“ ++”,将会显示一个自动文本字符串,并且“++”将被删除。自动文本字符串应由 OPENAI API 使用文本完成功能的 gpt 模型生成。
从我的网络浏览器上的下面的屏幕截图来看,新改进的网络显示其用户界面满足我的需求。text-davinci-002令人惊讶的是,通过将 OPENAI API 与源代码中的“ ”模型集成,文本补全需求也得到了完美的实现。下面的屏幕截图中的及其[AI text]后续文本是由我输入“++”生成的。
3. 协调代码更改和 GitHub 集成
同时处理多个源文件有时可能是一个挑战。Aider 正面解决了这个问题,GPT 对单个链集或承诺文件夹中的所有文件进行协调的代码更改。此外,Aider 还可以向 GPT 提供整个 GitHub 存储库的地图,使 AI 更容易理解和修改大型代码库。
例如,如果最后一步的结果不是你所期望的,你可以通过/undo在命令行中轻松输入“ ”来快速将代码恢复到最后一次 git 提交。其他 git 操作也可在其命令集中使用。