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

news2024/9/19 10:48:59

大家终于都意识到大模型首先改变的是软件行业自己,而软件的根基是代码生成。代码生成第一波就是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! 成年人需要做选择题么?成年人应该是:我都要!

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

在这里插入图片描述

其他你喜欢的IDE工具:

在这里插入图片描述

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

为什么要这么组合使用呢?因为 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 的界面是这样的:

图片

和原有的功能是相当割裂的,新启动了一套窗口。我实测下来,他还是比较适合新增一些文件,对于比较复杂的文件修改,还是不太行,合并不进去。我估计是因为他们采用的是 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 加上国际化功能。修改之前我们可以看到,所有交互信息都是直接写死在代码里的(英文):

图片

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

  1. 新建一个python文件,里面放中英文文本,并且提供 get_message 函数方便外部使用。
  2. 修改所有 chat_auto_coder.py 文件中所以打印信息的部分,采用get_message。

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

cursor composer 的艰难尝试

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

在这里插入图片描述

这是新增的文件内容:

在这里插入图片描述

这是他修改的文件内容:

图片

很遗憾:

  1. 新增内容的路径没有放对,放到了项目根目录,说明对目录理解还是不够。
  2. 修改的内容,无法合并到原有代码(原有代码大概有两千多行)。

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

auto-coder.chat 的手到擒来

就一句话,没有更多:

图片

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

图片

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

图片

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

最后实现的效果:

图片

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

图片

顺利实现了我的需求,我昨天也顺利发版了 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了,给大家看一张图:

图片

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

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

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

img

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

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

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

相关文章

利用shuji还原webpack打包源码

0 前言 前段时间做一个银行的项目&#xff0c;是在别人已经打过好多次的基础上继续打&#xff0c;而且时间很短&#xff0c;也是没办法要有产出&#xff0c;这个银行很多站点都是webpack打包&#xff0c;就新学了一个点&#xff1a;利用shuji获取webpack打包站源码&#xff08…

2025届京东校招薪酬全面上调,加薪20%!

就在近日京东官方发布声明&#xff0c;今年 2025 届校招岗位的薪资将全面上调&#xff0c;再次加薪&#xff01;其中&#xff0c;采销、技术、产品等核心岗位薪酬上调不低于20%&#xff0c;产研类岗位更狠&#xff0c;算法岗平均起薪涨幅超75%&#xff0c;硬件和设计等岗位起薪…

2024年06月中国电子学会青少年软件编程(图形化)等级考试试卷(一级)答案 + 解析

青少年软件编程&#xff08;图形化&#xff09;等级考试试卷&#xff08;一级&#xff09; 分数&#xff1a;100 题数&#xff1a;37 一、单选题 音乐Video Game1的时长将近8秒&#xff0c;点击一次角色&#xff0c;下列哪个程序不能完整地播放音乐两次&#xff1f;&#xff0…

java实现根据延迟法定退休政策计算退休年龄

一、计算规则 从2025年1月1日起&#xff0c;男职工和原法定退休年龄为五十五周岁的女职工&#xff0c;法定退休年龄每四个月延迟一个月&#xff0c;分别逐步延迟至六十三周岁和五十八周岁&#xff1b;原法定退休年龄为五十周岁的女职工&#xff0c;法定退休年龄每二个月延迟一…

应急响应实战---是谁修改了我的密码?

前言&#xff1a;此次应急响应为真实案例&#xff0c;客户反馈无法通过密码登录服务器&#xff0c;疑似服务器被入侵 0x01 如何找回密码&#xff1f; 客户服务器为windows server2019&#xff0c;运维平台为PVE平台&#xff1b;实际上无论是windows系统或者是linux系统&#…

从简单分析到智能问数,Smartbi AIChat让数据回归业务

大数据产业创新服务媒体 ——聚焦数据 改变商业 在某科技公司&#xff0c;资深数据分析师李晨&#xff08;化名&#xff09;正忙于分析新产品的市场表现。面对传统自助式BI工具&#xff0c;李晨在功能界面中手动设置各种查询条件&#xff0c;进行了一番复杂的拖拉拽操作&#…

spring模块(六)spring监听器(3)广播与异步问题

发布事件和监听器之间默认是同步的&#xff1b;监听器则是广播形式。demo&#xff1a; event&#xff1a; package com.listener.demo.event;import com.listener.demo.dto.UserLogDTO; import org.springframework.context.ApplicationEvent;public class MyLogEvent extends…

界面控件DevExpress中文教程:如何PDF图形对象的可见性?

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 近期重要版本v24.1已正式发布&#xff0c;该版本拥有众多新产…

数据资产盘点

数据资产盘点包含调研诊断、数据盘点、数据对标校正、分类分级、权责划分、数据资产目录建立六大环节。调研诊断&#xff1a;通常采用访谈或案头梳理的方式&#xff0c;对 IT 整体建设情况、业务系统数据情况进行调研&#xff0c;框定数据资产管理范围、聚焦目标。 数据盘点&a…

spring整合mabatis框架(druid连接池)

spring整合mabatis框架&#xff0c;duird连接池&#xff0c;Junit5测试框架 1&#xff09;创建Maven工程 2&#xff09;导入相关的依赖 <!--springContext依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-contex…

helm一键化部署pod

目录 概念 安装helm helm的命令 自定义模版 回滚 概念 helm提供了一个模版&#xff0c;可以一键化的部署微服务。它通过打包的方式&#xff0c;把所有需要的yaml文件集合一起&#xff0c;然后一键部署&#xff0c;还可以支持回滚。 helm的本质&#xff1a;就是可以把k8s…

低压电抗器与电容器安装距离

低压电抗器与电容器的安装距离是一个关键问题&#xff0c;主要考虑电气安全、热效应以及电磁干扰等因素。通常建议保持适当的安装距离以确保设备的正常运行和安全性。 以下是一些常见的参考原则&#xff1a; 1、热效应 电抗器和电容器在运行过程中都会产生热量。如果两者之间距…

代数模型(Algebraic Models)---线性规划------ + 案例 + Python源码求解(见文中)

目录 一、代数模型&#xff08;Algebraic Models&#xff09;详解1.1什么是代数模型&#xff1f;1.2代数模型的基本形式1.3 安装所需要的Python包--运行下述案例1.4代数模型的应用案例案例 1&#xff1a;市场供需平衡模型Python求解代码Python求解结果如下图&#xff1a; 案例 …

GDPU MySQL数据库 天码行空1 数据库的创建和基本操作

一、实验目的 1&#xff0e;熟知机房用机安全规则。 2&#xff0e;通过上机操作&#xff0c;加深对数据库系统理论知识的理解&#xff1b;通过使用具体的DBMS&#xff0c;了解一种实际的数据库管理系统&#xff0c;并掌握其操作技术&#xff1b;通过对实际题目的上机实验&…

Java8的函数式编程简介

文章目录 环境背景方法方法1&#xff1a;Java 7&#xff08;传统方法&#xff09;方法2&#xff1a;Java 7 &#xff08;策略模式&#xff09;方法3&#xff1a;Java 8的Lambda表达式方法4&#xff1a;Java 8内建的函数式接口Predicate方法5&#xff1a;Java 8的方法引用方法6&…

JavaSE:5、类与对象

1、类的定义与对象的创建 定义属性 创建对象 2、对象的使用 使用一个变量来指代某个对象&#xff0c;只不过引用类型的变量&#xff0c;存储的是对象的引用&#xff0c;而不是对象本身 public class Main {public static void main(String [] argv){Person p1new Person();P…

Oracle发送邮件功能:配置自动化发信指南?

Oracle发送邮件服务设置方法&#xff1f;怎么用Oracle数据库发信&#xff1f; Oracle数据库作为企业级应用的核心&#xff0c;其内置的发送邮件功能为企业提供了强大的自动化工具。AokSend将详细介绍如何配置Oracle发送邮件功能&#xff0c;以实现自动化发信&#xff0c;从而提…

C和指针:指针

内存和地址 程序视角看内存是一个大的字节数组&#xff0c;每个字节包含8个位&#xff0c;可以存储无符号值0至255,或有符号值-128至127。 多个字节可以合成一个字&#xff0c;许多机器以字为单位存储整数&#xff0c;每个字一般由2个或4个字节组成。 由于它们包含了更多的位&…

react native(expo)多语言适配

项目基于 expo框架 开发。请先配置好 expo 开发环境 1.引入i18n-js npx expo install i18n-js 2.新建languages文件夹&#xff0c;其中包括英文、中文等语种目录。结构如下&#xff1a; *.json文件为语种翻译后的json键值对&#xff0c;用于UI中引用; { "appName&q…

【C语言】(指针系列3)数组指针+函数指针+typedef+函数数组指针+转移表

前言&#xff1a;前言&#xff1a;开始之前先感谢一位大佬&#xff0c;清风~徐~来-CSDN博客&#xff0c;由于是时间久远&#xff0c;博主指针的系列忘的差不多了&#xff0c;所以有顺序部分借鉴了该播主的&#xff0c;同时也加入了博主自己的理解&#xff0c;有些地方如果解释的…