京东的AIGC革新之旅:通过JoyCoder实现研发提效 | 新程序员 ...

打印 上一主题 下一主题

主题 536|帖子 536|积分 1608


  【导读】从需求分析、计划编码到测试运维,AI已经逐步渗透到软件开辟的各个环节,如何切实针对研发场景举行提效,是业内每个企业都在思索的标题。本文作者详细分析了AI在研发中的实际应用,并分享了JoyCoder与京东内部工具联合的实际案例,展示了AIGC在提拔研发效能方面的巨大潜力。
  本文出自 2024 环球软件研发技术大会中的演讲,同时收录于《新程序员 008》。《新程序员 008》聚焦于大模子对软件开辟的全面支持,囊括 Daniel Jackson 和 Daniel Povey 等研发专家的真知灼见与“AGI 技术 50 人”栏目标深度访谈内容,接待大家订阅年卡。
  
作者 | 刘兴东

  
责编 | 郑丽媛

  
出品丨新程序员编辑部

  

  比年来大模子特别火热,诸多公司在这一范畴投入了大量的研究精力,各种基于大模子的应用场景也应运而生,涵盖了健康、金融、教育等多个范畴,固然也包罗软件行业。在这场由生成式AI技术引领的软件行业革命中,京东也正在举行一场前所未有的AIGC革新之旅。
  在这场技术驱动的变革中,京东自主研发的智能编程助手JoyCoder,成为了推动研发服从飞跃的关键气力。接下来,我将深入解析京东如何通过JoyCoder实现研发提效的具体实践,以及这一过程中所显现出的技术创新。
  

  
AIGC对软件行业的影响

  自从AIGC成为热点以来,它对整个软件行业都产生了深远的影响。无论是软件的开辟、测试、部署、维护还是利用方式,都在差别程度上发生了变化。比方在代码层面,AI技术已经能够生成软件代码,包罗代码审查在内的许多环节都与AIGC密切相关。同时,在软件质量和安全性方面也因AIGC的出现,发生了相应改进。比方,自动化的单位测试以及软件弊端分析技术能够帮助开辟者进步服从,尽早发现并修复相关弊端。
  总体而言,AIGC在开辟本钱、服从和用户体验上都带来了显著提拔,有助于促举行业发展——但同时,这个过程中也伴随着一系列的风险和挑战:
  

  • 利用AIGC后,如何确保其生成的内容正确可靠,成为了我们必须面对的标题。这要求我们在技能上做出相应的迭代和提拔,以更好地管理和利用AIGC的输出能力。与此同时,我们也必要提拔工具的能力,以实现与内部工具的良好兼容。
  • 若过度依赖AIGC生成的内容,可能会忽视对其正确性和创造性的审查。因此,我们要不断完善并增补自身技能,以确保在利用AIGC时能提拔生产力,而不是因过度依赖而导致生产力下降。
  

  
如何借助AIGC举行研发场景提效

  如上文所说,AIGC与我们最为相关的场景还是在研发范畴中的应用。如图1所示,以DevOps为例,它涵盖了从需求开始直到产物上线和部署发布的全过程。那么,AIGC如何在DevOps工具中发挥生产力呢?这是整个行业都在思索和探索的标题。
  

  
图1 研发全流程AIGC提效

  从需求分析开始,我们可以通过AIGC与大模子交互,利用自然语言生成需求文档,尝试让大模子明白文档内容,区分功能性需求、非功能性需求和安全性能需求。基于对需求的前期明白,大模子能够更正确地帮助用户定位需求,使需求文档更加清楚,从而在需求阶段和明白阶段做得更为过细。
  到了系统开辟阶段,这是一个从准备、开辟到完成直至上线的迭代过程。基于对需求的明白,AIGC可生成相关代码文档和代码解释;在开辟过程中,可利用AIGC生成代码片断,减少手动编写的工作量;此外,编写单位测试时常让研发人员感到头疼,这部分也可借助AIGC来完成,以节流大量时间和精力。在研发后期,AIGC还能帮助检测代码中的安全弊端,快速定位和修复调试过程中的报错。哪怕是几年后的系统迭代更新,AIGC也能协助举行代码优化工作,比方从Vue 2升级到Vue 3,或者从Java转换到其他编程语言。
  到了系统测试阶段,AIGC可以根据前期对需求和代码片断的明白,生成自动化单位测试、测试文档和测试用例,进步测试服从和正确性。在缺陷分析时,也能更快地找到并修复缺陷。
  最后在系统上线后,我们还必要思量如何在后期提供辅助。AI Office这一概念在行业里已提出多年,如何基于系统日志的产生来举行指标聚类,进而通过人工标注来快速识别指标是否异常,这也是AIGC可以发挥作用的地方。通过指标之间的关联性,比如发现502报错,不一定是前端网关标题,也可能是后端服务故障,AIGC可以帮助找到标题的具体根因。
  若进一步聚焦到DevOps流程中的编程环节,AIGC也显现出了它强盛的应用潜力。举例来说,在软件开辟早期,我们常需编写大量重复的增删改查(CRUD)操纵和工具类代码。面对这些重复性高的工作,如何提拔服从并避免传统开辟中的低效和错误,成为了亟待解决的标题。
  在没有智能代码生成和代码尺度的情况下,开辟者可能因缺乏辅助工具而编写堕落误代码,同时也不易相识公司内部的最佳实践或通用代码规范。这不光造成了信息孤岛,也影响了新成员融入团队的速率和服从。
  然而,AIGC的引入为这一逆境带来了转机。利用自然语言生成技术,AIGC能够辅助生成相关的代码片断,从而加速开辟过程。在代码重构、优化和合理性检查方面,AIGC同样能发挥重要作用。通过深度明白内部文档和代码库,AIGC能在开辟者编写代码时,敏捷定位并保举公司内部或外部的相似通用能力,有用避免重复开辟。
  此外,AIGC还能根据代码库和上下文举行智能推理,为开辟者提供代码辅助,使编写过程更加高效和合理。这一转变不光有助于提拔开辟服从,也能推动从传统低效开辟模式向基于AIGC的高效开辟模式的转变——在这种思索下,京东推出了基于大模子的智能编码应用JoyCoder。
  

  
JoyCoder的产物架构与能力先容

  如图2所示,从京东JoyCoder的产物架构图来看,其底层服务重要分成两个部分:大模子和行云DevOps平台。
  

  
图2 JoyCoder的产物架构

  在大模子层,重要包罗JoyCoder Lite、JoyCoder Pro和JoyCoder-Base模子。此中JoyCoder Lite和JoyCoder Pro负责关于会话方面的大模子应用,JoyCoder Lite以7B的轻量级计划为用户提供快速高效的操纵体验,JoyCoder Pro专注于提供更精准的服务。至于JoyCoder-Base,则是一个用于代码推理的模子。
  尤为值得一提的是,JoyCoder支持设置接入其他模子,即不局限于自有模子,允许接入来自差别供应商的各种大模子,如百度文心、清华智谱以及GPT等。这种开放的态度不光丰富了JoyCoder的应用场景,也使其能够为用户提供更加精准和多元化的服务。
  引入更多模子后,如何有用管理这些模子成为了一个挑战。为此,我们创新性地为JoyCoder封装了一层模子网关:在模子对接层面直接与大模子举行交互,而无需关注上层应用,以此简化管理流程,同时确保用户信息的安全与合规。同时,模子网关还具备用户鉴权、涉黄涉暴信息拦截以及日志记载等功能,为未来的审计和内容规性检查提供了有力支持。最后如果有相关报警,也可以通过网关来举行处理。
  在兼容性方面,JoyCoder同样表现出色,其插件已支持多系统平台(如Windows、Android、鸿蒙)以及多种编辑器和主流编程语言。此外,在代码智能生成、人机交互和DevOps平台上,我们也举行了详细的场景化划分。最终,通过管理背景的用户管理和数据统计,我们可得到用户活泼度、采取率和调用次数,以此对大模子举行更有针对性的调解和优化,进一步提拔其采取率和优化结果。
  基于以上的产物架构,JoyCoder在整套研发流程(从需求、计划、编码、测试到上线)中,几乎每个环节都能帮助开辟者进步效能:
  

  • 通过人机遇话,能将需求形貌更加尺度化,帮助用户更好地整理和明确需求。
  • 在计划阶段,能通过自然语言生成对应的代码模块。
  • 在代码编辑区,可以用代码补全功能对编码过程举行辅助,减少重复劳动;代码解释功能能自动生成解释内容,减轻开辟者负担;代码解释和代码评审能让研发人员快速明白代码,让新成员快速熟悉代码,进步工作服从。
  • 在测试阶段,JoyCoder能快速生成单位测试和接口文档,减轻开辟者写单测和文档的负担。它还能对标题代码提出修复建议,并将安全扫描和规约检测左移到编码阶段。
  固然,对于AI编码应用来说,安全防控也是不可忽视的一环。在内容安全方面,JoyCoder能够识别并过滤敏感词和不良信息;在数据安全方面,它则通过大模子统一网关对上传的数据举行严格把关,防止身份信息、银行卡号等敏感信息的泄露;在安全审计方面,JoyCoder会生成安全日志记载,记载输入敏感信息的用户标识、用户IP、装备号和输入的敏感词,并提示管理员该用户的操纵涉及数据安全。
  基于以上AI能力,目前京东内部已有约12,000名研发人员在利用JoyCoder,占整体研发人员的70%。这些用户在代码续写、自然语言片断生成、单位测试和推理等方面的采取率到达了30%以上。整体提效到达 20%以上,大大提拔了研发服从和尺度化程度。
  

  
JoyCoder与京东内部工具联合的最佳实践

  然而,无论是产物架构还是能力建设,均仍属于理论层面——AI自己如同一座孤岛,要想真正发挥其作用,必要与工具举行联归并实践。
  纵观整个开辟过程,比方需求明白、编译、构建和部署等方面,实际上都必要AI能力的下沉。于是在京东内部,我们借助JoyCoder在DevOps过程中举行了全新的能力建设。
  首先在需求明白这个环节,我们做了一些有用改进。从前,我们只是简朴地拉取需求列表,但发现这种方法并不受接待,因为它未能给研发团队带来实际结果,需求列表过长导致研发人员往往不会仔细查看。为此,我们与研发团队举行了深度调研和访谈,以相识他们的具体需求。现在,我们借助AI将需求与代码分支关联起来,以便研发人员确定其开辟工作是基于哪个具体需求而睁开的。
  其次在开辟过程中,研发人员可能必要查看日志、部署自测环境、更新调试等,此中有一项重要能力是代码提交时的形貌。通常情况下,人们在提交接码时可能会简朴地写“bug fix”,但这种形貌不光没有实际意义,还会影响后续的代码审查和维护。通过大型语言模子的帮助,我们可以自动生成代码提交信息,不光减轻了研发人员的负担,还能让内部信息更尺度化。
  一般情况下,AI重要帮助我们生成代码,但无法处理后续的事情,如一键部署和调试。比方客岁,我们已将京东内部的构建速率进步到了平均2分钟以内。然而,在举行联调工作时,仍必要大量的调试时间。每次完成调试后,我们必要修改代码并提交至代码库,接着举行编译构建,然后再次发布。纵然构建速率已经控制在2分钟之内,但发布过程仍需约莫5分钟,而且这5分钟还会随着调试次数的增加而累积成更长的时间。
  为相识决这个标题,我们开辟了本地化插件的一键部署功能,提交接码后,AI工具会自动生成commit message,并直接构建为镜像。此外我们还增强了热部署能力,使得研发人员可直接将更改发布到必要调试的地方。这样一来,我们将每次调试所需的时间从5分钟缩短到了秒级,极大地提拔了开辟服从。
  从以上这些优化和实践不难看出,JoyCoder的目标正如其名:希望能通过这些工具和平台,进步研发人员的幸福感和工作服从,更好地服务于他们,使其在开辟过程中得到更多的满足感和快乐。
  最后,对于生成式AI这个范畴,另有许多值得探索的地方,包罗基于需求的明白、对于AI与Office应用的整合,以及与内部工具的联合等方面,目前业界都仍在探索之中。等到这些难题被逐个攻破后,信赖未来AI在软件开辟中的应用和服从提拔势必会到达一个新高。
  

  大模子刷新一切,让我们有着诸多的迷茫,AI 这股热潮究竟会推着我们走向何方?面对时不时一夜变天,焦虑感油然而生,开辟者怎么能够更快、更系统地拥抱大模子?《新程序员 007》以「大模子时代,开辟者的成长指南」为核心,希望拨开层层迷雾,让开辟者定下心地看到及拥抱未来。
  读过本书的开辟者这样感慨道:“让我惊喜的是,中国另有这种高质量、贴近开辟者的杂志,我感到非常冲动。最吸引我的是内里有许多人对 AI 的见解和履历和一些采访的内容,这些内容既真实又有价值。”
  能学习到新知识、产生共鸣,解答久困于心的狐疑,这是《新程序员》的核心价值。接待扫描下方二维码订阅纸书和电子书。
  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表