赞
踩
用 7 分钟开发一个游戏出来,听起来有点像天方夜谭?借助 ChatGPT,一切皆有可能。
近日,来自布朗大学和多所中国大学的研究人员,基于 ChatGPT 进行了一项实验,成功证明 AI 具备软件开发的能力。做开发的小伙伴们一定很好奇基于 AI 的自动化编程是怎么玩的吧,我们一步一步来揭开谜底。
研究人员首先在 ChatGPT 上开了一家叫作ChatDev的虚拟软件开发公司。IT 公司该有的角色一应俱全:CEO、CTO、资深程序员、测试工程师、美工等。
对每个角色给予描述性的定义,让“他们”知道自己该干什么。这可以理解为将人才网站上的职位描述拿来用就好,例如程序员的定义就是计算机基础知识牢固,工作经验丰富,能熟练使用多种编程语言,包括 Python、Java、C/C++等。
然后是开发流程设定,这里选择了传统的瀑布式模型,即完成上个阶段的工作后,才进入下个阶段。整个过程划分为设计、编码、测试和文档四个阶段。
规定每个阶段都有一个团队参与,团队成员包括程序员、代码审核员、测试人员。这就是人类的组织形式和工作流程在 AI 世界的映射,看起来初具章法。
为了驱动工作,研究人员建立了一个聊天链(ChatChain)架构,即将任务按阶段划分,每个阶段内包含若干节点所代表的子任务。有两个角色参与节点的上下文多轮讨论,提出并验证解决方案。
至此,ChatDev 的草台班子搭起来,可以开门营业了。要看看这家公司的业务能力如何,先给它提一个“五子棋(Gomoku game)”游戏的需求吧。
我们现在来仔细观察一下,看看 ChatDev 公司的各个角色是如何交流合作来完成开发任务的。
设计阶段
由 CEO、CPO(首席产品官)、CTO 三方会谈,从产品顶层出发,确定软件的主要功能形式、整体架构,以及开发语言。可以看到,讨论集中在大方向与整体框架上,没有纠缠于技术细节,也没有人类才有的利益算计,果然是一次高效的沟通。
讨论的结果是把五子棋游戏设计成桌面应用程序,它将提供用户友好的界面和交互式游戏体验。Python 和 Pygame 库是实现基本 Gomoku 游戏的合适选择。
编码阶段
由 CTO、程序员和美工主导本阶段工作。聊天链将此过程分解为多个子任务,通常由两个角色参与完成。例如, CTO 提出具体功能规格说明,程序员就生成 Python 代码。美工设计 GUI 界面,程序员将其与代码集成。
测试阶段
AI 写的代码也是要进行测试的,这一步由程序员、审查员、测试工程师参与完成。先是代码评审(code review),其过程与人类活动相似,由同行查看代码以查漏补缺。然后是测试人员使用解释器验证软件功能,以黑盒测试的方式完成系统测试。
通过下图可以看到,测试人员果然发现了 GomokuGame 未定义的 bug,还给出了解决建议。程序员根据测试报告修复了 bug。测试人员最后给出了“代码结构良好,符合规范,成功通过测试”的评价。
文档阶段
写文档大概是人类程序员最不爱干的事,但人家 AI 表示这不是问题,而且文档是由 CEO、CPO、CTO、程序员来写的,看看这重视程度。文档包括运行环境依赖文件、用户手册等。文档内容也做到了格式正确、条理分明、简洁易懂。
最后,一款五子棋游戏就诞生了。
研究团队按照这种生产方式,开发了 70 款软件,那么成效如何呢?
用数据来说明,ChatDev 生成的工程一般有 2 至 8 个文件,平均是 4.26 个文件。每个文件一般包含 39 至 359 行代码,平均是 131.6 行。
从软件运行结果来看,大约 86.66% 的软件执行正常,但也有 13.33% 的软件执行失败。失败的原因有的是 API 令牌长度限制,有的是受外部依赖的影响。不过总体上成功率还是很高的。
学会 AIGC 自动化编程
点击封面即可购书,限时特惠
5折
想玩转 ChatGPT 自动化编程吗,看懂《AIGC自动化编程》这本书就可以。本书分别从 ChatGPT 基本概念、自动化编程工具、行业应用三个部分进行说明,我们具体了解一下。
ChatGPT 基本概念
此部分详细解释了 ChatGPT 技术的原理,介绍了 ChatGPT 可以赋能的行业领域,并展示了注册、登录 ChatGPT 的方法。对于如何应用 ChatGPT 解决问题,给出了具体的提问技巧建议。
跟ChatGPT打招呼
自动化编程工具
重点展示了 GitHub Copilot 在软件开发工作中的重要作用。先介绍了 GitHub Copilot 的安装和使用,然后详细说明了各种自动化编程方法,包括根据函数名自动生成实现代码、无中生有代码生成模式、检查和弥补安全漏洞等。
自动生成代码
另外还对 New Bing、Bard、Claude2 等大模型工具也一一做了介绍,读者可以根据需要去深入探索。
行业应用
我们已经看到 AIGC 工具开发出了五子棋游戏,其实它能应用在诸多行业中。书中给出以下实战示例:基于 PyQt6 和 Tkinter 的桌面应用;Web 应用;太空大战等游戏应用;处理 Excel、Word、PPT 的办公自动化应用;移动应用;数据库开发,等等。
自动编程实战:桌面应用
这本书涵盖的内容真不少,作者为什么知道得那么多?因为本书作者李宁热爱技术而且乐于分享,他是 51CTO 金牌讲师,制作视频课程超过 2000 小时。还有更厉害的,李宁老师出版了 40 多本 IT 畅销书,输出技术文章超 2000 万字,阅读量超千万。
大家跟着李宁老师学肯定错不了,对于要如何有效学习,书中也给出了具体建议。
· 逐步深入:先学习基础概念,然后再掌握工具的使用;
· 交叉学习:在学习新工具时,将其与以往内容对比,触类旁通,提高效率;
· 广泛实践:边看边练,对于实战内容一定要亲手实践;
· 积极探索:不要满足于书本内容,要对 AIGC 工具有创造性的使用。
《AIGC自动化编程》内容新颖,追踪业界先进技术成果,以实用为目标。同时书中理论扎实,代码案例丰富,用图文并举的方式解说复杂的操作,让读者的学习成为一趟轻松愉快的旅程。
本书的深度与广度也赢得业界一片赞誉之声,让我们看下大佬们的评价吧。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。