1 摘要
Aider 可让您将程序与 LLM 配对,以便在本地 git 存储库中编辑代码。开始新项目或使用现有的 git 存储库。Aider 最适合与 GPT-4o 和 Claude 3.5 Sonnet 配合使用,并且可以 连接到几乎任何 LLM。
2 安装
2.1 安装 git
确保已安装 git。以下是 在各种环境中安装 git 的说明。
2.2 获取 API 密钥
要使用 GPT-4o 或 GPT-3.5 等 OpenAI 模型,您需要付费的 OpenAI API 密钥。请注意,这与成为“ChatGPT Plus”订阅者不同。
要使用 Anthropic 的模型(例如 Claude 3.5 Sonnet),您需要付费的 Anthropic API 密钥。
建议 使用 Python 虚拟环境。或者,您可以使用 pipx 为整个系统安装一次 aider 。
2.3 Mac/Linux 安装
# Install aider
python -m pip install -U --upgrade-strategy only-if-needed aider-chat
# To work with GPT-4o:
$ aider --4o --openai-api-key sk-xxx...
# To work with Claude 3.5 Sonnet:
$ aider --sonnet --anthropic-api-key sk-xxx...
2.4 Windows 安装
# Install aider
python -m pip install -U --upgrade-strategy only-if-needed aider-chat
# To work with GPT-4o:
$ aider --4o --openai-api-key sk-xxx...
# To work with Claude 3.5 Sonnet:
$ aider --sonnet --anthropic-api-key sk-xxx...
在某些环境下,你可能会收到“aider 命令未找到”错误。你可以尝试python -m aider
或 查看此处了解更多信息。
3 功能特征
- 使用您想要编辑的文件运行 aider:
aider <file1> <file2> ...
- 要求更改:
- 添加新功能或测试用例。
- 描述一个错误。
- 粘贴错误消息或 GitHub 问题 URL。
- 重构代码。
- 更新文档。
- 代码自动编辑:用户可以通过自然语言描述需求,Aider会根据指示自动修改代码。
- 智能代码补全:在你编写代码时,Aider能够提供实时的建议和补全,提升编码效率。
- Aider 将编辑您的文件以完成您的请求。
- Aider自动使用合理的提交消息来提交更改。
- Aider 支持大多数流行语言:python、javascript、typescript、php、html、css 等……
- Aider 与 GPT-4o 和 Claude 3.5 Sonnet 配合使用效果最佳,并且可以连接到几乎任何 LLM。
- 对于复杂的请求,Aider 可以一次编辑多个文件。
- Aider 使用你的整个 git repo 的映射,这有助于它在更大的代码库中很好地运行。
- 在与 aider 聊天的同时在编辑器中编辑文件,它将始终使用最新版本。将程序与 AI 配对。
- 在聊天中添加图像(GPT-4o、Claude 3.5 Sonnet 等)。
- 将 URL 添加到聊天中,助手就会阅读其内容。
- 用你的声音编码。
- 支持多种编程语言:无论是Python、JavaScript还是HTML,Aider都能轻松应对。
- 自动Git提交:Aider在完成修改后,会自动生成合理的提交信息,保存你的更改。
- 多文件处理:对于复杂的请求,Aider可以同时处理多个文件,适应大型项目的需求。
- 与AI模型连接:支持多种AI服务,用户可以根据需要选择最适合的模型。
4 简单用法
使用您要编辑的源代码文件运行aider
。这些文件将“添加到聊天会话”,以便 aider 可以查看其内容并为您编辑。它们可以是现有文件,也可以是您希望 aider 为您创建的文件的名称。
aider <file1> <file2> ...
在助手>
提示下,要求更改代码,助手将编辑这些文件以满足您的要求。
$ aider factorial.py
Aider v0.37.1-dev
Models: gpt-4o with diff edit format, weak model gpt-3.5-turbo
Git repo: .git with 258 files
Repo-map: using 1024 tokens
Use /help to see in-chat commands, run with --help to see cmd line args
───────────────────────────────────────────────────────────────────────
> Make a program that asks for a number and prints its factorial
...
用于/help <question>
寻求 有关使用 aider 、自定义设置、故障排除、使用 LLM 等方面的帮助。
4.1 添加文件
要编辑文件,您需要“将它们添加到聊天中”。通过在 aider 命令行上命名它们来执行此操作。或者,您可以使用聊天 /add
命令来添加文件。
仅添加需要为您的任务编辑的文件。不要添加一堆额外的文件。如果您添加太多文件,LLM 可能会不堪重负和困惑(并且会花费更多令牌)。Aider 会自动从相关文件中提取内容,以便它能够 理解您的其余代码库。
您可以在不添加任何文件的情况下使用 aider,它会根据您的请求尝试找出需要编辑的文件。
如果您考虑需要编辑哪些文件,您将获得最佳结果。只需将这些文件添加到聊天中。Aider 将包含您其余存储库的相关上下文。
4.2 LLM
Aider 与 GPT-4o 和 Claude 3.5 Sonnet 配合使用效果最佳,并且可以 连接到几乎任何 LLM。
# GPT-4o
$ aider --4o
# Claude 3.5 Sonnet
$ aider --sonnet
或者您可以跑去aider --model XXX
用另一个模型启动助手。在聊天期间,您可以使用聊天 /model
命令切换模型。
4.3 改动代码
要求 Aider 更改您的代码。它将向您显示为完成您的请求而进行的更改的一些差异。Aider 将 git 提交其所有更改,因此它们易于跟踪和撤消。
您可以随时使用/undo
命令撤消您不喜欢的 AI 更改。
5 教程视频
以下是一些由 Aider 用户制作的教程视频:
- 使用建筑师/编辑器模式– AICodeKing
- 使用 aider 逐步构建一个非平凡的应用程序– IndyDevDan
- 移动设备上的 Aider 和 Replit 可通过语音进行操作– Paul Couvert
- Aider 是 OG AI 编码之王(美人鱼图 AI 代理) – IndyDevDan
- 在 replit 中安装 aider 并制作 Trello 克隆– Paul Couvert
- 人工智能辅助编码的分步开发环境设置– 用人工智能编码未来
- 使用 Claude 3.5 Sonnet 生成全栈应用程序– AICodeKing
- 从头到尾用人工智能创建游戏– AICodeKing
- Claude 3.5 和 Aider:使用 AI 助手构建 AI 应用程序– 用 AI 编码未来
- 无需编写任何代码即可开发全栈应用程序– WorldofAI
- 使用 AI 生成游戏 (带本地法学硕士) – AICodeKing
- 援助技巧和示例使用– techfren
- Aider 和 Claude 3.5:无需编写任何代码即可开发全栈应用程序! – 用人工智能编码未来
- 使用 Aider – AICodeKing只需一个提示即可生成应用程序
- Aider:您期待已久的生产级 AI 编码助手– 与 JV 一起学习编码
- 圣杯:可从现有代码库构建的免费编码助手– Matthew Berman
- Aider:这个 AI 程序员可以创建和更新 Git 代码库– Ian Wootten
感谢所有这些伟大的创造者花时间分享他们使用 aider 编码的经验!
6 高级用法
与 aider 讨论您的代码!使用您的语音请求新功能、测试用例或错误修复,并让 aider 完成编辑本地 git 存储库中的文件的工作。与 aider 的所有功能一样,您可以将语音转代码与现有存储库一起使用或启动新项目。
语音支持与 Aider 的 AI 配对编程聊天界面相得益彰。现在,当您要求 Aider 编辑代码时,您可以流畅地在语音和文本聊天之间切换。
6.1 如何使用语音转代码
使用聊天/voice
命令开始录音,ENTER
说完话后按。您的语音编码指令将被转录,就像您已将它们输入助手聊天会话中一样。
有关如何启用该命令的信息,请参阅安装说明/voice
。
Aider v0.11.2-dev
在聊天中添加了 app.py。
> /voice
录音,完成后按 ENTER...8.5秒
“添加使用数学阶乘的阶乘端点”
>添加使用 math.factorial 的阶乘端点。
要向 Flask 应用程序添加阶乘端点,我们需要修改该app.py文件。
步骤如下:
/fact/<int:x>
向 Flask 应用程序添加新路由。- 在此路线的函数中,调用
math.factorial(x)
并以字符串形式返回结果。
以下是这些更改的编辑块:
app.py
<<<<<<< HEAD
if __name__ == '__main__':
print("Starting...")
app.run()
=======
@app.route('/fact/<int:x>')
def factorial(x):
result = math.factorial(x)
return str(result)
if __name__ == '__main__':
print("Starting...")
app.run()
>>>>>>> updated
将编辑应用于 app.py
提交 ef9e3e7 aider:添加一个使用 math.factorial 的阶乘端点。