大模型的第一个杀手级应用场景出来了

news2024/11/25 0:34:32

大家终于都意识到大模型首先改变的是软件行业自己,而软件的根基是代码生成。代码生成第一波就是AI辅助开发,这个会是大模型第一个杀手级应用。大家苦苦逼问自己的大模型杀手级应用,为什么会是辅助编程,这里说下什么:

  1.  必须吃狗粮,颠覆性技术连自己的领域都颠覆不了,那还叫啥颠覆性技术。

  2. 允许出错。AI辅助开发具有良好的容错率,允许出错,这个相当重要,也是当前大模型在其他领域目前难以落地的根本原因。

  3. 市场规模大,整个软件市场是千亿到万亿规模的。

  4. 初始客群接受度高。AI辅助编程的第一波客群程序员,技术人员群体规模大,对新技术敏感,接受度高,github copilot 这种处于非常初级的产品就获得百万付费用户(月流水至少两亿)。 

这也是为什么我一直致力于代码生成的工作,并且愿景比 Cursor这类大的多,不只是个IDE,这个我们后面再说。

AI辅助编程流派

先说下当前AI辅助编程的流派:

1. 命令行交互式,代表为 auto-coder.chat,aider,mentat,plandex 等。

2. IDE 集成式,代表为 cursor,codium 等,此外还有插件子派,比如 auto-coder.chat, claude-dev 等。

3. Web IDE 为主,代表为 devin, phind(这个比较简陋),以及在 git 内置的一些编程辅助工具。

这里没有提及github copilot 等类似产品,是因为我认为他们不属于AI编程...hmmm... 我只能说是更智能的代码补全工具。

目前真正能落地是两个,一个是命令行交互,一个是IDE 集成。 今天会分别以 auto-coder.chat 和 cursor 来作为两派的代表来对比。

IDE派的优点:

  1. 对于程序员而言,大家熟悉度更高,门槛更低。

  2. 可以在 IDE 交互上做到极致的交互体验,所见即所得。

  3. 开箱即用,下载IDE,打开即可使用。

  4. IDE 提供了一些交互button,比如运行项目,debug项目,这个是其他工具很难替代的。

IDE派的缺点:

  1. Cursor为了追求极致的体验,没有用插件的方式,而是直接二次开发,导致IDE绑定。

  2. 适合人机交互,但难以自动化。

  3. 交互界面在复杂场景下,容易繁琐,想设计好不容易,用户也有一定的学习成本。大家用compser 这种就会发现这个问题。

另外,必须提的一点:大家觉得IDE 交互简单其实是因为大家已经前置学习了 IDE(从你接触编程开始的第一件事就是学习IDE)。IDE 就是图片界的Photoshop 是一款专业软件,实际门槛并不低(但因为前面的原因感觉门槛低)。

命令行流派的优点:

  1.  兼容所有IDE(所有IDE都有内置terminal),甚至不需要IDE

  2.  对于纯萌新而言,实际入门门槛比IDE低(参考前面我特别提醒的点)

  3.  交互一旦学习了以后,效率是远高于IDE的(这点和历史一样)

比如,当你看到一个github 项目,三步即可添加新功能特性:

  1.  clone 项目到本地

  2. 进入目录运行 auto-coder.chat

  3. /coding <描述你的需求>

会比 IDE 更轻松。

命令行流派的缺点:

  1. 需要用户适当记住一些指令,比如 /coding /chat 等。但是随着大模型越来越强,用户可能只需要一两个指令即可。

  2. 很多人对命令行略显恐惧。但实际上现在的命令行非常强大,不输编辑器(唯一的缺点是对鼠标支持不好)

  3. 对于有代码阅读需求的,或者需要手工做修改,或者要做代码debug,那么还是需要 IDE 配合。

流派融合

看完了上面的比对,你肯定在纠结,那到底应该用哪个呢?亦或者你心里早就有谱了,我就是用IDE,或者我就是用 Terminal。Naive! 成年人需要做选择题么?成年人应该是:我都要!

所以我今天特意发了这么一个文案:

免费版 cursor + auto-coder.chat = cursor pro
付费版 cursor + auto-coder.chat = cursor pro NEXT

其他你喜欢的IDE工具:

Vscode + github copilot/comate/灵码  + auto-coder.chat = cursor pro
Idea + github copilot/comate/灵码 auto-coder.chat = cursor pro
Vim + auto-coder.chat = cursor pro

然后我发现也有不少用户已经这么组合来用了,果然,"你再快能快的过用户"?

为什么要这么组合使用呢?因为 1+1 大于2么,各自弥补对方的缺点,提升自己优点。我推荐 cursor + auto-coder.chat。

cursor 可以作为 GitHub copilot 的更好的替代品。 而auto-coder.chat 则有更好的多文件编辑能力,算是更好的 composer。 

Cursor 深度剖析,为什么是极致版的 github copilot

重度使用了 cursor 两天。他的迭代路径也很清晰,从早期的copilot (tab tab) 到支持可以参考多个文件针对 “单文件自动修改和合并”(apply)。其中第二个能力是当前 github copilot 没有的,github copilot chat框里的代码没有办法直接合并到文件里,你只能拷贝黏贴。cursor 的单文件修改交互体验做到很极致,那个酷炫的apply 效果很容易勾动程序员的小心脏,但做的再好,也只是一个编辑器辅助功能,程序员很爽,但天花板也很明显,效率提升有限,毕竟还是程序员在手写代码(tab tab) 或者只能针对一个文件做修改(apply)。尽管如此,体验还是吊打 GitHub copilot的。

加上sonnet 3.5 理解能力很强,而且context相对来说比较简单,基本生成的效果相当好。

很多同学看到这,就觉得,很好了呀,为啥不够?代码都能自动写,自动合并了,还有啥可以提升的呀?

注意,实际场景是,当你想添加一个功能需求的时候,你可能需要修改一组相关联的文件,修改多个文件后,你还需要确保他们可以正常的协同工作。这才是最有难度和消耗时间的地方。

程序员会经常说: 

1. 哦,我漏了某个地方忘了改了,导致系统错误,

2. 亦或者说,哦 我改了一个地方,结果影响到另外一个地方了。

这是最常见的情况,也是最难,效率最低,也是bug的温床

所以未来cursor的希望,就是他们新推出的composer,composer默认是关闭的,需要你去单独开启(新版本据说已经开启了),估计很多人就没体验到。这个功能让cursor迈向了支持多文件新建,修改和合并。这个是从功能迈向“需求”的关键,可以针对现有代码实现一个完整的功能需求。整体效果也不错。

cusor 里composer 的界面是这样的:

72a4b283afb2a4478eb61e5ebeb1fe4d.png

和原有的功能是相当割裂的,新启动了一套窗口。我实测下来,他还是比较适合新增一些文件,对于比较复杂的文件修改,还是不太行,合并不进去。我估计是因为他们采用的是 wholefile + diff 算法来做的合并,但目前看效果并不理想。这个我会在后面的案例里详细说明。

这个发展历程和我之前想的差不多,之前我说 cursor走了很多“弯路”。auto-coder.chat 从项目之初,就是要走需求驱动,根据需求自动实现多文件新增修改,相当于第一版我们就做了个composer。我们在 Opus 时代就已经发现可以很好的支撑了多文件修改能力了。

总之 cursor 发展是好事,极大的降低了 auto-coder.chat 的布道门槛,增大了行业的蛋糕。

auto-coder.chat 深度剖析,为什么可以作为极致版的 cursor composer

auto-coder.chat 从一开始就是支持“多文件修改”,面向需求的的代码辅助工具。

对于代码补全和简单的代码续写生成亦或者手动编写代码,debug调试等,用户可以搭配 GitHub copilot ,通义灵码,comate或者cursor来完成。

auto-coder.chat 在 cursor 等IDE中的使用也极度简单,比把大象装进冰箱还少一步:

1. 打开IDE terminal, 输入 auto-coder.chat 命令

2. 输入 /coding <描述你的需求>

两步相当于给你带来了真正生产级别的 composer 功能。

来个真实的小案例

昨天我正好想给auto-coder.chat 加上国际化功能。修改之前我们可以看到,所有交互信息都是直接写死在代码里的(英文):

a95c35434275013d8f7994fce6aae49f.png

现在我们希望把系统初始化过程中,交互和输出给用户的信息都要支持中英文。基本思路就是,

  1. 新建一个python文件,里面放中英文文本,并且提供 get_message 函数方便外部使用。

  2. 修改所有 chat_auto_coder.py 文件中所以打印信息的部分,采用get_message。

相信很多程序员对这个事都记忆犹新,大量的苦力活,而且还容易错漏,要反复测。

cursor composer 的艰难尝试

我一开始采用 cursor 的 composer 功能来完成。下面是我尝试和他的沟通:

9501854660e872c815a3746cc50db94f.png

这是新增的文件内容:

5b09b44e18fc9076ed5cf500444908cf.png

这是他修改的文件内容:

b692c1f6345331fe78c0817896a13c7e.png

很遗憾:

  1. 新增内容的路径没有放对,放到了项目根目录,说明对目录理解还是不够。

  2. 修改的内容,无法合并到原有代码(原有代码大概有两千多行)。

我尝试了三次,你看到是最后一版,依然没有成功。

auto-coder.chat 的手到擒来

就一句话,没有更多:

1904664d82d7ea470d892d425aac05a1.jpeg

然后在准确的位置新增了一个文件:

ffb7bb7e3c8964ae9ec3058b5808501a.jpeg

修改了一个已经拥有2000多行代码的文件:

a6fd69de257e8f0fdbf2364700b10e1b.jpeg

大概修改了十几个地方,从diff 可以看出,没有一处遗漏。

最后实现的效果:

4decb36d4fa1a6dd57382fd6be520ff5.jpeg

依葫芦画瓢改了其他地方:

e5ffac7a06b7be01077ccec3bc8e3ea3.jpeg

顺利实现了我的需求,我昨天也顺利发版了 auto-coder==0.1.165 版本。

一个小总结

  1. 和人比,如果是人去做这件事,虽然没啥难度,但必然是漏了这里,漏了哪里,基本上 auto-coder.chat 几分钟可以搞好的事情,人需要花半天到一天。

  2. 和 cursor composer 比,它没有运行成功,并且它还有繁琐的交互的。而auto-coder.chat 的思想是,快速合并,快速/reivew, 快速 /revert 或者 go on。

auto-coder.chat 不仅仅是 auto-coder.chat

如果你觉得 auto-coder.chat 仅仅是一个命令行工具就Naive了,给大家看一张图:

10b4b8bd0a3110b3e1423b56224853dc.png

auto-coder.chat 只是水上的冰山,我们在下面做了大量工作,从而支持各种形态的辅助编程产品,提供的API接口也支持企业将自动化编程接近自己的 CICD 开发流程中。

此外,我们还提供了最好的编程知识库集成,以及类似 cursor directory 的 auto-coder.chat lib 功能。

想了解更多,欢迎点击 "原文阅读"。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2128195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据集 Total-Text 文本检测 >> DataBall

开源数据集 Total-Text 文本检测 深度学习 人工智能 Total-Text 是一个文本检测数据集&#xff0c;由 1,555 张图像组成&#xff0c;具有多种文本类型&#xff0c;包括水平、多向和弯曲文本实例。训练分割和测试分割分别有 1,255 张图像和 300 张图像。 article{CK2019, author…

时序预测 | Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测

时序预测 | Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测 目录 时序预测 | Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测&#xff08;完整源码和数…

新手教学系列——用Nginx将页面请求分发到不同后端模块

在当今的Web开发中,前后端分离架构已经成为主流,尤其是大型应用项目。前端可以通过Vue这样的框架来统一管理页面和用户交互,而后端则通常会拆分成多个微服务模块,以便应对不同业务需求和功能扩展。在这样的架构下,Nginx作为一个高效、灵活的Web服务器,能够帮助我们将前端…

打造自己的大模型LLMs!独家训练秘籍!

目录 前言大语言模型 Vs机器学习模型训练过程 步骤1&#xff1a;数据策划&#xff08;Data Curation)步骤2&#xff1a;格式化与预处理步骤3&#xff1a;训练模型步骤4&#xff1a;模型评估 LLM Leaderboard [LLM Leaderboard 2024](https://www.vellum.ai/llm-leaderboard)[O…

怎么修改mvn的java版本

在maven所在目录下的bin目录中找到 mvn.cmd 文件&#xff0c;选中这个文件后&#xff0c;鼠标右键选择编辑。 在第一行添加java对应版本号的jre的路径 再次重新查看cmd下的指定的mvn -version的java版本

HT513 2.8W I2S 输入单声道D类音频功率放大器

特征 电源供电: PVDD 2.5-6.5V; DVDD/AVDD 3.3V 灵活的音频输入: -I2S, LJ, RJ, TDM 输入 -8,16,32,44.1,48,88.2,96,192kHz 采样频 率输出功率: 1.40W (PVDD3.6V,RL4Ω,THDN10%) 2.80W(PVDD5.0V,RL4Ω,THDN10%) 4.70W(PVDD6.5V,RL4Ω,THDN10%) THDN0.08%(PO1W, RL4Ω, PVDD …

【直播预告】从人工智能到类脑与量子计算:数学与新计算范式

数学作为科研的基础工具&#xff0c;在推动人工智能、类脑计算、量子计算等新兴计算范式发展中起到了关键作用。 数学是人工智能的重要基石&#xff0c;数学中的逻辑推理、概率统计、优化算法等概念在人工智能中广泛应用&#xff0c;如线性代数用于数据处理和特征提取&#xf…

本地生活区域推广合伙人怎么做?前景如何?

今年3月&#xff0c;本地生活于山东青岛举行了“2024聚力生态大会”&#xff0c;并全面解读了本地生活区域合伙人的增长态势、用户价值、平台生态和平台政策等内容。而从大会结束至今&#xff0c;多个创业者交流群里关于本地生活区域推广合伙人的讨论度居高不下&#xff0c;想要…

Servlet编程第一步:从零构建Hello World应用,详细步骤+图解

前言 什么是Servlet? Servlet 是一个 Java程序&#xff0c;是在服务器上运行以处理客户端请求并做出响应的程序 什么是maven&#xff1f; 简而言之&#xff0c;maven是通过一小段描述管理和构建java项目的工具&#xff08;通过pom.xml&#xff09;&#xff0c;我们通过maven项…

HTML中的javascript基本用法及综合实例

文章目录 基本的使用方法内联JavaScript脚本标签外部脚本文件使用库和框架注意事项 几个进阶的主题和示例1. 操作DOM2. 响应用户输入3. AJAX请求4. 使用框架/库 综合实例HTML 结构JavaScript 逻辑功能解释CSS 样式 基本的使用方法 在HTML中使用JavaScript可以让网页变得更加动…

HarmonyOS开发之使用PhotoViewPicker(图库选择器)保存图片

一&#xff1a;效果图 二&#xff1a;添加依赖 import fs from ohos.file.fs;//文件管理 import picker from ohos.file.picker//选择器 三&#xff1a;下载&#xff0c;保存图片的实现 // 下载图片imgUrldownloadAndSaveImage(imgUrl: string) {http.createHttp().request(…

21世纪全球最具影响力的思想家颜廷利:当今世界公认三大哲学家

优秀&#xff0c;源自对知识的敬畏&#xff0c; 成功&#xff0c;孕育于对经历的感恩。 无私&#xff0c;是真我显现的舞台&#xff0c; 开悟&#xff0c;让心灵沐浴人间的清明。 和善&#xff0c;是通往高峰的稳健脚步&#xff0c; 互爱&#xff0c;让福气溢满整个世界……

51单片机应用开发---什么是单片机?为什么要学习单片机?

实现目标 1、熟悉单片机定义、特点、应用场景、发展历史等&#xff1b; 2、理解为什么要学习单片机&#xff1f;怎样学习单片机&#xff1f; 一、单片机是什么&#xff1f; 1、定义 单片机是集成在一块&#xff08;单&#xff09;芯片上的微型计算机。平时我们把 MCU&#x…

Basler 相机与LabVIEW进行集成

Basler 提供的相机驱动和 SDK (Software Development Kit) 允许用户通过 LabVIEW 对相机进行控制和图像采集。以下是 Basler 相机与 LabVIEW 集成的几种方式&#xff1a; 1. Baslers Pylon SDK Basler 提供的 Pylon SDK 是一套用于控制 Basler 相机的开发工具包&#xff0c;支…

给RAG开药方:亚马逊发布RAGChecker,专治AI回答不准

立即解决AI误差&#xff1a;亚马逊RAGChecker的创新之举 ©作者|Blaze 来源|神州问学 引言 在人工智能领域&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff09;模型以其强大的生成能力和灵活性赢得了广泛关注。它结合了信息检索和生成技术&#xff0…

Matlab2023a/b安装Cplex12.9(实测适配)

目录 1 Matlab2023a/b版本安装Yalmip2 下载Cplex12.92.1 登录官网2.2 搜索意向版本and下载 3 安装cplex4 matlab与cplex耦合&#xff01;&#xff01;&#xff01;5 测试 1 Matlab2023a/b版本安装Yalmip google一下后CSDN有很多安装说明&#xff0c;不再赘述&#xff0c;可见&…

功能这么全的excel导出,你确定不需要?

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 功能这么全的excel导出&#xff0c;你确定不需要&#xff1f; 前言Maven坐标HSSFWorkbook、SXSSF…

【音视频】使用movie、drawtext过滤器实现图片、文字水印(6-3)

本来准备从六月份开始研究使用ffmpeg的movie filter实现图片水印、drawtext filter实现文字水印的能力&#xff0c;但一直没时间&#xff0c;临近中秋终于有空&#xff0c;于是研究了下ffmpeg命令行&#xff08;这里不做展示&#xff0c;关注代码实现&#xff09;&#xff0c;从…

AI客服机器人开启企业客户服务新纪元

随着人工智能(AI)技术的迅猛发展&#xff0c;使得AI客服机器人走进了我们的视野&#xff0c;成为提高客户满意度和业务效率的不二法宝。这些智能机器人不仅能够处理海量信息&#xff0c;还能为客户提供个性化的服务体验。 一、AI客服机器人的基本原理 AI客服机器人是基于人工智…

Azure web app has no access to openai private endpoint in virtual network

题意&#xff1a;"Azure Web 应用无法访问虚拟网络中的 OpenAI 私有端点。" 问题背景&#xff1a; I am trying to host a web application similar to a private ChatGPT instance within a secluded virtual network, ensuring that theres no external internet …