CN118113271A - 基于大模型的代码生成方法、系统、终端及介质 - Google Patents
基于大模型的代码生成方法、系统、终端及介质 Download PDFInfo
- Publication number
- CN118113271A CN118113271A CN202410329684.3A CN202410329684A CN118113271A CN 118113271 A CN118113271 A CN 118113271A CN 202410329684 A CN202410329684 A CN 202410329684A CN 118113271 A CN118113271 A CN 118113271A
- Authority
- CN
- China
- Prior art keywords
- code
- target
- interpretation
- target code
- large model
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000001514 detection method Methods 0.000 claims abstract description 22
- 238000012360 testing method Methods 0.000 claims description 39
- 230000011218 segmentation Effects 0.000 claims description 36
- 230000006870 function Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 19
- 230000008439 repair process Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered 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/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于大模型的代码生成方法、系统、终端及介质,该方法包括:将代码需求输入预训练后的大模型进行需求分析,得到需求分析结果;根据需求分析结果生成目标代码,对目标代码进行质量检测;若目标代码质量检测合格,则对目标代码进行代码解读;根据代码解读结果对目标代码进行解读提示,并输出解读提示后的目标代码。本发明实施例,基于需求分析结果能自动生成目标代码,提高了代码生成速度,通过对目标代码进行质量检测,能有效地提高了目标代码的质量,通过对目标代码进行代码解读,方便了用户对目标代码逻辑的解读,方便了用户对目标代码的代码应用。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及一种基于大模型的代码生成方法、系统、终端及介质。
背景技术
目前软件项目都是一个代码量在几十万行甚至更多的大型项目。在软件工程学科的指导下,几乎所有负责人都对软件做了最合理的架构设计,即把应用中的表现层、业务层和数据层进行了分层设计,便于项目的维护和扩展。
为满足各种功能的应用与程序急速增长的需求,对程序的设计与编写的时效性也提出了更高的要求,这就要求以尽量快的速度设计完成程序开发。如何提高程序开发的速度同时保障代码质量成为亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种基于大模型的代码生成方法、系统、终端及介质,以解决提高程序开发的速度同时保障代码质量的问题。
本发明实施例是这样实现的,一种基于大模型的代码生成方法,所述方法包括:
获取用户代码需求,并将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果;
根据所述需求分析结果生成目标代码,并对所述目标代码进行质量检测;
若所述目标代码质量检测合格,则对所述目标代码进行代码解读;
根据所述代码解读结果对所述目标代码进行解读提示,并输出解读提示后的所述目标代码。
优选的,对所述目标代码进行质量检测,包括:
根据所述需求分析结果确定测试用例,并根据所述测试用例对所述目标代码进行单元测试,得到测试结果;
若所述测试结果合格,则判定所述目标代码质量检测合格;
若所述测试结果未合格,则根据所述测试结果确定所述目标代码的错误类型和错误位置;
根据所述错误类型和所述错误位置对所述目标代码进行代码修复。
优选的,对所述目标代码进行代码解读,包括:
对所述目标代码中的代码方法进行方法解读,得到方法功能和方法流程;
对所述目标代码中的代码类进行类解读,得到类结构,所述类结构包括类职责、类属性和所述代码类与所述代码方法之间的关联关系;
根据所述方法功能、所述方法流程和所述类结构生成所述代码解读结果。
优选的,输出解读提示后的所述目标代码之后,还包括:
若接收到项目重构指令,则根据所述项目重构指令确定项目目录结构、项目配置文件和模板代码;
根据所述项目目录结构、所述项目配置文件和所述模板代码构建项目代码框架,并根据所述项目代码框架进行代码重构。
优选的,对所述目标代码进行质量检测之后,还包括::
对所述目标代码进行分割,得到分割代码,并将所述分割代码与注释查询表进行匹配,得到代码注释;
根据所述代码注释对所述分割代码进行注释标记。
优选的,将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果,包括:
根据预训练后的所述大模型对所述代码需求进行分词,得到需求分词,并对所述需求分词进行实体识别,得到实体类型;
根据所述实体类型确定所述需求分词中的目标分词,并将所述目标分词进行组合,得到组合分词;
根据所述组合分词确定所述需求分析结果。
本发明实施例的另一目的在于提供一种基于大模型的代码生成系统,所述系统包括:
需求分析模块,用于获取用户代码需求,并将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果;
质量检测模块,用于根据所述需求分析结果生成目标代码,并对所述目标代码进行质量检测;
代码解读模块,用于若所述目标代码质量检测合格,则对所述目标代码进行代码解读;
代码输出模块,用于根据所述代码解读结果对所述目标代码进行解读提示,并输出解读提示后的所述目标代码。
本发明实施例的另一目的在于提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明实施例,通过将代码需求输入预训练后的大模型进行需求分析,能有效地识别到用户对代码的功能需求,基于需求分析结果能自动生成目标代码,提高了代码生成速度,通过对目标代码进行质量检测,能有效地提高了目标代码的质量,通过对目标代码进行代码解读,方便了用户对目标代码逻辑的解读,方便了用户对目标代码的代码应用。
附图说明
图1是本发明第一实施例提供的基于大模型的代码生成方法的流程图;
图2是本发明第二实施例提供的基于大模型的代码生成系统的结构示意图;
图3是本发明第二实施例提供的基于大模型的代码生成系统的功能示意图;
图4是本发明第三实施例提供的终端设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
请参阅图1,是本发明第一实施例提供的基于大模型的代码生成方法的流程图,该基于大模型的代码生成方法可以采用插件的方式应用于任一设备或系统,该基于大模型的代码生成方法包括步骤:
步骤S10,获取用户代码需求,并将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果;
其中,用户代码需求可以采用语音或文字的方式进行传输,例如,将文字描述的用户代码需求“生成一个用于管理用户信息的类”输入预训练后的大模型进行需求分析,得到用户代码需求的需求分析结果。
可选的,将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果,包括:
根据预训练后的所述大模型对所述代码需求进行分词,得到需求分词,并对所述需求分词进行实体识别,得到实体类型;其中,通过对代码需求进行分词,方便了对需求分词的实体识别操作,通过对需求分词进行实体识别,能有效地确定各需求分词的实体类型;
根据所述实体类型确定所述需求分词中的目标分词,并将所述目标分词进行组合,得到组合分词;其中,将需求分词的实体类型与预设类型进行匹配,当需求分词的实体类型与预设类型相匹配时,则将该需求分词确定为目标分词,该预设类型可以根据需求进行设置;
根据所述组合分词确定所述需求分析结果;其中,将组合分词与需求查询表进行匹配,得到需求分析结果,该需求查询表中存储有不同组合分词与对应需求分析结果之间的对应关系。
进一步地,该步骤中,获取用户代码需求之前,还包括:
将模型训练数据输入大模型进行需求分析,得到样本分析结果,基于样本分析结果生成目标代码,基于目标代码和模型训练数据对应的样本标识数据确定模型损失,基于模型损失对大模型进行参数更新,直至大模型收敛,得到预训练后的大模型。
步骤S20,根据所述需求分析结果生成目标代码,并对所述目标代码进行质量检测;
其中,基于需求分析结果在代码数据库中进行代码的查询,得到目标代码,通过对目标代码进行质量检测,以检测生成的目标代码是否存在错误,保障了目标代码的质量。
该步骤中,基于需求分析结果能自动生成用户代码需求对应的类框架(目标代码),包括类属性和基本方法(类方法),用户代码需求可以为用户指定的特定功能的描述或签名,例如,从数据库中检索数据或实现一个排序算法。
可选的,对所述目标代码进行质量检测,包括:
根据所述需求分析结果确定测试用例,并根据所述测试用例对所述目标代码进行单元测试,得到测试结果;其中,将需求分析结果与用例库进行匹配,得到测试用例,用例库中存储有不同需求分析结果与对应测试用例之间的对应关系,通过对目标代码进行单元测试,能有效地检测目标代码的准确性;
若所述测试结果合格,则判定所述目标代码质量检测合格;
若所述测试结果未合格,则根据所述测试结果确定所述目标代码的错误类型和错误位置;
根据所述错误类型和所述错误位置对所述目标代码进行代码修复;
其中,当目标代码发生错误时,基于测试结果能有效地识别到错误类型、错误位置,并给出原因分析,基于分析结果提出修复建议并自动生成修复代码,也可能直接修改代码以纠正错误,进一步提高了目标代码的质量。通过对目标代码进行单元检测和代码修复,降低了程序员解决问题的时间,对错误的代码可以快速定位问题,并可以快速给出修复建议。
进一步地,该步骤中,还可以基于漏洞扫描工具对目标代码进行漏洞扫描和修复,扫描目标代码以识别安全漏洞,生成并应用修补程序来避免潜在的安全风险,保证了目标代码的安全性。
更进一步地,对所述目标代码进行质量检测之后,还包括:对所述目标代码进行分割,得到分割代码,将所述分割代码与注释查询表进行匹配,得到代码注释,并根据所述代码注释对所述分割代码进行注释标记;其中,通过对目标代码进行注释标记,能有效地对目标代码进行代码注释,用于解释代码设计意图、复杂算法的步骤或者方法的输入输出等,该步骤中,将目标代码的代码标识与注释数据库进行匹配,得到注释信息,基于注释信息对目标代码进行注释标记。
步骤S30,若所述目标代码质量检测合格,则对所述目标代码进行代码解读;
其中,通过对目标代码进行代码解读,能有效地对目标代码进行方法解读、类解读、项目解读各流程解读等,方便了用户对目标代码的理解。
可选的,对所述目标代码进行代码解读,包括:
对所述目标代码中的代码方法进行方法解读,得到方法功能和方法流程;
对所述目标代码中的代码类进行类解读,得到类结构,并根据所述方法功能、所述方法流程和所述类结构生成所述代码解读结果;
其中,方法解读用于分析解释代码方法或给定方法的功能和工作流程,如给出伪代码或者用自然语言生成高级描述,类解读用于解释代码类的结构,类结构包括类职责、类属性和代码类与代码方法之间的关联关系,项目解读用于对整个项目代码结构和项目功能模块之间的关系进行解析和说明,可以帮助用户快速了解项目代码架构,流程解读用于分析项目中的特定工作流或业务流程,如某个功能点如何被实现和交互,或主要流程的内容。
步骤S40,根据所述代码解读结果对所述目标代码进行解读提示,并输出解读提示后的所述目标代码;
其中,通过代码解读结果对目标代码进行解读提示,能有效地帮助用户快速熟悉目标代码及背后隐含逻辑,深入理解目标代码的语义,不仅仅是表面结构,并能够以更易理解的方式传展示给开发者。
可选的,本实施例中,输出解读提示后的所述目标代码之后,还包括::
若接收到项目重构指令,则根据所述项目重构指令确定项目目录结构、项目配置文件和模板代码;
根据所述项目目录结构、所述项目配置文件和所述模板代码构建项目代码框架,并根据所述项目代码框架进行代码重构;
其中,通过分析现有的代码库,根据软件设计原则(例如,SOLID原则)和软件构建模式(例如,MVC框架、GOF框架等),提出并实施重构计划,以提高代码质量和可维护性。该步骤中,根据项目重构指令,生成一个适合的项目框架或基础架构,主要包括目录结构、配置文件,甚至基本的模板代码等。通过对项目代码框架进行代码重构,能够全面分析项目代码的组织结构和设计模式,以及对项目可维护性、扩展性的影响,并执行复杂的重构任务,帮助开发人员快速编写优雅高性能的代码。
本实施例中,通过将代码需求输入预训练后的大模型进行需求分析,能有效地识别到用户对代码的功能需求,基于需求分析结果能自动生成目标代码,提高了代码生成速度,通过对目标代码进行质量检测,能有效地提高了目标代码的质量,通过对目标代码进行代码解读,方便了用户对目标代码逻辑的解读,方便了用户对目标代码的代码应用。
实施例二
请参阅图2,是本发明第二实施例提供的基于大模型的代码生成系统100的结构示意图,包括:
需求分析模块10,用于获取用户代码需求,并将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果。
可选的,需求分析模块10还用于:根据预训练后的所述大模型对所述代码需求进行分词,得到需求分词,并对所述需求分词进行实体识别,得到实体类型;
根据所述实体类型确定所述需求分词中的目标分词,并将所述目标分词进行组合,得到组合分词;
根据所述组合分词确定所述需求分析结果。
质量检测模块11,用于根据所述需求分析结果生成目标代码,并对所述目标代码进行质量检测。
可选的,质量检测模块11还用于:根据所述需求分析结果确定测试用例,并根据所述测试用例对所述目标代码进行单元测试,得到测试结果;
若所述测试结果合格,则判定所述目标代码质量检测合格;
若所述测试结果未合格,则根据所述测试结果确定所述目标代码的错误类型和错误位置;
根据所述错误类型和所述错误位置对所述目标代码进行代码修复。
代码解读模块12,用于若所述目标代码质量检测合格,则对所述目标代码进行代码解读。
可选的,代码解读模块12还用于:对所述目标代码中的代码方法进行方法解读,得到方法功能和方法流程;
对所述目标代码中的代码类进行类解读,得到类结构,所述类结构包括类职责、类属性和所述代码类与所述代码方法之间的关联关系;
根据所述方法功能、所述方法流程和所述类结构生成所述代码解读结果。
进一步地,代码解读模块12还用于:对所述目标代码进行分割,得到分割代码,并将所述分割代码与注释查询表进行匹配,得到代码注释;
根据所述代码注释对所述分割代码进行注释标记。
代码输出模块13,用于根据所述代码解读结果对所述目标代码进行解读提示,并输出解读提示后的所述目标代码。
可选的,代码输出模块13还用于:若接收到项目重构指令,则根据所述项目重构指令确定项目目录结构、项目配置文件和模板代码;
根据所述项目目录结构、所述项目配置文件和所述模板代码构建项目代码框架,并根据所述项目代码框架进行代码重构。
本实施例中,基于大模型的代码生成系统100可以采用插件工具的方式,集成在开发工具中,程序员生成代码后直接可以在编辑器的使用,常用工具如:idea、pycharm、Eclise、VsCode等。
请参阅图3,基于大模型的代码生成系统100的功能包括:
1.智能生成功能:
类生成:用户只需提供一个简单的描述,例如“生成一个用于管理用户信息的类”,插件工具则能自动生成相应的类框架,包括类的属性和基本方法(如构造函数、getter和setter等)。
方法生成:在用户提供特定的功能描述或签名后,插件工具能自动生成满足需求的方法实现代码,比如从数据库中检索数据或实现一个排序算法。
注释生成:基于现有代码逻辑,自动生成清晰的代码注释,用于解释代码设计意图、复杂算法的步骤或者方法的输入输出等。
智能生成功能,能准确理解用户的需求,生成符合编程惯例和最佳实践的代码,同时确保代码的可读性和可维护性。
2.智能解读功能:
方法解读:分析并解释给定方法的功能和工作流程,如给出伪代码或者用自然语言生成高级描述。
类解读:解释类的结构,包括其职责、属性、方法和类之间的关系。
项目解读:对整个项目结构和模块之间的关系进行解析和说明,可以帮助新人快速了解项目架构。
流程解读:分析项目中的特定工作流或业务流程,如某个功能点如何被实现和交互的,主要流程是怎样等。
智能解读功能,主要帮助程序员快速熟悉代码及背后隐含逻辑。深入理解代码的语义,不仅仅是表面结构,并能够以更易理解的方式传展示给开发者。
3.智能分析与修复功能:
错误分析:当代码发生错误时,能够识别错误类型、错误位置,并给出原因分析。
错误修复:基于分析结果提出修复建议并自动生成修复代码,也可能直接修改代码以纠正错误,用户可以通过选项进行选择或配置。
算法分析:分析现有算法的时间复杂度、空间复杂度,检测性能瓶颈和潜在改进点。
智能分析与修复功能是深度理解代码的逻辑,降低程序员解决问题的时间,对性较低的代码可以快速定位问题,并可以快速给出修复建议。
虚拟机性能分析功能:用于分析虚拟机的整体性能。
漏洞修复功能:扫描代码以识别安全漏洞,生成并应用修补程序来避免潜在的安全风险。
漏洞修复功能,通过判断、条件分析和推理,不仅要定位问题所在代码并且能提供解决问题的方案,保证代码的健壮性和安全性。
4.智能项目重构功能:
项目代码重构:分析现有代码库,根据软件设计原则(如SOLID)和模式(如MVC、GOF设计模式等),提出并实施重构计划,以提高代码质量和可维护性。
项目框架生成:根据项目要求,生成一个适合的项目框架或基础架构,主要包括目录结构、配置文件,甚至基本的模板代码等。
智能项目重构功能,能够全面分析项目代码的组织结构和设计模式,以及它们对项目可维护性、扩展性的影响,并执行复杂的重构任务,帮助开发人员快速编写优雅高性能的代码。
本实施例中,基于大模型的代码生成系统100中设置有用户界面层(IDE PluginUI)、业务逻辑层(Business Logic Layer)、数据交换层(Data Exchange Layer)、数据处理层(Data Processing Layer)和大模型服务层(Large Model Service Layer)。
用户界面层用于用户与代码生成插件进行交互的前端部分,包括:
设置面板(Configuration Panel):让用户能够自定义插件行为和偏好设置。
命令输入界面(Command Input Interface):允许用户输入特定的代码生成指令或者查询。
交互输出窗口(Interaction Output Window):展示代码生成结果以及任何必要的用户反馈信息。
业务逻辑层包括多个处理模块,是插件的核心,负责实现各种功能:
智能生成管理器(Intelligence Generator Manager):负责管理整个代码生成流程,包括解释用户命令、调度数据处理和与大模型服务层的通信。
智能解读处理器(Analysis Engine Reading Processor):解析用户的输入,将其转换为大模型能够理解的格式,优化代码生成的效率和质量。
错误分析引擎(Error Analysis Engine):负责检测和报告在代码生成过程中可能出现的问题,提供调试信息。
修复建议引擎(Fix Suggester Engine):负责检测出问题的修复代码生成,提供调试信息。
数据交换层是系统的接口部分,负责与外部服务进行数据的发送和接收:
模型服务API通信接口(Model Service API Interface):当使用云服务提供的大模型时,该接口负责与API进行通信。
响应数据处理器(Response Handling Data Adaptor):负责处理来自大模型服务层的响应数据。当推理API返回结果后,响应处理器将接收数据,并执行初步的解析操作,确定接收到的结果是否符合预期的格式和类型。如果检测到任何不一致或错误,可以触发错误处理机制。
数据处理层对输入数据进行解析、格式化和转换,以确保它们能被下游的大模型服务层高效地处理:
代码模板引擎(Code Template Engine):代码模板引擎负责为不同的编程场景提供预设的模板。这些模板可以根据用户需求进行参数化,生成结构化数据格式。
数据格式化工具(Data Parsing Module Format Converters):数据解析模块的作用是将用户输入的自然语言指令或其它非结构化数据转换为结构化的数据格式。确保大模型服务层可以正确理解和处理用户请求。
大模型服务层包括与大型机器学习模型相关的服务:
模型训练基础设施(Pre-trained Large Model):用于训练和优化大模型,保持其最新和最有效。
模型推理API(Large Model Inference):提供一个接口供业务逻辑层调用,执行实时的代码生成任务。
本实施例中,通过将代码需求输入预训练后的大模型进行需求分析,能有效地识别到用户对代码的功能需求,基于需求分析结果能自动生成目标代码,提高了代码生成速度,通过对目标代码进行质量检测,能有效地提高了目标代码的质量,通过对目标代码进行代码解读,方便了用户对目标代码逻辑的解读,方便了用户对目标代码的代码应用。
实施例三
图4是本申请第三实施例提供的一种终端设备2的结构框图。如图4所示,该实施例的终端设备2包括:处理器20、存储器21以及存储在所述存储器21中并可在所述处理器20上运行的计算机程序22,例如基于大模型的代码生成方法的程序。处理器20执行所述计算机程序22时实现上述各个基于大模型的代码生成方法各实施例中的步骤。
示例性的,所述计算机程序22可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器21中,并由所述处理器20执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序22在所述终端设备2中的执行过程。所述终端设备可包括,但不仅限于,处理器20、存储器21。
所称处理器20可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器21可以是所述终端设备2的内部存储单元,例如终端设备2的硬盘或内存。所述存储器21也可以是所述终端设备2的外部存储设备,例如所述终端设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器21还可以既包括所述终端设备2的内部存储单元也包括外部存储设备。所述存储器21用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器21还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于大模型的代码生成方法,其特征在于,所述方法包括:
获取用户代码需求,并将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果;
根据所述需求分析结果生成目标代码,并对所述目标代码进行质量检测;
若所述目标代码质量检测合格,则对所述目标代码进行代码解读;
根据所述代码解读结果对所述目标代码进行解读提示,并输出解读提示后的所述目标代码。
2.如权利要求1所述的基于大模型的代码生成方法,其特征在于,对所述目标代码进行质量检测,包括:
根据所述需求分析结果确定测试用例,并根据所述测试用例对所述目标代码进行单元测试,得到测试结果;
若所述测试结果合格,则判定所述目标代码质量检测合格;
若所述测试结果未合格,则根据所述测试结果确定所述目标代码的错误类型和错误位置;
根据所述错误类型和所述错误位置对所述目标代码进行代码修复。
3.如权利要求1所述的基于大模型的代码生成方法,其特征在于,对所述目标代码进行代码解读,包括:
对所述目标代码中的代码方法进行方法解读,得到方法功能和方法流程;
对所述目标代码中的代码类进行类解读,得到类结构,所述类结构包括类职责、类属性和所述代码类与所述代码方法之间的关联关系;
根据所述方法功能、所述方法流程和所述类结构生成所述代码解读结果。
4.如权利要求1所述的基于大模型的代码生成方法,其特征在于,输出解读提示后的所述目标代码之后,还包括:
若接收到项目重构指令,则根据所述项目重构指令确定项目目录结构、项目配置文件和模板代码;
根据所述项目目录结构、所述项目配置文件和所述模板代码构建项目代码框架,并根据所述项目代码框架进行代码重构。
5.如权利要求1所述的基于大模型的代码生成方法,其特征在于,对所述目标代码进行质量检测之后,还包括:
对所述目标代码进行分割,得到分割代码,并将所述分割代码与注释查询表进行匹配,得到代码注释;
根据所述代码注释对所述分割代码进行注释标记。
6.如权利要求1所述的基于大模型的代码生成方法,其特征在于,将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果,包括:
根据预训练后的所述大模型对所述代码需求进行分词,得到需求分词,并对所述需求分词进行实体识别,得到实体类型;
根据所述实体类型确定所述需求分词中的目标分词,并将所述目标分词进行组合,得到组合分词;
根据所述组合分词确定所述需求分析结果。
7.一种基于大模型的代码生成系统,其特征在于,所述系统包括:
需求分析模块,用于获取用户代码需求,并将所述代码需求输入预训练后的大模型进行需求分析,得到需求分析结果;
质量检测模块,用于根据所述需求分析结果生成目标代码,并对所述目标代码进行质量检测;
代码解读模块,用于若所述目标代码质量检测合格,则对所述目标代码进行代码解读;
代码输出模块,用于根据所述代码解读结果对所述目标代码进行解读提示,并输出解读提示后的所述目标代码。
8.如权利要求7所述的基于大模型的代码生成系统,其特征在于,所述质量检测模块还用于:
根据所述需求分析结果确定测试用例,并根据所述测试用例对所述目标代码进行单元测试,得到测试结果;
若所述测试结果合格,则判定所述目标代码质量检测合格;
若所述测试结果未合格,则根据所述测试结果确定所述目标代码的错误类型和错误位置;
根据所述错误类型和所述错误位置对所述目标代码进行代码修复。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410329684.3A CN118113271A (zh) | 2024-03-21 | 2024-03-21 | 基于大模型的代码生成方法、系统、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410329684.3A CN118113271A (zh) | 2024-03-21 | 2024-03-21 | 基于大模型的代码生成方法、系统、终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118113271A true CN118113271A (zh) | 2024-05-31 |
Family
ID=91212151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410329684.3A Pending CN118113271A (zh) | 2024-03-21 | 2024-03-21 | 基于大模型的代码生成方法、系统、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118113271A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118312212A (zh) * | 2024-06-11 | 2024-07-09 | 阿里巴巴(中国)有限公司 | 任务测试方法、代码注释方法、任务测试平台、设备 |
-
2024
- 2024-03-21 CN CN202410329684.3A patent/CN118113271A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118312212A (zh) * | 2024-06-11 | 2024-07-09 | 阿里巴巴(中国)有限公司 | 任务测试方法、代码注释方法、任务测试平台、设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10830817B2 (en) | Touchless testing platform | |
CN110018955B (zh) | 通过转换手动测试用例来生成自动化测试脚本 | |
Brottier et al. | Metamodel-based test generation for model transformations: an algorithm and a tool | |
US20070006128A1 (en) | Method for evaluating dynamic expressions | |
CN118113271A (zh) | 基于大模型的代码生成方法、系统、终端及介质 | |
EP2557499A1 (en) | A system and method for automatic impact variable analysis and field expansion in mainframe systems | |
CN108459846B (zh) | 软件云定制方法及平台 | |
CN111158656A (zh) | 基于因果树法的测试代码生成方法及装置 | |
CN111143228A (zh) | 基于决策表法的测试代码生成方法及装置 | |
CN114791885A (zh) | 接口测试方法、装置、设备及介质 | |
CN111325031A (zh) | 简历解析方法及装置 | |
CN117113080A (zh) | 数据处理和代码处理方法、装置、一体机和存储介质 | |
CN116560631A (zh) | 一种机器学习模型代码的生成方法及装置 | |
CN114297057A (zh) | 一种自动化测试用例的设计及使用方法 | |
CN112487669A (zh) | 一种核电厂控制逻辑设计验证的系统及方法 | |
RU2364930C2 (ru) | Способ генерации баз знаний для систем верификации программного обеспечения распределенных вычислительных комплексов и устройство для его реализации | |
US12008362B2 (en) | Software development environment | |
CN114756217B (zh) | 基于插件的脚本生成系统 | |
Utomo et al. | Analyzing Sweep Integration in GitHub for AI-Augmented Issue Resolution | |
Yagi et al. | Toward Interactive Optimization of Source Code Differences: An Empirical Study of Its Performance | |
CN118796168A (zh) | Rpa脚本的生成方法、装置、终端设备和存储介质 | |
CN117724686A (zh) | 一种基于xml的设计验证代码可视化生成方法和装置 | |
CN113760690A (zh) | 分析程序接口的方法、装置和计算机设备 | |
CN118779213A (zh) | 测试代码生成方法及计算设备 | |
CN118796203A (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 |