在编程中更智能地使用人工智能
自 2022 年 ChatGPT 推出以来,开发人员分为两派:那些禁止在编码中使用人工智能的人和那些拥抱它的人。**** 许多程序员,尤其是经验丰富的人,不仅不使用人工智能生成的代码,还禁止团队这样做。他们反对使用人工智能进行编程的论点是可以理解的,“人工智能生成的代码不可靠。”
即使你不赞同这种反对人工智能代码的立场,你也一定遇到过在使用人工智能进行编程时面临的挑战、障碍或困难。关键在于找到使用人工智能正确方式的策略。
我们中的许多人正在使用一种简单但过时的人工智能策略,这种策略在两年前还不错。我们就像用厨房刀砍树一样。
我将从两个主要问题开始讨论关于开发人员使用人工智能的问题,并提出四种可靠的人工智能解决方案,无论你是什么类型的开发人员,这些解决方案都将使你与普通程序员区分开来,当涉及使用大语言模型时。
你可能正在错误使用人工智能的方式...
... 可以分为两种:
你没有使用正确的界面
当 ChatGPT 推出时,几个月来,与人工智能一起工作的主流方法是去网站上与浏览器中的 gpt-3.5
聊天。人工智能的场景很简单。
你想让 ChatGPT 写文档字符串并评论你的函数吗?
- 你会从你的集成开发环境中复制那段代码,
- 将其提供给 ChatGPT,同时写一个简单的提示,比如“添加注释”,
- 它会返回一段新代码,
- 然后,你会确保它没有使代码出错,
- 如果一切顺利,你会将新代码粘贴到你的集成开发环境中。
许多人仍在以相同的方式使用人工智能编码。 我看到学生、程序员,尤其是初学者仍在这样做。在过去的两年里,人工智能领域发生了变化,但我们使用人工智能的方法却没有调整。我们还没有跟上其全部潜力。
你对人工智能有不切实际的期望
使用人工智能的第二个陷阱是我们倾向于如何使用它。通常我们会要求大语言模型编写代码,我们测试它是否有效,如果不行,我们就会手动来回修复问题。如果幸运的话,当我们试图让大语言模型理解代码出了什么问题时,我们不会陷入幻觉的无限循环。
我们知道它不起作用,但由于没有更好的解决方案,我们会一直尝试。这样很容易让人沮丧。
说到这里,我将分享四种可以提高你在编程中使用人工智能的工具。
Cursor:以人工智能为先的集成开发环境
🔎 最适合:所有人
当我第一次被建议使用 Cursor 时,我并不真正知道它是什么。经过一些测试后,我才发现它是一个改变游戏规则的工具。Cursor 是一个以人工智能为先的集成开发环境,嗯... 它实际上是 VScode,但功能更强大。
Cursor 允许你使用聊天机器人 API 作为编写代码的助手。以下是我喜欢的一些功能,可以实际提升你的编程工作流程:
-
Ctrl K: 主要功能,允许你选择多行,并向聊天机器人提供提示。你可以使用这个功能让大语言模型从头开始为你编写完整的函数,添加文档,或修改代码的部分。它操作简洁,易于使用,并展示你修改的代码部分,让你看到修改前后的效果。
-
Tab: 一个强大的自动补全功能,帮助你编写一行或完整的函数。
-
Chat: 你可以与你的人工智能就整个代码库进行交谈。此外,你可以通过提供文档文件、图片或网页 URL(询问 Web 功能)来提供上下文。
Cursor 的好处在于它是带有额外人工智能功能的 VScode,这意味着你无需适应全新的集成开发环境。因此,如果你已经在使用 VScode,过渡将会轻松自如。
你可以提供你选择的模型的 API,如 GPT-4
、GPT-4o
、Claude 3.5 Sonnet
和内置的免费 cursor-small
。我看到许多人赞扬 Cursor + Sonnet 3.5 的组合。Claude 3.5 Sonnet 是一个非常聪明的编码模型,一旦你将其插入 Cursor 中,你将获得出色的结果。
与从 ChatGPT 网站来回复制粘贴代码相比,Cursor 是一个巨大的改进(老实说,到这一步,这看起来有些不专业)。
Micro Agent:代码 + 测试用例
🔎 最适合:可靠的代码生成
当涉及使用人工智能生成代码时,每个工具都是不可靠的。正如前面提到的,大语言模型往往会陷入痛苦的幻觉循环中。
Micro Agent 在承诺的内容上是诚实可靠的。Micro Agent 不是生成完整代码块供用户测试和审查,而是首先为你的提示创建测试用例。然后,它会迭代地编写通过生成的测试用例的代码。
其理念是,大语言模型更擅长生成问题的测试用例,而不是创建解决问题的代码。我没有找到太多支持这个想法的研究,但测试过的代码比未经测试的代码更可靠,这正是 Micro Agent 实现的目标。
SWE-agent:解决 Github 问题的人工智能
🔎 最适合:GitHub 爱好者
在实际工作中真正有效的工具中,SWE-agent 位列前茅,由普林斯顿语言与智能开发。SWE-agent 专门解决现实世界的 GitHub 存储库问题,然后提交拉取请求进行审查。
对于大型存储库、组织甚至小型项目,这是一个救命工具。它之所以运行良好,是因为开发人员创建了专门的工具,专注于审查代码库、识别问题,然后进行必要的更改。
SWE-agent 是一个在 GitHub 上已经获得 13.1K 星的开源项目。
AI Commits:git commit -m
🔎 最适合:那些经常提交代码的人
如果你在想出正确的提交消息方面遇到困难,你并不孤单。肯定有比添加日期或简单包括“小改动”更好的编写有意义提交消息的方法,对吧?
AI Commits 是这个问题的一个简单解决方案。它易于安装和使用。基于你的 git diff
,aicommits 返回一个由人工智能生成的提交消息。它使用的是 gpt-3.5,这是一个很好的选择,因为它便宜且任务不是很繁重。
我们无法摆脱人工智能的幻觉或其局限性。但我们可以采取措施来减轻它。与人工智能进行简单的手动交互,比如使用 ChatGPT 生成代码或注释,可能会令人沮丧且低效。通过选择正确的工具,你可以避免常见的陷阱,并对自己的实践更有信心。