CN117539438B - 软件开发方法 - Google Patents
软件开发方法 Download PDFInfo
- Publication number
- CN117539438B CN117539438B CN202410021616.0A CN202410021616A CN117539438B CN 117539438 B CN117539438 B CN 117539438B CN 202410021616 A CN202410021616 A CN 202410021616A CN 117539438 B CN117539438 B CN 117539438B
- Authority
- CN
- China
- Prior art keywords
- task
- code
- intelligent auxiliary
- large model
- demand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000012545 processing Methods 0.000 claims abstract description 122
- 238000012360 testing method Methods 0.000 claims description 131
- 238000007726 management method Methods 0.000 claims description 43
- 238000005457 optimization Methods 0.000 claims description 29
- 230000000295 complement effect Effects 0.000 claims description 19
- 238000012827 research and development Methods 0.000 claims description 18
- 230000001419 dependent effect Effects 0.000 claims description 13
- 238000012550 audit Methods 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 7
- 238000011161 development Methods 0.000 description 75
- 238000012549 training Methods 0.000 description 47
- 230000006870 function Effects 0.000 description 31
- 230000008569 process Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000011162 downstream development Methods 0.000 description 3
- 238000012783 upstream development Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- XSQUKJJJFZCRTK-NJFSPNSNSA-N UREA C 14 Chemical compound N[14C](N)=O XSQUKJJJFZCRTK-NJFSPNSNSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本说明书实施例提供软件开发方法,所述软件开发方法包括:接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务,确定所述第一智能辅助任务对应的第一处理对象,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果,接收第二智能辅助请求,确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种软件开发方法。
背景技术
软件开发,包括一整条软件开发链路,如需求录入、需求分发、代码开发、代码测试、代码提交、代码审核、分支合并等环节。为了帮助开发者进行软件开发,目前已经出现了一些集成开发环境,旨在提高软件迭代的效率和质量,通常包含源代码编辑器、调试器和构建工具等功能。
但是,随着信息化、智能化进程不断深入,各开发型企业的代码、组件、系统越来越复杂,企业开发者的各项开发任务变得越来越多。这给开发者在软件开发过程中熟悉系统、需求理解、框架设计、开发、测试、代码审核等都带来较大的挑战。因此,软件开发过程中,如何提高软件开发效率的同时保障软件质量,成为了目前亟需解决的重要问题。
发明内容
有鉴于此,本说明书实施例提供了一种软件开发方法。本说明书一个或者多个实施例同时涉及一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种软件开发方法,包括:接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务,确定所述第一智能辅助任务对应的第一处理对象;将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果;接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务;确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到;将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果。
根据本说明书实施例的第二方面,提供了一种软件开发方法,应用于端侧设备,包括:向云侧设备发送第一智能辅助请求,使所述云侧设备接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务,确定所述第一智能辅助任务对应的第一处理对象,将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果;接收所述云侧设备返回的第一智能辅助结果;向所述云侧设备发送第二智能辅助请求,使所述云侧设备接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务,确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到,将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果;接收所述云侧设备返回的第二智能辅助结果。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述软件开发方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述软件开发方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述软件开发方法的步骤。
本说明书一个实施例实现了软件开发方法,该方法接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务,确定所述第一智能辅助任务对应的第一处理对象,将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果,接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务,确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到,将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果。
由于大模型基于亿万级专业代码数据的训练而具备了专业的代码理解、代码生成等能力,因此,本说明书实施例提供的方法基于大模型技术,将大模型融入到软件开发链路中,在软件开发链路上,根据大模型对上游开发节点的智能辅助任务的更加规范准确的智能辅助结果,确定大模型对下游开发节点的智能辅助任务的输入,从而使得大模型在上下游节点执行任务中发生联动,输入的信息更加完备,参与到链路上各个开发节点的决策与实现,提供的智能辅助结果更加精准,极大助力了软件开发过程中各个开发节点的开发效率和质量的提升。
附图说明
图1是本说明书一个实施例提供的一种网络系统的框架图;
图2是本说明书一个实施例提供的一种软件开发方法的流程图;
图3是本说明书一个实施例提供的一种软件开发系统的架构图;
图4是本说明书一个实施例提供的一种软件开发装置的结构示意图;
图5是本说明书另一个实施例提供的一种软件开发方法的流程图;
图6是本说明书一个实施例提供的一种软件开发系统的框架图;
图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
此外,需要说明的是,本说明书一个或多个实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本说明书一个或多个实施例中提供的软件开发方法涉及的大模型是基于亿万级专业代码数据的训练而具备了专业的代码理解、代码生成等能力的、具有大规模模型参数的深度机器学习模型,通常包含上亿、上百亿、上千亿、上万亿甚至十万亿以上的模型参数。大模型又可以称为基石模型/基础模型(Foundation Model),通过大规模无标注的语料进行大模型的预训练,产出亿级以上参数的预训练模型,这种模型能适应广泛的下游任务,模型具有较好的泛化能力,例如大规模语言模型(Large Language Model, LLM)、多模态预训练模型(multi-modal pre-training model)等。例如,本说明书实施例提供的软件开发方法涉及的大模型可以是以GPT(Generative Pre-Trained Transformer,生成式预训练Transformer模型)架构为代表的百亿级参数的神经网络模型。
大模型在实际应用时,仅需少量样本对预训练模型进行微调即可应用于不同的任务中,大模型可以广泛应用于自然语言处理(Natural Language Processing,简称NLP)、计算机视觉等领域,具体可以应用于如视觉问答(Visual Question Answering,简称VQA)、图像描述(Image Caption,简称IC)、图像生成等计算机视觉领域任务,以及基于文本的情感分类、文本摘要生成、机器翻译等自然语言处理领域任务,大模型主要的应用场景包括数字助理、智能机器人、搜索、在线教育、办公软件、电子商务、智能设计等。
随着信息化、智能化进程不断深入,各开发型企业的代码、组件、系统越来越复杂,企业开发者的各项开发任务变得越来越多。这给开发者在软件开发过程中熟悉系统、需求理解、框架设计、开发、测试、代码审核等都带来较大的挑战。
有鉴于此,由于大模型基于亿万级专业代码数据的训练而具备了专业的代码理解、代码生成等能力,因此,本说明书实施例提供的方法基于大模型技术,将大模型融入到软件开发链路中,在软件开发链路上,根据大模型对上游开发节点的智能辅助任务的更加规范准确的智能辅助结果,确定大模型对下游开发节点的智能辅助任务的输入,从而使得大模型在上下游节点执行任务中发生联动,输入的信息更加完备,参与到链路上各个开发节点的决策与实现,提供的智能辅助结果更加精准,极大助力了软件开发过程中各个开发节点的开发效率和质量的提升。
具体地,在本说明书中,提供了软件开发方法,本说明书同时涉及软件开发装置,软件开发系统,计算设备,以及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了本说明书一个实施例提供的一种软件开发系统的框架图,其中,该软件开发系统可以包括云侧设备以及端侧设备。
在端侧设备存在多个的情况下,多个端侧设备之间可以通过云侧设备可以建立通信连接,在软件开发场景中,云侧设备即用来在多个端侧设备之间提供智能辅助服务,多个端侧设备可以分别作为发送端或接收端,通过云侧设备实现通信。
具体地,云侧设备,用于接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务,确定所述第一智能辅助任务对应的第一处理对象,将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果,接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务,确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到,将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果;
端侧设备,用于响应于用户在软件开发链路上的操作,向云侧设备发送第一智能辅助请求,接收所述云侧设备返回的第一智能辅助结果,向所述云侧设备发送第二智能辅助请求,接收所述云侧设备返回的第二智能辅助结果。
其中,端侧设备与云侧设备之间可以通过网络建立连接。网络为端侧设备与云侧设备之间提供了通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。端侧设备所传输的数据可能需要经过编码、转码、压缩等处理之后才发布至云侧设备。
端侧设备可以包括浏览器、APP(Application,应用程序)、或网页应用如H5(HyperText Markup Language5,超文本标记语言第5版)应用、或轻应用(也被称为小程序,一种轻量级应用程序)或云应用等,端侧设备的应用可以基于服务端提供的相应服务的软件开发工具包(SDK,Software Development Kit),如基于实时通信(RTC,Real TimeCommunication)SDK开发获得等。端侧设备可以表现为电子设备或者依赖设备中的某些APP而运行等。电子设备例如可以具有显示屏并支持信息浏览等,如可以是个人移动终端如手机、平板电脑、个人计算机等。在电子设备中通常还可以配置各种其它类应用,例如人机对话类应用、模型训练类应用、文本处理类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
云侧设备可以包括提供各种服务的服务器,例如为多个客户端提供通信服务的服务器,又如为客户端上使用的模型提供支持的用于后台训练的服务器,又如对客户端发送的数据进行处理的服务器等。需要说明的是,云侧设备可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content DeliveryNetwork)、以及大数据和人工智能平台等基础云计算服务的云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。
值得说明的是,本说明书实施例中提供的软件开发方法可以由云侧设备执行,在本说明书的其它实施例中,端侧设备也可以与云侧设备具有相似的功能,从而执行本说明书实施例所提供的软件开发方法;在其它实施例中,本说明书实施例所提供的软件开发方法还可以是由云侧设备与端侧设备共同执行。
该软件开发系统,将大模型融入到软件开发链路中,可以使大模型在需求管理、开发、测试、提交、代码审核等各个节点的任务中联动,提供了有效的智能辅助,有效提高了软件开发效率和软件质量。
参见图2,图2示出了根据本说明书一个实施例提供的一种软件开发方法的流程图,具体包括以下步骤。
步骤202:接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务。
例如,当用户在端侧设备的交互界面上触发第一智能辅助请求时,端侧设备将第一智能辅助请求发送给云侧设备,使云侧设备接收第一智能辅助请求。
软件开发链路,是指软件开发的各个开发节点串联起来的开发流程。例如:所述软件开发链路从上游到下游可以包括需求管理节点、代码生成节点、代码测试节点、代码提交节点和代码审核节点,各个开发节点具有各自的智能辅助任务。软件开发链路,具体可以通过软件开发系统来呈现。如图3所示的系统功能架构图所示,软件开发系统可以包括软件集成开发环境和代码托管平台两部分。其中,软件集成开发环境,可以理解为用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。基于软件集成开发环境,软件开发系统可以集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所述代码托管平台,可以理解为用于存储、分享和管理代码的在线平台。软件集成开发环境可以理解为开发者使用的端侧设备本地安装的开发工具,代码托管平台可以理解为云侧设备的托管平台,多个开发者可以提交代码到托管平台,供多个开发者协作开发。基于软件开发系统的软件集成开发环境和代码托管平台,开发者可以在软件开发系统中进行需求管理、编码、测试、代码提交、代码审核。示例性地,代码托管平台可以包括:代码库,用于保存软件的代码;代码审核,用于代码评审员或者资深的开发者来评审新提交的代码,以确保代码的质量,包括可读性,可维护性等,代码审核是保障软件质量的重要手段,通常是开发者开发代码并提交到代码托管平台;代码缺陷,是软件问题/漏洞的描述,以供开发者参考代码缺陷来进行代码的开发或者功能修复,也可以理解为一种软件需求提出方式。示例性地,软件开发集成环境可以包括:提交,用于开发者提交代码,例如,开发者开发了某个功能并且测试完成后,可以向代码托管平台提交代码,提交的时候会写上当前提交的代码变更的内容;结对编码,是指成对的开发者一起开发一份代码,一个开发者写,另一开发者看并指导,一段时间后交换角色,这样能更好地保障软件质量;单元测试,是一种用于保障已有功能或者新增功能运行起来符合预期的测试模块。例如:根据本说明书实施例提供的软件开发方法,在软件开发系统中提供了智能编码助手,智能编码助手可以理解为执行智能辅助任务的虚拟主体,智能编码助手相当于结对编码中编写代码的开发者,真实人相当于结对编码中的看并指导的人,从而能够有效提高代码开发效率。
所述第一智能辅助任务,可以是第一开发节点中为用户提供辅助的任务。所述第一开发节点,是指软件开发链路上的任一开发节点,例如,可以是需求管理节点、代码生成节点、代码测试节点、代码提交节点和代码审核节点中的任一节点。例如,在第一开发节点为需求管理节点的情况下,所述第一智能辅助任务可以是需求合并、实现步骤生成、需求拆分和代码实现等任务中的任一个。再例如,在第一开发节点为代码生成节点的情况下,所述第一智能辅助任务可以是代码补全、代码生成、代码优化等任务中的任一个。
本说明书实施例提供的方法中,智能辅助请求的触发方式不限。例如:在用户使用的端侧设备上,可以为用户提供软件开发系统的交互界面,用户可以在交互界面上通过鼠标、语音等任一种或多种方式来触发智能辅助请求。需要说明的是,智能辅助请求的触发条件和触发方式可以按需灵活设置,本说明书对此并不进行限制。
步骤204:确定所述第一智能辅助任务对应的第一处理对象。
所述第一处理对象,可以理解为第一智能辅助任务的输入数据,具体根据任务内容确定。例如,所述处理对象可以是需求描述、代码、单元测试等。
步骤206:将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果。
例如,本说明书实施例提供的方法所涉及的大模型是基于深度学习的自然语言处理模型,能够理解和生成自然语言以及将自然语言转换为代码。
所述智能辅助任务对应的提示信息,是指能够区分不同智能辅助任务的提示信息。可以理解的是,本说明书实施例基于一个大模型,在软件开发链路的上下游节点的智能辅助任务上联动,大模型需要针对不同的智能辅助任务输出不同的智能辅助结果,基于此,为了使大模型能够区分并执行不同的智能辅助任务,需要将智能辅助任务的提示信息输入大模型。
为了使大模型能够更加准确的生成智能辅助结果,本说明书一个或多个实施例中,还可以使用不同智能辅助任务对应的少量训练样本,对于已基于海量数据预训练过的大模型,进行进一步地训练,通过训练使得大模型的任务处理能力进一步提升,能够执行不同智能辅助任务。例如,可以对大模型进行以下训练:
针对需求合并的智能辅助任务,可以使用合并前需求描述和对应的合并后需求描述构成的训练样本,对大模型进行训练,得到能够判断多个需求描述是否达到预设相似条件,并将相似的多个需求描述合并为一个需求描述的大模型。针对生成需求实现步骤的智能辅助任务,可以使用需求描述和对应的需求实现步骤构成的训练样本,对大模型进行训练,得到能够针对需求描述生成需求实现步骤的大模型。针对需求拆分的智能辅助任务,可以使用需求描述和对应的拆分后多个细化需求描述构成的训练样本,对大模型进行训练,得到能够针对需求描述生成拆分后多个细化需求描述的大模型。针对代码实现的智能辅助任务,可以使用需求描述和对应的代码构成的训练样本,对大模型进行训练,得到能够针对需求描述生成代码的大模型。针对代码补全的智能辅助任务,可以使用需求描述、输入光标位置和对应的补入代码构成的训练样本,对大模型进行训练,得到能够针对输入光标位置生成补入代码的大模型。针对研发问答的智能辅助任务,可以使用代码研发问题和对应的答案内容构成的训练样本,对大模型进行训练,得到能够针对代码研发问题生成答案内容的大模型。针对代码生成的智能辅助任务,可以使用需求注释和对应的需求实现代码构成的训练样本,对大模型进行训练,得到能够针对需求注释生成需求实现代码的大模型。针对代码解释的智能辅助任务,可以使用代码段和对应的代码解释内容构成的训练样本,对大模型进行训练,得到能够针对代码段生成代码解释内容的大模型。针对代码优化的智能辅助任务,可以使用代码段和对应的优化建议构成的训练样本,对大模型进行训练,得到能够针对代码段生成优化建议的大模型。针对项目感知的智能辅助任务,可以使用代码补全和研发问答涉及的数据(如代码,问题,答案等)和对应的项目环境信息构成的训练样本,对大模型进行训练,得到能够感知项目环境的大模型。针对单元测试的智能辅助任务,可以使用类或函数等代码段和对应的单元测试内容构成的训练样本,对大模型进行训练,得到能够针对类或函数生成单元测试内容的大模型。针对外部资源生成的的智能辅助任务,可以使用对象(如复杂对象或者外部资源,如:数据库、网页等)和对应的外部资源构成的训练样本,对大模型进行训练,得到能够利用大模型生成对象对应的外部依赖资源的大模型。针对测试框架切换的智能辅助任务,可以使用用户的框架需求信息和框架切换信息构成的训练样本,对大模型进行训练,得到能够预测并切换符合用户需求的单元测试框架的大模型。针对生成提交信息的智能辅助任务,可以使用功能代码起点、功能代码终点,功能代码起点终点差异和对应的代码提交信息构成的训练样本,对大模型进行训练,得到能够生成代码提交信息的大模型。针对代码风格检测的智能辅助任务,可以使用所述差异结果、代码风格、和符合代码风格的代码构成的训练样本,对大模型进行训练,得到能够判断代码风格并生成符合代码风格的更新待提交代码的大模型。针对代码优化的智能辅助任务,可以使用代码、审核评价信息和优化代码构成的训练样本,对大模型进行训练,得到能够针对待审核代码的评价信息生成优化后的代码的大模型。针对代码描述生成的智能辅助任务,可以使用多条代码分支的代码提交信息和合并后主线描述构成的训练样本,对大模型进行训练,得到能够针对分支提交信息生成合并到主线的主线描述信息的大模型。
步骤208:接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务。
所述第二智能辅助任务,可以是第二开发节点中为用户提供辅助的任务。所述第二开发节点,可以是软件开发链路上位于第一开发节点下游的任一开发节点,例如,可以是代码生成节点、代码测试节点、代码提交节点和代码审核节点中的任一节点。例如,在第二开发节点为代码生成节点的情况下,所述第二智能辅助任务可以是代码补全、代码生成、代码优化等任务中的任一个。
步骤210:确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到。
所述第二处理对象,可以理解为第二智能辅助任务的输入数据。例如,在所述第二智能辅助任务为代码生成节点中的代码补全任务的情况下,所述第二处理对象可以是需求管理节点输出的至少一条细化需求描述。
其中,所述第二处理对象根据所述第一智能辅助结果得到,可以包括:直接将至少一个所述第一智能辅助结果作为所述第二处理对象,或者,将所述第一智能辅助结果对应的相关数据作为所述第二处理对象。
步骤212:将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果。
本说明书实施例提供的方法中,大模型基于亿万级专业代码数据的训练而具备了专业的代码理解、代码生成等能力,因此,本说明书实施例提供的方法基于大模型技术,将大模型融入到软件开发链路中,在软件开发链路上,根据大模型对上游开发节点的智能辅助任务的更加规范准确的智能辅助结果,确定大模型对下游开发节点的智能辅助任务的输入,从而使得大模型在上下游节点执行任务中发生联动,输入的信息更加完备,参与到链路上各个开发节点的决策与实现,提供的智能辅助结果更加精准,极大助力了软件开发过程中各个开发节点的开发效率和质量的提升。
下面,以大模型在软件开发链路中的需求管理节点、代码生成节点、代码测试节点、代码提交节点、代码审核节点执行任务中的联动为例,对本说明书实施例提供的方法进行示例性说明。
本说明书一个或多个实施例中,所述第一开发节点为需求管理节点时,所述第一智能辅助任务为需求管理任务,所述第一处理对象为待管理需求描述,所述第一智能辅助结果至少包括所述待管理需求描述对应的多个细化需求描述;所述将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果,包括:将所述待管理需求描述和需求管理任务提示信息输入所述大模型,利用所述大模型对待管理需求描述执行需求管理任务,生成多个细化需求描述;相应地,所述第二开发节点为代码生成节点,所述第二智能辅助任务为代码生成任务,所述第二处理对象为细化需求描述,所述第二智能辅助结果至少包括所述细化需求描述对应的代码;所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,包括:将所述细化需求描述和所述代码生成任务提示信息输入所述大模型,利用所述大模型对所述细化需求描述执行代码生成任务,生成代码。
在上述实施例中,由于所述需求管理节点的智能辅助任务的任务结果中,会生成细化需求描述。因此,所述第二处理对象至少包括一条细化需求描述。所述细化需求描述,可以理解为相对于待管理需求描述,粒度更加合理细分、描述更加清晰的需求描述。
可以理解的是,在软件开发开始时,会根据软件产品设计、线上用户反馈等途径,得到软件的不足/缺陷/新需求等信息,这些信息会形成一个个需求描述,保存在软件开发系统的需求管理节点,后续开发者根据需求优先级等,领取需求任务,进行开发。基于此,在需求管理节点中,待管理需求描述可能是粒度较为粗糙、描述不够规范的概括性的需求,为了在后续代码生成节点能够使开发者或者大模型准确地生成更加精准的代码,需求管理任务的目标可以定位为:针对待管理需求描述,生成多个细化需求描述。
上述实施例,通过大模型在需求管理节点的加持,能够获得规范的细化需求描述,使开发者在代码生成节点收到的均是需求粒度合理、需求描述清晰的任务,甚至一些需求描述可能已经有了具体的实现步骤、部分代码实现,从而代码生成节点的大模型输入中会附带细化需求描述的内容,使得代码生成节点的开发者生成代码的门槛降低,难度降低,开发效率提升,生成的注释、解释等也更加精准,辅助效果显著提升。可见,根据上述实施例中大模型在需求管理节点和代码生成节点任务中的联动,能够让开发者用自然语言来开发软件,降低开发软件的门槛和难度,提高开发软件的效率和质量,让开发者能够专注于创造价值,提高软件开发效率。
本说明书一个或多个实施例中,所述需求管理任务包括:需求合并子任务、实现步骤生成子任务、需求拆分子任务和代码实现子任务;所述将所述待管理需求描述和需求管理任务提示信息输入所述大模型,利用所述大模型对待管理需求描述执行需求管理任务,生成多个细化需求描述,包括:当接收到需求合并子任务时,将多个待管理需求描述和需求合并子任务提示信息输入所述大模型,利用所述大模型判断所述多个待管理需求描述是否达到预设相似条件,如果是,合并出一个待管理需求描述;当接收到实现步骤生成子任务时,将所述待管理需求描述和实现步骤生成子任务提示信息输入所述大模型,利用所述大模型对所述待管理需求描述生成需求实现步骤;当接收到需求拆分子任务时,将所述需求实现步骤和需求拆分子任务提示信息输入所述大模型,利用所述大模型对所述需求实现步骤生成多个细化需求描述;当接收到代码实现子任务时,将任一个或多个细化需求描述和代码实现子任务提示信息输入所述大模型,利用所述大模型对所述细化需求描述生成对应的代码。
其中,所述需求合并子任务,是针对实际应用中待管理需求描述存在描述不规范,而导致的重复信息量大的问题,而提出的用于去除重复信息,精简需求描述的任务。例如,在实际应用中,需求描述录入和提出问题的人可能为多人,需求描述的量大,描述方式多种多样,即使针对相同的问题,可能对应了多条描述方式不一样的需求描述。在这种情况下,根据上述实施例,可以向大模型输入多个需求描述,根据需求描述,大模型判断需求是否一致,如果一致则将相似的需求合并为一个需求,这样,可以幅减少需求描述的后续处理量。
在合并了相似的需求描述之后,通过实现步骤生成子任务,可以生成更加细化的实现步骤。具体地,所述实现步骤生成子任务,是针对实际应用中待管理需求描述存在描述不规范,而导致的描述粒度粗糙的问题,而提出的用于分析出需求描述的具体实现步骤的任务。例如,在实际应用中,通常产品经理提出的需求描述是较为概括的,粗粒度的需求描述,到具体技术实现层面,还要对需求描述做实现步骤的拆分,从而后续能够更加精准地拆分出细化的需求描述。在这种情况下,根据上述实施例,可以向大模型输入需求描述,使大模型根据自身理解自动生成该需求描述的具体需求实现步骤,供开发者参考。在需求实现步骤中,可以提供修改或者新增哪些代码文件等实现细节。
在得到需求描述对应的实现步骤之后,可以基于实现步骤对需求描述进行更细化的拆分,从而生成更加精准的细化需求描述,以便在代码生成节点,能够更加精准地生成对应的代码。具体地,所述需求拆分子任务,是用于降低需求描述复杂度,将笼统的需求描述拆分为多个小的细化需求描述的任务。根据上述实施例,可以将需求描述的实现步骤输入到大模型,大模型根据自己的理解,将大需求拆分为多个小的细化需求描述,从而多个细化需求描述可以分发给不同的开发者来实现代码,避免一个大需求阻塞在一个开发者上,提高开发效率。
在得到细化需求描述之后,针对简单的细化需求描述,通过上述实施例,可以利用大模型直接生成对应的代码,从而提高开发效率。例如,对于如修改样式等简单需求,可以将该细化需求描述输入给大模型,大模型则直接给出该细化需求描述的具体代码,提供给开发者参考。
当需求管理节点将细化需求描述推送到代码生成节点后,开发者可以在代码生成节点对应的用户交互界面收到一个个的细化需求描述,针对细化需求描述进入代码生成的处理。基于此,本说明书一个或多个实施例中,为了到达到更好的智能辅助效果,代码生成节点的代码生成任务,可以包括:代码补全子任务、代码生成子任务和代码优化子任务中的任一个或多个子任务;所述将所述细化需求描述和所述代码生成任务提示信息输入所述大模型,利用所述大模型对所述细化需求描述执行代码生成任务,生成代码,包括:当接收到代码补全子任务时,将需求描述数据、所述用户的输入光标位置和代码补全子任务提示信息输入所述大模型,得到所述大模型针对所述输入光标位置生成的补入代码,所述需求描述数据包括:任一个所述细化需求描述,或者,任一个所述细化需求描述和所述细化需求描述对应的代码;当接收到代码生成子任务时,将所述需求描述数据、对应的用户注释和代码生成子任务提示信息输入所述大模型,得到所述大模型针对所述需求描述数据生成的代码;当接收到代码优化子任务时,将所述需求描述数据、对应的待优化代码和代码优化子任务提示信息输入所述大模型,得到所述大模型针对所述待优化代码生成的优化代码。
其中,所述代码补全子任务,是利用大模型根据当前代码的上文和下文,预测开发者的输入光标位置应当写入的代码内容的任务,如可以实现行级补全、块级补全、函数级补全,甚至更大力度的类补全等,大幅提高开发者开发效率。例如,当开发者在软件开发系统中写入一段代码“A”,根据该实施例,大模型能够根据开发者已经编写的代码“A”,实时地生成下一行或下一个函数的代码“B”,帮助开发者快速完成编码任务。并且,大模型能够根据代码“A”和对应需求描述数据,理解语法、逻辑和风格,补入符合开发者意图和需求的代码,同时保持代码的可读性和规范性。为了便于为开发者提供代码补全的智能辅助,软件开发系统可以提供快捷键或鼠标点击等任意触发方式来触发代码补全子任务,实现实时续写功能。另外,开发者还可以设置一些代码补全的策略,例如续写的长度、多样性和置信度等。
所述代码生成子任务,是利用用户注释等方式对需求描述的补充作用,将其输入大模型,使大模型直接生成对应的代码,供开发者参考的任务。通过大模型在需求管理任务与代码生成子任务之间的联动,本说明书实施例提供的方法实现的软件开发系统能够根据开发者用自然语言描述的编程需求,自动地生成相应的代码,让开发者能够用自己熟悉的语言来编程。具体地,大模型能够理解开发者的自然语言输入,将其转换为代码的语义和结构,生成满足开发者需求的代码,同时考虑代码的正确性和优化性。例如:根据本说明书实施例提供的方法实现的软件开发系统可以提供代码编辑器,开发者可以在代码编辑器中输入自然语言的用户注释,当开发者按下快捷键或鼠标点击等触发方式来触发代码生成子任务时,用户注释以及用户注释对应的需求描述会输入大模型,使大模型生成对应的代码。另外,根据本说明书实施例提供的方法实现的软件开发系统还可以提供代码生成策略的设置入口,开发者可以通过设置入口来调整代码的生成策略,例如生成的语言、格式和风格等。
所述代码优化子任务,是针对一些代码(如用户选中的代码),利用大模型生成对应的优化代码的任务。除了优化代码之外,还可以提供优化建议,如代码中可优化的点、优化的原因,供开发者参考,提升软件质量。
在上述实施例中,由于大模型在需求管理节点的加持,开发者在开发阶段收到的均是需求粒度合理、需求描述清晰的任务,甚至需求中已经有了部分代码实现,所以在代码生成节点,大模型输入中会附带细化需求描述的内容,使得代码补全,生成,优化等辅助效果有显著提升。
由于大模型在需求管理节点和代码生成节点的智能辅助任务中的联动,使得需求管理节点生成的需求描述数据和代码生成节点所生成的代码和更加的精准,因此,在此基础上,可以进一步利用大模型,在代码生成节点对代码进行更加精准地解释,为研发问题进行更加精准地回答。具体地,本说明书一个或多个实施例中,所述第二智能辅助任务还包括:代码解释任务和/或研发问答任务;
所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,还包括:当接收到代码解释任务时,将待解释代码、所述待解释代码对应的需求描述数据和代码解释任务提示信息输入所述大模型,得到所述大模型针对所述待解释代码生成的代码解释,所述需求描述数据包括:任一个所述细化需求描述,或者,任一个所述细化需求描述和所述细化需求描述对应的代码;当接收到研发问答任务时,将待回答问题、所述待回答问题对应的所述需求描述数据和研发问答任务提示信息输入所述大模型,得到所述大模型针对所述待回答问题生成的答案。
其中,所述代码解释任务,是针对团队开发场景中,开发者需要看懂其他开发者的代码而提供的用于生成代码的解释内容的任务。通过大模型在需求管理任务与代码解释子任务之间的联动,大模型能够更加精准地理解代码的功能和逻辑,生成简洁明了的注释和/或解释,同时遵循代码的规范和风格,支持常见的解释/注释格式和工具。例如,用户可以在代码生成节点的交互界面中选中大模型生成的代码,通过下快捷键或鼠标点击等任意触发方式触发代码解释任务,大模型相应基于选中的代码生成该代码的解释。所述代码解释,可以包括:代码的大致含义、关键操作的解释等内容,从而让开发者能够快速了解代码。另外,根据本说明书实施例提供的方法实现的软件开发系统还可以提供代码解释策略的设置入口,开发者可以通过设置入口来调整代码解释的生成策略,例如生成的解释格式、工具和风格等。
所述研发问答任务,是针对开发者在开发过程中会碰到各种问题或者需要查询各种文档的情况,而提出的为开发者回答开发过程中碰到的问题的任务。通过大模型在需求管理任务与研发问答任务之间的联动,大模型能够基于需求描述数据更加精准地理解开发者的问题,从海量的编程知识和文档中检索和抽取相关的信息,生成准确和完整的答案,同时给出答案的来源和证据,支持多种语言的问题和答案。其中,问题可以是开发者用自然语言提出的编程相关的问题,答案也可以通过自然语言回答。例如,大模型可以针对开发者提出的“API的使用方式”等问题给予相应的答案,有助开发者尽快熟悉系统,提高开发效率。问题提出的方式不限,例如,开发者可以在代码编辑器中输入问题,通过快捷键或鼠标点击等任意触发方式来触发研发问答任务。另外,根据本说明书实施例提供的方法实现的软件开发系统还可以提供问答策略的设置入口,开发者可以通过设置入口来调整问答策略,例如问答的语言、长度和置信度等。
另外,本说明书一个或多个实施例中,所述方法还可以包括:在所述大模型执行所述代码生成节点中的任一任务时,利用所述大模型感知开发项目环境信息,使所述大模型基于所述开发项目环境信息生成所述任务的任务结果。在软件开发过程中,大模型执行任务时,输入的信息越丰富,输出的结果更加精准,因此,上述实施例中,大模型在执行任务时,例如代码补全和研发问答的过程中,通过感知软件当前的项目环境,包括所使用的语言、开发框架、文件和类库等信息,从而实现了更加精确的补全和问答。
代码生成节点的下游节点是代码测试节点,当大模型在代码生成节点基于与需求管理节点之间任务的联动,生成代码之后,可以进一步在代码测试节点对代码进行测试。本说明书一个或多个实施例中,所述第一开发节点为代码生成节点时,所述第二开发节点为代码测试节点,所述第二处理对象为待测试代码,所述第二智能辅助任务为代码测试任务,所述第二智能辅助结果至少包括所述待测试代码对应的单元测试;所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,包括:将所述待测试代码和测试生成任务提示信息输入所述大模型,利用所述大模型对所述代码执行测试生成任务,生成单元测试。
所述代码测试任务,是针对代码生成测试代码的任务。所述单元测试,是测试代码的基本单位,用于确保每个代码块的正常运行。基于大模型在代码生成节点和代码测试节点之间的联动,大模型能够更加精准地分析代码的功能和逻辑,生成覆盖代码的各种情况和边界的测试用例,同时生成可执行的测试代码,支持常见的测试框架和工具。例如,用户可以选中一段代码块触发测试生成任务,如一段代码块可以是类或者函数,大模型相应针对该代码块生成相应的一个或者多个单元测试,如单元测试内可以包含了输入样例和代码断言语句。再例如,本说明书实施例提供的软件开发系统提供的代码编辑器中显示了开发者输入和大模型补入/生成的代码,开发者可以在代码编辑器中选择需要测试的代码,然后按下快捷键或鼠标点击等触发方式来触发代码测试任务,使大模型生成单元测试。另外,根据本说明书实施例提供的方法实现的软件开发系统还可以提供代码测试策略的设置入口,开发者可以通过设置入口来调整单元测试的生成策略,例如生成的测试框架、工具和风格等。
由于代码生成节点得到大模型加持,生成的代码质量较高,注释完备,可读性,可维护性大幅提升,有利于大模型在代码测试节点生成可编译/可执行的单元测试,也即测试代码,从而大幅降低开发工作量。例如,在利用大模型生成单元测试时,可以结合大模型在代码生成节点辅助生成完备的代码解释的实施例,将代码解释也输入到大模型中,以使大模型生成的单元测试的测试代码质量更高。由于大模型在代码生成节点辅助生成的代码质量较高,分支/异常/边界条件等细节完备,使得大模型在下游的代码测试节点能够进一步生成更多边界测试用例,大幅提高软件的质量。
在大模型生成了单元测试的基础上,为了保证单元测试的成功执行,本说明书一个或多个实施例中,还利用大模型生成了单元测试所需的外部依赖资源,或者,根据用户需求来切换单元测试框架。
具体地,所述第二智能辅助任务还包括:外部依赖生成任务和/或单元测试框架切换任务;所述方法还包括:在所述单元测试中任一对象需要外部依赖资源的情况下,将所述对象的信息和外部依赖生成任务提示信息输入所述大模型,得到所述大模型针对所述对象生成的外部依赖资源;当接收到单元测试框架切换任务时,将框架需求信息、所述单元测试和框架切换任务提示信息输入所述大模型,利用所述大模型将所述单元测试的单元测试框架切换为所述测试需求信息对应的单元测试框架。
例如:在单元测试生成过程中,会碰到复杂对象或者外部资源,如:数据库、网页等,大模型可以利用对应语言的框架(该框架用于搭建模拟服务器的程序库/工具)完成单元测试的构建,从而引入相应的外部依赖资源,大幅降低了人工编写框架的工作量。
再例如:当用户需要的单元测试框架是unittest时,大模型能够根据开发者的需要,将原有的单元测试框架pytest切换为unittest。
在单元测试对应的测试通过之后,对应的代码会被提交到代码库,提交时需要描述当前提交的修改和变更。根据上述实施例,由于需求管理节点、代码生成节点、代码测试节点都得到大模型加持,代码注释和单元测试完备,因此,在代码提交节点,可以利用大模型生成代码对应的提交信息,相应的,提交信息质量也会显著提升,并且更详细,对于后续代码变更的追溯起到关键性作用。
具体地,所述第一开发节点为代码测试节点时,所述第一智能辅助任务为代码测试任务,所述第二开发节点为代码提交节点,所述第二处理对象为通过测试代码,所述第二智能辅助任务为代码提交任务,所述第二智能辅助结果至少包括所述通过测试代码对应的提交信息;所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,包括:将所述通过测试代码和代码提交任务提示信息输入所述大模型,利用所述大模型对所述通过测试代码执行代码提交任务,生成所述通过测试代码对应的提交信息。
例如:开发者在开发完成一个功能或者需求时,会提交代码,此时大模型可以根据功能代码起点与功能代码终点的差异结果,生成代码的提交信息,从而大幅减少开发者工作量,而且可以得到详细的说明。功能代码起点,是指当前功能开发的代码起点,开发者需要在这个起点上开发功能。功能代码终点,是指开发者完成了功能开发之后的代码终点。差异结果,是指功能代码起点对应的代码和终点对应的代码,这两份代码之间的差异,也就是开发者为了开发这个功能做新增/删除/修改的代码变动,大模型可以根据代码变动,用自然语言总结出本次开发的变化。
在一些应用场景中,软件开发系统中还允许设置软件对应的代码风格配置信息,使开发出的软件符合具体场景的开发规范。在这种情况下,本说明书一个或多各实施例,还可以利用大模型,对提交的代码进行代码风格的检查,检查提交的内容的代码风格是否符合要求,如果不符合,则生成符合风格的正确代码,减少开发者的操作,开发者只需要确认采纳即可。具体地,所述方法还包括:将所述通过测试代码和预设代码风格配置信息输入所述大模型,利用所述大模型检测所述通过测试代码是否符合所述代码风格配置信息,如果不符合,则得到所述大模型针对所述通过测试代码生成的、符合所述预设代码风格配置信息的代码。
在代码提交完成后,通常还需要资深的开发者或者代码审核人员进行代码审核,以保障软件质量,这个节点称为代码审核节点。本说明书一个或多个实施例中,所述第一开发节点为代码提交节点时,所述第二开发节点为代码审核节点,所述第一智能辅助任务为代码提交任务,所述第二处理对象为已提交代码,所述第二智能辅助任务为代码审核任务,所述第二智能辅助结果至少包括所述已提交代码对应的代码优化结果;所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,包括:将所述已提交代码、所述已提交代码的审核评价信息和代码审核任务提示信息输入所述大模型,利用所述大模型生成所述已提交代码对应的代码优化结果。
例如:在审核人员审核过程中(在该过程中,审核人员还可以借助大模型的代码解释能力,获得不理解的代码对应的代码解释),发现某块代码可能存在问题,对某块代码进行了评价/标注/备注,则大模型可以根据当前代码的上下文以及审核员的评价内容,尝试对对代码进行优化,生成优化代码,这样能够减少再与开发者的频繁沟通,也方便开发者根据建议进行改进。
针对审核通过后,代码分支向主线合并时,存在合并提交信息为主线描述的需求,本说明书一个或多个实施例,在所述代码审核节点中提供了主线描述信息生成任务,所述第二智能辅助任务还包括:主线描述信息生成任务。具体地,所述方法还包括:当任一项目的多个分支的代码审核通过时,将所述多个分支的代码、所述代码对应的提交信息和主线描述信息生成任务提示信息输入所述大模型,利用所述大模型生成所述项目的主线描述信息。
在上述实施例中,大模型可以根据分支中多个提交信息,如代码分支差异、提交信息等,生成一个合并到主线的描述信息。大模型生成的主线描述信息能够清晰表述代码改动满足的需求,做的改动等等,大幅减少了开发者的工作量,也使得代码库质量更高。
通过上述实施例可见,由于需求管理节点、代码生成节点、代码测试节点,代码提交节点得到大模型的加持,代码质量得到大幅提升,代码审核节点的处理压力大幅减小,同时在注释完备,单元测试完备,提交信息完备的情况下,大模型生成代码优化建议和自动改进效果显著提升,避免审核人员耗费大量时间了解需求细节和实现方案,提高审核优化效率。
需要说明的是,大模型基于软件开发链路的各个开发节点的智能辅助任务上的联动,提供了精准的智能辅助结果之后,用户还可以对所述智能辅助结果输入确认信息或者拒绝信息,从而在用户确认的情况下,将所述智能辅助结果更新或作用到开发链路中,使得智能辅助能够在用户需要的时候提供有效的帮助。
本说明书一个或多个实施例中,所述软件开发方法可以由云侧设备与端侧设备共同执行。在该实施例中,云侧设备利用大模型得到智能辅助结果之后,可以将所述智能辅助结果发送到所述软件开发系统对应的端侧设备,使所述端侧设备在所述软件开发系统的界面展示所述智能辅助结果,响应于接收到用户对所述智能辅助结果输入的确认信息,将所述智能辅助结果更新到对应软件的开发链路中。
与上述方法实施例相对应,本说明书还提供了软件开发装置实施例,图4示出了本说明书一个实施例提供的一种软件开发装置的结构示意图。如图4所示,该装置包括:
第一请求接收模块402,被配置为接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务;
第一对象确定模块404,被配置为确定所述第一智能辅助任务对应的第一处理对象;
第一任务执行模块406,被配置为将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果;
第二请求接收模块408,被配置为接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务。
第二对象确定模块410,被配置为确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到。
第二任务执行模块412,被配置为将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果。
本说明书一个或多个实施例中,所述第一开发节点为需求管理节点时,所述第一智能辅助任务为需求管理任务,所述第一处理对象为待管理需求描述,所述第一智能辅助结果至少包括所述待管理需求描述对应的多个细化需求描述;所述第一任务执行模块,被配置为将所述待管理需求描述和需求管理任务提示信息输入所述大模型,利用所述大模型对待管理需求描述执行需求管理任务,生成多个细化需求描述;相应地,所述第二开发节点为代码生成节点,所述第二智能辅助任务为代码生成任务,所述第二处理对象为细化需求描述,所述第二智能辅助结果至少包括所述细化需求描述对应的代码;所述第二任务执行模块,被配置为将所述细化需求描述和所述代码生成任务提示信息输入所述大模型,利用所述大模型对所述细化需求描述执行代码生成任务,生成代码。
本说明书一个或多个实施例中,所述需求管理任务包括:需求合并子任务、实现步骤生成子任务、需求拆分子任务和代码实现子任务。所述第一任务执行模块,包括:需求合并子模块,被配置为当接收到需求合并子任务时,将多个待管理需求描述和需求合并子任务提示信息输入所述大模型,利用所述大模型判断所述多个待管理需求描述是否达到预设相似条件,如果是,合并出一个待管理需求描述;步骤生成子模块,被配置为当接收到实现步骤生成子任务时,将所述待管理需求描述和实现步骤生成子任务提示信息输入所述大模型,利用所述大模型对所述待管理需求描述生成需求实现步骤;需求拆分子模块,被配置为当接收到需求拆分子任务时,将所述需求实现步骤和需求拆分子任务提示信息输入所述大模型,利用所述大模型对所述需求实现步骤生成多个细化需求描述;代码实现子模块,被配置为当接收到代码实现子任务时,将任一个或多个细化需求描述和代码实现子任务提示信息输入所述大模型,利用所述大模型对所述细化需求描述生成对应的代码。
本说明书一个或多个实施例中,所述代码生成任务包括:代码补全子任务、代码生成子任务和代码优化子任务中的任一个或多个子任务。所述第二任务执行模块,包括:代码补全子模块,被配置为当接收到代码补全子任务时,将需求描述数据、所述用户的输入光标位置和代码补全子任务提示信息输入所述大模型,得到所述大模型针对所述输入光标位置生成的补入代码,所述需求描述数据包括:任一个所述细化需求描述,或者,任一个所述细化需求描述和所述细化需求描述对应的代码;代码生成子模块,被配置为当接收到代码生成子任务时,将所述需求描述数据、对应的用户注释和代码生成子任务提示信息输入所述大模型,得到所述大模型针对所述需求描述数据生成的代码;代码优化子模块,被配置为当接收到代码优化子任务时,将所述需求描述数据、对应的待优化代码和代码优化子任务提示信息输入所述大模型,得到所述大模型针对所述待优化代码生成的优化代码。
本说明书一个或多个实施例中,所述第二智能辅助任务还包括:代码解释任务和/或研发问答任务。所述第二任务执行模块,还包括:代码解释子模块,被配置为当接收到代码解释任务时,将待解释代码、所述待解释代码对应的需求描述数据和代码解释任务提示信息输入所述大模型,得到所述大模型针对所述待解释代码生成的代码解释,所述需求描述数据包括:任一个所述细化需求描述,或者,任一个所述细化需求描述和所述细化需求描述对应的代码;研发问答子模块,被配置为当接收到研发问答任务时,将待回答问题、所述待回答问题对应的所述需求描述数据和研发问答任务提示信息输入所述大模型,得到所述大模型针对所述待回答问题生成的答案。
本说明书一个或多个实施例中,所述第一开发节点为代码生成节点时,所述第一智能辅助任务为代码生成任务,所述第二开发节点为代码测试节点,所述第二处理对象为待测试代码,所述第二智能辅助任务为代码测试任务,所述第二智能辅助结果至少包括所述待测试代码对应的单元测试。所述第二任务执行模块,被配置为将所述待测试代码和测试生成任务提示信息输入所述大模型,利用所述大模型对所述代码执行测试生成任务,生成单元测试。
本说明书一个或多个实施例中,所述第二智能辅助任务还包括:外部依赖生成任务和/或单元测试框架切换任务。所述第二任务执行模块,还包括:依赖资源生成子模块,被配置为在所述单元测试中任一对象需要外部依赖资源的情况下,将所述对象的信息和外部依赖生成任务提示信息输入所述大模型,得到所述大模型针对所述对象生成的外部依赖资源;框架切换子模块,被配置为当接收到单元测试框架切换任务时,将框架需求信息、所述单元测试和框架切换任务提示信息输入所述大模型,利用所述大模型将所述单元测试的单元测试框架切换为所述测试需求信息对应的单元测试框架。
本说明书一个或多个实施例中,所述第一开发节点为代码测试节点时,所述第二开发节点为代码提交节点,所述第二处理对象为通过测试代码,所述第二智能辅助任务为代码提交任务,所述第二智能辅助结果至少包括所述通过测试代码对应的提交信息。所述第二任务执行模块,被配置为将所述通过测试代码和代码提交任务提示信息输入所述大模型,利用所述大模型对所述通过测试代码执行代码提交任务,生成所述通过测试代码对应的提交信息。
本说明书一个或多个实施例中,所述第二任务执行模块,还被配置为将所述通过测试代码和预设代码风格配置信息输入所述大模型,利用所述大模型检测所述通过测试代码是否符合所述代码风格配置信息,如果不符合,则得到所述大模型针对所述通过测试代码生成的、符合所述预设代码风格配置信息的代码。
本说明书一个或多个实施例中,所述第一开发节点为代码提交节点时,所述第二开发节点为代码审核节点,所述第二处理对象为已提交代码,所述第二智能辅助任务为代码审核任务,所述第二智能辅助结果至少包括所述已提交代码对应的代码优化结果。所述第二任务执行模块,被配置为将所述已提交代码、所述已提交代码的审核评价信息和代码审核任务提示信息输入所述大模型,利用所述大模型生成所述已提交代码对应的代码优化结果。
本说明书一个或多个实施例中,所述第二智能辅助任务还包括:主线描述信息生成任务。所述第二任务执行模块,被配置为当任一项目的多个分支的代码审核通过时,将所述多个分支的代码、所述代码对应的提交信息和主线描述信息生成任务提示信息输入所述大模型,利用所述大模型生成所述项目的主线描述信息。
上述为本实施例的一种软件开发装置的示意性方案。需要说明的是,该软件开发装置的技术方案与上述的软件开发方法的技术方案属于同一构思,软件开发装置的技术方案未详细描述的细节内容,均可以参见上述软件开发方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了软件开发方法在端侧设备应用的实施例,图5示出了本说明书另一个实施例提供的一种软件开发方法的流程图。如图5所示,该方法包括:
步骤502:向云侧设备发送第一智能辅助请求,使所述云侧设备接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务,确定所述第一智能辅助任务对应的第一处理对象,将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果。
步骤504:接收所述云侧设备返回的第一智能辅助结果。
步骤506:向所述云侧设备发送第二智能辅助请求,使所述云侧设备接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务,确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到,将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果。
步骤508:接收所述云侧设备返回的第二智能辅助结果。
与上述方法实施例相对应,本说明书还提供了软件开发系统实施例,图6示出了本说明书一个实施例提供的一种软件开发系统的结构示意图。如图6所示,该系统包括:
云侧设备602,用于接收端侧设备的请求,根据如本说明书任意实施例所述软件开发方法执行所述请求对应的任务,将所述任务对应的任务结果发送给端侧设备;
端侧设备604,用于响应于用户在软件开发链路上的操作,将所述操作对应的请求发送给云侧设备,接收所述云侧设备返回的任务结果。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述软件开发方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的软件开发方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述软件开发方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述软件开发方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的软件开发方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述软件开发方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述软件开发方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的软件开发方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述软件开发方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据专利实践的要求进行适当的增减,例如在某些地区,根据专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (14)
1.一种软件开发方法,包括:
接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务, 所述第一智能辅助任务为需求管理任务、代码生成任务、代码测试任务、代码提交任务中的至少一种;
确定所述第一智能辅助任务对应的第一处理对象;
将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果;
接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务,所述第二智能辅助任务为代码生成任务、代码测试任务、代码提交任务、代码审核任务中的至少一种;
确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到;
将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果。
2.根据权利要求1所述的方法,所述第一智能辅助任务为需求管理任务,所述第一处理对象为待管理需求描述,所述第一智能辅助结果至少包括所述待管理需求描述对应的多个细化需求描述;
所述将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果,包括:
将所述待管理需求描述和需求管理任务提示信息输入所述大模型,利用所述大模型对待管理需求描述执行需求管理任务,生成多个细化需求描述;
相应地,所述第二智能辅助任务为代码生成任务,所述第二处理对象为细化需求描述,所述第二智能辅助结果至少包括所述细化需求描述对应的代码;
所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,包括:
将所述细化需求描述和所述代码生成任务提示信息输入所述大模型,利用所述大模型对所述细化需求描述执行代码生成任务,生成代码。
3.根据权利要求2所述的方法,所述需求管理任务包括:需求合并子任务、实现步骤生成子任务、需求拆分子任务和代码实现子任务;
所述将所述待管理需求描述和需求管理任务提示信息输入所述大模型,利用所述大模型对待管理需求描述执行需求管理任务,生成多个细化需求描述,包括:
当接收到需求合并子任务时,将多个待管理需求描述和需求合并子任务提示信息输入所述大模型,利用所述大模型判断所述多个待管理需求描述是否达到预设相似条件,如果是,合并出一个待管理需求描述;
当接收到实现步骤生成子任务时,将所述待管理需求描述和实现步骤生成子任务提示信息输入所述大模型,利用所述大模型对所述待管理需求描述生成需求实现步骤;
当接收到需求拆分子任务时,将所述需求实现步骤和需求拆分子任务提示信息输入所述大模型,利用所述大模型对所述需求实现步骤生成多个细化需求描述;
当接收到代码实现子任务时,将任一个或多个细化需求描述和代码实现子任务提示信息输入所述大模型,利用所述大模型对所述细化需求描述生成对应的代码。
4.根据权利要求2所述的方法,所述代码生成任务包括:代码补全子任务、代码生成子任务和代码优化子任务中的任一个或多个子任务;
所述将所述细化需求描述和所述代码生成任务提示信息输入所述大模型,利用所述大模型对所述细化需求描述执行代码生成任务,生成代码,包括:
当接收到代码补全子任务时,将需求描述数据、所述用户的输入光标位置和代码补全子任务提示信息输入所述大模型,得到所述大模型针对所述输入光标位置生成的补入代码,所述需求描述数据包括:任一个所述细化需求描述,或者,任一个所述细化需求描述和所述细化需求描述对应的代码;
当接收到代码生成子任务时,将所述需求描述数据、对应的用户注释和代码生成子任务提示信息输入所述大模型,得到所述大模型针对所述需求描述数据生成的代码;
当接收到代码优化子任务时,将所述需求描述数据、对应的待优化代码和代码优化子任务提示信息输入所述大模型,得到所述大模型针对所述待优化代码生成的优化代码。
5.根据权利要求2所述的方法,所述第二智能辅助任务还包括:代码解释任务和/或研发问答任务;
所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,还包括:
当接收到代码解释任务时,将待解释代码、所述待解释代码对应的需求描述数据和代码解释任务提示信息输入所述大模型,得到所述大模型针对所述待解释代码生成的代码解释,所述需求描述数据包括:任一个所述细化需求描述,或者,任一个所述细化需求描述和所述细化需求描述对应的代码;
当接收到研发问答任务时,将待回答问题、所述待回答问题对应的所述需求描述数据和研发问答任务提示信息输入所述大模型,得到所述大模型针对所述待回答问题生成的答案。
6.根据权利要求1所述的方法,所述第一智能辅助任务为代码生成任务,所述第二处理对象为待测试代码,所述第二智能辅助任务为代码测试任务,所述第二智能辅助结果至少包括所述待测试代码对应的单元测试;
所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,包括:
将所述待测试代码和测试生成任务提示信息输入所述大模型,利用所述大模型对所述代码执行测试生成任务,生成单元测试。
7.根据权利要求6所述的方法,所述第二智能辅助任务还包括:外部依赖生成任务和/或单元测试框架切换任务;
所述方法还包括:
在所述单元测试中任一对象需要外部依赖资源的情况下,将所述对象的信息和外部依赖生成任务提示信息输入所述大模型,得到所述大模型针对所述对象生成的外部依赖资源;
当接收到单元测试框架切换任务时,将框架需求信息、所述单元测试和框架切换任务提示信息输入所述大模型,利用所述大模型将所述单元测试的单元测试框架切换为所述测试需求信息对应的单元测试框架。
8.根据权利要求1所述的方法,所述第一智能辅助任务为代码测试任务,所述第二处理对象为通过测试代码,所述第二智能辅助任务为代码提交任务,所述第二智能辅助结果至少包括所述通过测试代码对应的提交信息;
所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,包括:
将所述通过测试代码和代码提交任务提示信息输入所述大模型,利用所述大模型对所述通过测试代码执行代码提交任务,生成所述通过测试代码对应的提交信息。
9.根据权利要求8所述的方法,还包括:
将所述通过测试代码和预设代码风格配置信息输入所述大模型,利用所述大模型检测所述通过测试代码是否符合所述代码风格配置信息,如果不符合,则得到所述大模型针对所述通过测试代码生成的、符合所述预设代码风格配置信息的代码。
10.根据权利要求1所述的方法,所述第一智能辅助任务为代码提交任务,所述第二处理对象为已提交代码,所述第二智能辅助任务为代码审核任务,所述第二智能辅助结果至少包括所述已提交代码对应的代码优化结果;
所述将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果,包括:
将所述已提交代码、所述已提交代码的审核评价信息和代码审核任务提示信息输入所述大模型,利用所述大模型生成所述已提交代码对应的代码优化结果。
11.根据权利要求10所述的方法,所述第二智能辅助任务还包括:主线描述信息生成任务;
所述方法还包括:
当任一项目的多个分支的代码审核通过时,将所述多个分支的代码、所述代码对应的提交信息和主线描述信息生成任务提示信息输入所述大模型,利用所述大模型生成所述项目的主线描述信息。
12.一种软件开发方法,应用于端侧设备,包括:
向云侧设备发送第一智能辅助请求,使所述云侧设备接收第一智能辅助请求,所述第一智能辅助请求携带第一智能辅助任务, 所述第一智能辅助任务为需求管理任务、代码生成任务、代码测试任务、代码提交任务中的至少一种,确定所述第一智能辅助任务对应的第一处理对象,将所述第一处理对象和所述第一智能辅助任务对应的提示信息输入大模型,利用所述大模型对所述第一处理对象执行所述第一智能辅助任务,得到所述大模型生成的第一智能辅助结果;
接收所述云侧设备返回的第一智能辅助结果;
向所述云侧设备发送第二智能辅助请求,使所述云侧设备接收第二智能辅助请求,所述第二智能辅助请求携带第二智能辅助任务,所述第二智能辅助任务为代码生成任务、代码测试任务、代码提交任务、代码审核任务中的至少一种,确定所述第二智能辅助任务对应的第二处理对象,在所述第二智能辅助任务是所述第一智能辅助任务的下游任务的情况下,所述第二处理对象根据所述第一智能辅助结果得到,将所述第二处理对象和所述第二智能辅助任务对应的提示信息输入所述大模型,利用所述大模型对所述第二处理对象执行所述第二智能辅助任务,得到所述大模型生成的第二智能辅助结果;
接收所述云侧设备返回的第二智能辅助结果。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至12任意一项所述软件开发方法的步骤。
14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至12任意一项所述软件开发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410021616.0A CN117539438B (zh) | 2024-01-05 | 2024-01-05 | 软件开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410021616.0A CN117539438B (zh) | 2024-01-05 | 2024-01-05 | 软件开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117539438A CN117539438A (zh) | 2024-02-09 |
CN117539438B true CN117539438B (zh) | 2024-04-30 |
Family
ID=89794157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410021616.0A Active CN117539438B (zh) | 2024-01-05 | 2024-01-05 | 软件开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539438B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022267310A1 (zh) * | 2021-06-22 | 2022-12-29 | 北京百度网讯科技有限公司 | 软件开发的辅助处理方法、设备、存储介质及程序产品 |
CN116991990A (zh) * | 2023-07-04 | 2023-11-03 | 上海识装信息科技有限公司 | 基于aigc的程序开发辅助方法、存储介质及设备 |
CN117008923A (zh) * | 2023-09-28 | 2023-11-07 | 北京智源人工智能研究院 | 基于ai大模型的代码生成和编译部署方法、平台和设备 |
CN117032654A (zh) * | 2023-08-24 | 2023-11-10 | 海南云舟网络科技有限公司 | 一种基于云计算的软件开发智能辅助方法及系统 |
CN117193964A (zh) * | 2023-08-04 | 2023-12-08 | 阿里巴巴(中国)有限公司 | 任务处理方法以及自动问答方法 |
CN117289841A (zh) * | 2023-11-24 | 2023-12-26 | 浙江口碑网络技术有限公司 | 基于大语言模型的交互方法和装置、存储介质和电子设备 |
CN117289938A (zh) * | 2023-03-28 | 2023-12-26 | 南通七和互联网络科技有限公司 | 一种软件开发用智能辅助系统 |
-
2024
- 2024-01-05 CN CN202410021616.0A patent/CN117539438B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022267310A1 (zh) * | 2021-06-22 | 2022-12-29 | 北京百度网讯科技有限公司 | 软件开发的辅助处理方法、设备、存储介质及程序产品 |
CN117289938A (zh) * | 2023-03-28 | 2023-12-26 | 南通七和互联网络科技有限公司 | 一种软件开发用智能辅助系统 |
CN116991990A (zh) * | 2023-07-04 | 2023-11-03 | 上海识装信息科技有限公司 | 基于aigc的程序开发辅助方法、存储介质及设备 |
CN117193964A (zh) * | 2023-08-04 | 2023-12-08 | 阿里巴巴(中国)有限公司 | 任务处理方法以及自动问答方法 |
CN117032654A (zh) * | 2023-08-24 | 2023-11-10 | 海南云舟网络科技有限公司 | 一种基于云计算的软件开发智能辅助方法及系统 |
CN117008923A (zh) * | 2023-09-28 | 2023-11-07 | 北京智源人工智能研究院 | 基于ai大模型的代码生成和编译部署方法、平台和设备 |
CN117289841A (zh) * | 2023-11-24 | 2023-12-26 | 浙江口碑网络技术有限公司 | 基于大语言模型的交互方法和装置、存储介质和电子设备 |
Non-Patent Citations (3)
Title |
---|
Application of Large Language Models to Software Engineering Tasks: Opportunities, Risks, and Implications;Ipek Ozkaya;IEEE Software;20230426;第40卷(第3期);全文 * |
人工智能计算与数据服务平台的研究与应用;王彦棡;王珏;曹荣强;;数据与计算发展前沿;20191215(06);全文 * |
大模型: 基于自然交互的人机协同软件开发与演化工具带来的挑战;李戈 等;软件学报;20230830;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117539438A (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430323B2 (en) | Touchless testing platform | |
Paiva et al. | Accessibility and software engineering processes: A systematic literature review | |
Brusilovsky et al. | Layered evaluation of adaptive learning systems | |
Younas et al. | Elicitation of nonfunctional requirements in agile development using cloud computing environment | |
Cummaudo et al. | Interpreting cloud computer vision pain-points: A mining study of Stack Overflow | |
US20200278842A1 (en) | Systems and Methods for Mining Software Repositories using Bots | |
CN108062276A (zh) | 测试用例的生成方法及装置和测试报告的生成方法及装置 | |
Liu et al. | Secure deep learning engineering: A road towards quality assurance of intelligent systems | |
Rameesa et al. | Analysis of Software Industry: Natural Language Processing Approach | |
CN117371950A (zh) | 机器人流程自动化方法、装置、一体机和存储介质 | |
CN117312564A (zh) | 文本分类方法、分类装置、电子设备和存储介质 | |
CN117130593A (zh) | 代码处理方法、系统和电子设备 | |
CN117539438B (zh) | 软件开发方法 | |
CN117193964A (zh) | 任务处理方法以及自动问答方法 | |
CN110334014A (zh) | 用于用户界面自动化测试方法、系统、服务器及存储介质 | |
Bartusevics | Automation of Continuous Services: What Companies of Latvia Says About It? | |
Tebes et al. | A Situation-aware Scenario-based Testing Strategy | |
CN117648079B (zh) | 任务处理、代码补全、代码问答及任务处理模型训练方法 | |
CN112631930B (zh) | 动态系统测试方法及相关装置 | |
CN118466911B (zh) | 一种推荐方法、装置、设备及存储介质 | |
CN118312212B (zh) | 任务测试方法、代码注释方法、任务测试平台、设备 | |
Yun et al. | The social media macroscope | |
Cai et al. | Towards learning visual semantics | |
CN118051429A (zh) | 测试处理方法及系统 | |
CN118363601A (zh) | 任务处理方法、代码补全方法、代码处理模型训练方法、基于代码处理模型的信息处理方法及模型训练平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |