(注:本文为小报童精选文章。已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费)
复归
Cursor 是一款基于 AI 技术的代码编辑器,能够提供智能代码补全和生成功能。
其实这款应用,我一年多以前就给你介绍过。
当时 Cursor 还处于免费试用期,用户可以免费使用 GPT-4 的功能。对很多访问 GPT-4 有困难的用户来说,那是一个难得的机会。
只不过,不久我放弃了使用它。
因为当时 Cursor 有若干问题和限制。其中一个是上下文长度带来的。
GPT-4 最初版本的上下文窗口有限。在官方对话中,你的长代码输出都有可能被截断。但好在你可以对话让它继续。
可是 Cursor 里面生成代码就尴尬了,如果一次输出不完,你要求继续生成,它就会又从头开始输出。这次自然还输出不完整,于是你只好指挥 Cursor 再继续…… 这导致长代码输出时可能陷入永远无法完整生成的「死循环」。
原本 Cursor 的慷慨,就让很多用户奔走相告来「薅羊毛」。这下很多人还不断被动尝试补全输出,Cursor 的成本更要撑不住了。
于是 Cursor 做了两个事情,一个是开始在 GPT-4 调用中混合大量 ChatGPT 3.5 调用,这导致肉眼可见的性能下降;第二个事儿,是 Cursor 随即开始收费。
对于收费后的 Cursor,我的使用兴趣大大降低了,因为很快我就有了更好的替代选择 —— Github Copilot。它的功能介绍,我为你写在了这篇文章里。
简单来说,Github Copilot 是由 GitHub 和 OpenAI 合作开发的 AI 编程助手,能够根据上下文自动生成代码建议。特别是它对于教育工作者还是很慷慨的。我过去的一年多一直在用,但是几乎就没有为它花过钱。如果你是个学生,一定要记得申请 Github Education。
然而最近,Cursor 又重新引起了广泛关注。我注意到许多朋友都在推荐使用它。为什么呢?
改进
过去这一年里,大模型的能力突飞猛进。当时,Cursor 只能用 GPT-4 驱动,才能给用户满意的 AI 编程效果。但是现在,时代变了。
OpenRouter 是一个 AI 模型聚合平台,允许用户通过统一接口访问多种 AI 模型。咱们的教程文章中也多次为你做过介绍。这里我给你展示一下 OpenRouter 平台的周使用量统计图。
你会发现一个有趣的现象 —— Claude 3.5 Sonnet(不同款式)占了其中两个席位,这充分说明了 Claude 3.5 Sonnet 在用户中的受欢迎程度。
现在使用 Cursor 的时候,你除了 GPT-4 (包括 GPT-4 Turbo 与 GPT-4o 等后续模型),也可以使用 Claude 3.5 Sonnet。
主流大语言模型的上下文处理长度,也要比去年强很多。GPT-4o 可以支持 128K tokens,而 Claude 3.5 Sonnet 更是可以支持 200K tokens。
然而尴尬的问题在于,尽管上下文处理能力有所提升,但不少模型最大输出 token 数量却没有显著增加。GPT-4o 的最大输出 token 数量为 4,096,Claude 3.5 Sonnet 也是这个数。
这就意味着,去年大模型无法一次完整输出的代码,今年可能仍然如此。但是,Cursor 编辑器的一项智能功能解决了这个问题,让我们不再像「西西弗斯推动巨石上山」一样,无穷重复无法完成的代码生成任务。
在 Cursor 里面,你不需要一次性让 AI 完整输出所有代码。你提出问题后,Cursor 会针对现有代码给出修改建议。从下面这张图中我们可以看到,Cusor 确实挺懒的,只写了一个函数,居然还不写完整,中间它认为不需要修改的部分,直接用了 # ... 现有的代码 ... 来指代。
要在以往,你会很恼火,因为这意味着需要你自己去对照具体位置,把更新代码修补上去。这个活儿不但很麻烦,还经常出错。但是现在你完全不用担心,只需点击下图红色框出的这个按钮,神奇的事情就发生了。
右侧对话窗口会开始自动生成代码,然后你会看到,左侧编辑器窗口中会自动给出修改计划,用不同颜色对照新旧代码,一目了然。不仅如此,Cursor 还会非常谨慎地让你确认是否应用这些更改。
如果你不是资深程序员,我建议直接接受 Cursor 的修订即可。
你不用在 ChatGPT 或 Claude 的对话框与代码编辑器之间来回切换,不用每次都复制粘贴整段代码。至于那些因为代码太长,得分几次复制然后自己拼接起来的麻烦事儿,从此离你远去了。
这当然不是 Cursor 的全部能耐。咱们再说一个。
动态 Project
Claude 前一段时间更新,加入了 Projects 功能。这个功能允许用户上传多个文档作为上下文,大大增强了 Claude 的理解能力和回答准确性。
只不过,这个功能也有一定的限制 —— 总长度不能超过 200K tokens,这大约相当于 15 万个英文单词或 40-50 页的文档。
另外,上传的上下文相对固化,后续进行文件的增删更新操作,都不够方便。
Cursor 的创新之处在于它直接将一个项目的整个文件夹动态地作为 project,通过 RAG(检索增强生成)技术进行处理。这样的设计带来了极大的灵活性。
在对话界面中,只需点击 "chat with codebase" 按钮即可。
例如,我可以要求 Cursor:“给我讲一下 config 目录下 YAML 文件的读取和处理流程。” 收到这个请求后,Cursor 会自动在项目中搜索相关的文件,并基于这些文件提供详细的解答。
你会看到,除了 config 下的 YAML 文件,Cusor 还查询了不少 markdown 文件。是不是它搜索定位不准呢?
当然不是。这是因为列出的 markdown 文件里面包含了对应节点的系统级提示词,恰恰是 YAML 定义的工作流中节点的处理方法详细描述。
这一细节,说明了 Cursor 「与 codebase 对话」功能的靠谱。
然后,Cursor 会给出全面而详细的结果,解释 YAML 文件的读取和处理流程。
Cursor 的回答可能会很长,上图中的内容并没有完全显示出来。咱们接着看:
通过对代码库整体解读,Cursor 给出了代码执行的详细完整逻辑。这是单独上传一两个文件做不到的。更何况,当你对这些配置文件或者提示词文件进行调整后,下面的对话自动更新上下文。岂不妙哉?
刚需
Cursor 越来越贴心好用的智能升级,让它在程序开发者的口碑传播力度愈发强劲。
但你可能会疑惑 —— 我又不搞程序开发,它一个 AI 编辑器再厉害,跟我有啥关系呢?
当然有。因为一款工具的设计用途,和它如何真正被使用,那可是两回事儿。就如同 GPU 当初被设计出来是为了给游戏加速的,但是后来多少人用它训练 AI,又有多少人用它「挖矿」呢?
同理,我立即就想到,这玩意儿用来做数据分析,很合适啊。
谈到数据分析,我们之前已经介绍过不少相关工具。除了 ChatGPT 的 Code Interpreter 模式 以外,我们还介绍过 智谱清言的数据分析模式,以及 Open Interpreter。我们还把不同的大语言模型,例如 Claude 3 Haiku、Llama 3 70B,甚至是 Llama 3 8B 轮番上阵,尝试评估它们在数据分析方面的能力,并进行了全面的对比。
我们为什么这么关注数据分析功能呢?因为对很多小伙伴来说,这是一个迫切的需求。要想掌握数据分析技能,你可能需要构建和补充一个完整的技能栈。在 2016 年,我曾经鼓励自己的研究生去学习一门 MOOC 课程,来补充自己在数据分析方面的技能缺失。
学生们当时学习的过程,比较痛苦。主要原因并不是理解不了数据分析的原理,而是编程能力不过关,导致只要一遇到代码报错,就会感到焦虑和挫败。而 AI 在这方面恰恰表现得很强,可以补足学生们的短板,为学习数据分析提供了新的可能性。
我们刚才提到之前已经介绍过的多款数据分析工具,但它们都存在与生俱来的显著问题。
Code Interpreter 和智谱清言非常好使,上手容易,颇受学生们青睐,但代码运行属于受控环境。它们都使用了云虚拟机,虚拟机上的软件是统一默认预装的,这就不方便安装新的分析工具和库。至于深度学习,那更是想都不要想。
Open Interpreter 非常灵活,你本地机器的能力,就是它的能力。你本地有足够强的 GPU 和显存,那么它跑大模型的微调甚至训练都是可以的。如果发现软件包缺失,它也能够自行安装。但是,问题也同样明显 —— 你不但需要做好配置,还得熟悉这种命令行下的对话模式。这事儿说起来容易,但是对很多小伙伴来说,就是一道非常难以逾越的门槛。不少人最终浅尝辄止。
而想想看,Cursor 一个代码编辑器集成了项目智能辅助级别的 AI 能力,那么你就可以把想要分析的文件或者文件夹直接提供给它,然后让 Cursor 自动编程来处理和分析这些数据。
这样一来,你不必受限于大语言模型应用提供的虚拟机,可以灵活安装各种软件包。同时又只需要在熟悉的编辑器界面中用自然语言发布指令。对于很多小伙伴来说,这样的交互方式更容易接受。
当你遇到执行的错误时,Cursor 的优势就太明显了。结合各种上下文,尤其是错误日志,它可以立即锁定问题,然后帮你快速更新代码。
接下来,我们就用几个真实的例子来看看 Cursor 如何帮助我们完成数据分析任务。
版权归原作者 nkwshuyi 所有, 如有侵权,请联系我们删除。