本文介绍了基于AI技术的代码编辑器Cursor的新功能和改进,包括智能代码补全和生成功能,以及与OpenRouter平台的集成。文章还探讨了Cursor在数据分析方面的潜在应用,分析了Cursor如何帮助非编程人员更好地处理数据,如智能提示和与代码库的对话功能等。
Claude 3.5 Sonnet等大语言模型在上下文处理长度方面有所提升,但仍存在最大输出token数量限制。
其集成项目智能辅助级别的AI能力,可灵活处理数据安装各种软件包,并通过自然语言发布指令。在错误处理方面表现优越。
(注:本文为小报童精选文章。已订阅小报童或加入知识星球「玉树芝兰」用户
请勿重复付费
)
复归
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
轮番上阵,尝试评估它们在数据分析方面的能力,并进行了全面的对比。