AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


LLM与Aider:命令行中的强大代码编辑组合!
发布日期:2024-06-23 06:18:35 浏览次数: 2094 来源:Halo咯咯


01
概述
Aider,一款专为开发者设计的命令行工具,它开启了与LLMs携手编程的新篇章。通过Aider,您可以直接在本地git仓库中编辑代码,实现与LLMs的无缝协作。这款工具的亮点在于,它不仅支持新项目的启动,还能对现有的大型代码库进行深入的编辑和修改。Aider的智能之处,更在于它能够与GPT-4o、Claude 3 Opus、GPT-3.5等先进的LLMs完美配合,几乎能够与市面上所有的LLMs建立连接。这不仅提升了编程的效率,更拓展了编程的可能性,让每一位开发者都能在Aider的辅助下,轻松驾驭复杂的代码世界。

02
快速开始

有关更多详细信息,请参阅安装说明(https://aider.chat/docs/install.html),但也可以参考以下代码快速开始:

$ pip install aider-chat
# To work with GPT-4o$ export OPENAI_API_KEY=your-key-goes-here$ aider
# To work with Claude 3 Opus:$ export ANTHROPIC_API_KEY=your-key-goes-here$ aider --opus
03
特性
  • 通过在命令行中运行 `aider

  • Aider能够使用大多数流行的编程语言来编写和编辑代码,包括Python、JavaScript、TypeScript、PHP、HTML和CSS等。

  • Aider与GPT-4o、Claude 3 Opus、GPT-3.5等配合良好,并且支持连接到几乎所有的LLM。

  • 用户可以请求对代码进行新功能添加、变更、改进或错误修复。同时,也可以要求新增测试用例、更新文档或进行代码重构。

  • Aider会将LLM建议的编辑直接应用到用户的源文件中。

  • Aider会自动将每个更改集提交到用户的本地git仓库,并附上描述性的提交信息。这些频繁的自动提交为用户提供了一个安全网,方便用户撤销更改或使用标准的git工作流程来管理更长的更改序列。

  • 用户可以同时使用多个源文件与Aider协作,这样Aider就可以在一个更改集/提交中跨所有文件进行协调的代码更改。

  • Aider可以为LLM提供整个git仓库的地图,这有助于它理解和修改大型代码库。

  • 用户也可以在与Aider聊天时手动使用编辑器编辑文件。Aider会注意到这些非同步编辑,并与文件的最新版本保持同步。这让用户可以在Aider聊天和编辑器之间来回切换,与LLM协作编码。

  • 如果用户使用的是具备视觉能力的OpenAI模型(例如GPT-4o、GPT-4 Turbo等),用户可以将图像文件添加到聊天中。

04
快捷键

Aider支持在聊天中使用以“/”开头的命令。以下是一些最有用的聊天内命令:

/add <file>:将匹配的文件添加到聊天会话中,包括图像文件。/drop <file>:从聊天会话中移除匹配的文件。/undo:如果上一个git提交是由Aider完成的,则撤销该提交。/diff:显示上一个Aider提交的diff。/run <command>:运行一个shell命令,并可选择将输出添加到聊天中。/voice:通过语音向Aider请求代码更改。/help:显示所有命令的帮助信息。

查看完整的命令文档(https://aider.chat/docs/commands.html)以获取更多信息。

05
技巧
  • 在进行代码编辑和变更时,首先需要考虑哪些文件需要被修改,并主动将这些文件添加到聊天会话中。虽然Aider具备帮助LLM自行识别所需编辑文件的能力,但最高效的方式还是由用户亲自将必要的文件加入聊天。
  • 面对大规模的代码变更,最佳的做法是将其分解为一系列经过深思熟虑的小步骤。用户需要规划好整体的方案和设计,就像指导初级开发人员一样,引导LLM逐步进行修改。可以先请求进行代码重构以做准备,然后再进行实际的代码变更。在这个过程中,用户应投入时间请求LLM对代码质量和结构进行改进。
  • 如果LLM的回应并不具有实际帮助,用户可以利用Control-C来安全地中断LLM的操作。即使中断了,LLM的部分回应仍然会保留在聊天中,这样用户在提供更多信息或指导时可以进行参考。
  • 用户还可以使用/run命令来执行测试、代码检查等操作,并将结果展示给LLM,以便它能够修复发现的问题。
  • 在输入多行聊天消息时,可以使用Meta-ENTER(在某些环境中是Esc+ENTER)快捷键。或者,用户也可以在消息的第一行单独输入{来开始多行消息,并在最后一行单独输入}来结束多行消息。
  • 当代码出现错误时,用户应该将错误输出通过/run命令或直接粘贴的方式与LLM共享,让LLM分析并修复这些bug。
  • 虽然LLM对许多标准工具和库有广泛的了解,但有时它可能对API和函数参数的细节把握不准确。这时,用户可以将相关的文档片段粘贴到聊天中,以帮助LLM解决这些问题。
  • 最后,需要指出的是,LLM只能查看用户明确“添加到聊天”中的文件内容。Aider会发送整个git仓库的地图,因此LLM可能会根据用户请求的需要,要求查看额外的文件。





53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询