System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 代码推荐方法、装置、设备及计算机可读存储介质制造方法及图纸_技高网

代码推荐方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:44967086 阅读:2 留言:0更新日期:2025-04-12 01:39
本申请公开了代码推荐方法、装置、设备及计算机可读存储介质,属于人工智能技术领域。方法包括:获取代码生成信息,代码生成信息用于描述代码的编程任务;根据代码生成信息生成至少一个候选代码;从至少一个候选代码中确定待修复的候选代码,待修复的候选代码包括错误的参数,错误的参数不满足编程任务对应的编程语言的语法约束或语义约束中的至少一种;对待修复的候选代码包括的错误的参数进行修复,得到修复后的候选代码,推荐修复后的候选代码与至少一个候选代码中未修复的候选代码,未修复的候选代码与待修复的候选代码不同。在生成候选代码后,会对存在错误的候选代码进行自动修复,提高了推荐的代码的准确率。

【技术实现步骤摘要】

本申请涉及人工智能,特别涉及代码推荐方法、装置、设备及计算机可读存储介质


技术介绍

1、随着人工智能(artificial intelligence,ai)技术的发展,人工智能可以在越来越多的应用场景中发挥作用。以ai领域的代码大语言模型(code large language model,code llm)为例,在项目开发阶段,开发对象输入项目涉及的代码需求,code llm根据输入的代码需求生成代码,并向开发对象推荐生成的代码,以使开发对象根据获取的代码继续进行项目开发。


技术实现思路

1、本申请提供了一种代码推荐方法、装置、设备及计算机可读存储介质,用于推荐代码以满足编码需求,技术方案如下:

2、第一方面,提供了一种代码推荐方法,方法包括:获取代码生成信息,代码生成信息用于描述代码的编程任务;根据代码生成信息生成至少一个候选代码,至少一个候选代码满足代码生成信息描述的编程任务;从至少一个候选代码中确定待修复的候选代码,待修复的候选代码包括错误的参数,错误的参数不满足编程任务对应的编程语言的语法约束或语义约束中的至少一种;对待修复的候选代码包括的错误的参数进行修复,得到修复后的候选代码,推荐代码生成结果,代码生成结果包括修复后的候选代码与至少一个候选代码中未修复的候选代码,未修复的候选代码与待修复的候选代码不同。

3、该方法中,在生成候选代码后,会对候选代码中存在错误的候选代码也即待修复的候选代码进行自动修复,所提供的是修复后的候选代码以及未修复且与待修复的候选代码不同的代码,通过将待修复的候选代码修复成准确率更高的代码,提高了生成的代码的准确率,由于编程任务中使用的代码为准确的代码,代码的准确率越高,越有可能在编程任务中利用该代码,通过提高生成的代码的准确率进一步提升了在编程任务中利用所生成的代码的可能性。

4、在一种可能的实现方式中,从至少一个候选代码中确定待修复的候选代码,包括:对至少一个候选代码中的各个候选代码进行检测,得到各个候选代码的检测结果;在至少一个候选代码中的任一候选代码的检测结果指示任一候选代码存在错误的情况下,确定任一候选代码的错误类型,得到存在错误的各个候选代码的错误类型;匹配存在错误的各个候选代码的错误类型和参考类型,根据各个候选代码的匹配结果从存在错误的候选代码中确定待修复的候选代码,参考类型指示支持修复的错误类型。在检测出存在错误的候选代码后,还会对候选代码的错误类型进行判断,以确定候选代码的错误类型是否能够修复,避免对无法修复的错误类型的候选代码执行修复操作,造成无效工作,资源浪费。并且,通过参考类型的匹配即可实现错误类型的筛选,筛选过程简单,效率高。

5、在一种可能的实现方式中,对至少一个候选代码中的各个候选代码进行检测,包括如下至少一种:对于任一候选代码,对任一候选代码进行语法解析,根据解析结果确定任一候选代码是否存在语法错误;或者,在任一候选代码的编译环境运行任一候选代码,根据运行结果确定任一候选代码是否存在运行错误。该方法由于不限定对候选代码的检测方式,可以检测多种错误情况,对于包括错误的参数的候选代码,无论是存在语法错误还是存在运行错误,均可以采用不同的检测方法检测得到,灵活度高,通用度广。

6、在一种可能的实现方式中,根据各个候选代码的匹配结果从存在错误的候选代码中确定待修复的候选代码,包括:对于存在错误的任一候选代码,在任一候选代码的错误类型和参考类型匹配成功的情况下,根据任一候选代码的错误类型确定任一候选代码对应的修复方式;在任一候选代码的修复方式满足修复条件的情况下,确定任一候选代码为待修复的候选代码。通过限定修复条件,修复满足修复条件的候选代码,有效控制进行修复的候选代码的数量,提高代码修复效率,进一步缩短了推荐代码生成结果的等待时间。

7、在一种可能的实现方式中,参考类型包括未定义参数、代码类型错误或调用未定义方法中的至少一种。该方法不限定支持修复的错误类型,通用度广。

8、在一种可能的实现方式中,对待修复的候选代码包括的错误的参数进行修复,得到修复后的候选代码,包括:获取待修复的候选代码对应的参考代码,参考代码与待修复的候选代码的代码相似度大于相似度阈值;对参考代码和待修复的候选代码进行匹配,根据匹配结果从参考代码中选择参数替换待修复的候选代码所包括的错误的参数,得到修复后的候选代码。通过相似的参考代码之间的参数替换即可实现候选代码的修复,修复过程操作复杂度低,修复效率高。

9、在一种可能的实现方式中,获取待修复的候选代码对应的参考代码,包括:获取代码知识库,代码知识库包括多个原始代码;基于待修复的候选代码从代码知识库包括的多个原始代码中检索得到参考代码。通过在代码知识库中进行代码检索,即可实现参考代码的获取,获取过程简单,操作时间短。

10、在一种可能的实现方式中,获取代码知识库,包括:获取多个原始代码和各个原始代码对应的构建信息;根据多个原始代码和各个原始代码的构建信息确定各个原始代码的代码特征;根据各个原始代码的代码特征和各个原始代码之间的使用影响关系确定各个原始代码之间的对应关系;根据各个原始代码之间的对应关系构建包括多个原始代码的代码知识库。基于各个原始代码之间的对应关系进行原始代码的存储,后续在代码检索过程中,可以基于构建的对应关系进行相似代码的快速定位,提高了代码检索效率。

11、在一种可能的实现方式中,推荐代码生成结果,包括:确定修复后的候选代码对应的代码修复位置,对代码修复位置进行标识;推荐标识后的修复后的候选代码和未修复的候选代码。通过标识代码修复位置,便于对候选代码的修复情况进行快速了解,进而根据修复情况判断修复后的候选代码是否满足代码生成需求,提高了候选代码的判断效率。

12、在一种可能的实现方式中,推荐代码生成结果之后,还包括:获取修复后的候选代码对应的至少一个错误修复方式;推荐修复后的候选代码对应的至少一个错误修复方式,至少一个错误修复方式用于辅助修正修复后的候选代码对应的待修复的候选代码。通过推荐至少一个错误修复方式以供选择,从而辅助修正待修复的候选代码,缩短了候选代码的修正时间,提高效率。

13、在一种可能的实现方式中,错误的参数基于参考代码修复,对待修复的候选代码包括的错误的参数进行修复之前,还包括:获取对推荐的第一代码修改得到的修改代码,第一代码在推荐之前基于第二代码修复得到;提取修改代码的修改特征,根据所提取的修改特征更新第二代码,得到参考代码。基于第一代码的修改情况对用于修改第一代码的第二代码进行代码的更新,得到的参考代码更适合编程任务,基于参考代码修复得到的候选代码更适合编程任务。

14、第二方面,提供了一种代码推荐装置,装置包括:获取模块,用于获取代码生成信息,代码生成信息用于描述代码的编程任务;生成模块,用于根据代码生成信息生成至少一个候选代码,至少一个候选代码满足代码生成信息描述的编程任务;确定模块,用于从至少一个候选代码中确定待修复的候选代码,待本文档来自技高网...

【技术保护点】

1.一种代码推荐方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述从所述至少一个候选代码中确定待修复的候选代码,包括:

3.根据权利要求2所述的方法,其特征在于,所述对所述至少一个候选代码中的各个候选代码进行检测,包括如下至少一种:

4.根据权利要求2或3所述的方法,其特征在于,所述根据所述各个候选代码的匹配结果从存在错误的候选代码中确定待修复的候选代码,包括:

5.根据权利要求2-4任一所述的方法,其特征在于,所述参考类型包括未定义参数、代码类型错误或调用未定义方法中的至少一种。

6.根据权利要求1-5任一所述的方法,其特征在于,所述对所述待修复的候选代码包括的错误的参数进行修复,得到修复后的候选代码,包括:

7.根据权利要求6所述的方法,其特征在于,所述获取所述待修复的候选代码对应的参考代码,包括:

8.根据权利要求7所述的方法,其特征在于,所述获取代码知识库,包括:

9.根据权利要求1-8任一所述的方法,其特征在于,所述推荐代码生成结果,包括:>

10.根据权利要求1-9任一所述的方法,其特征在于,所述推荐代码生成结果之后,还包括:

11.根据权利要求1-10任一所述的方法,其特征在于,所述错误的参数基于参考代码修复,所述对所述待修复的候选代码包括的错误的参数进行修复之前,还包括:

12.一种代码推荐装置,其特征在于,所述装置包括:

13.根据权利要求12所述的装置,其特征在于,所述确定模块,用于对所述至少一个候选代码中的各个候选代码进行检测,得到所述各个候选代码的检测结果;在所述至少一个候选代码中的任一候选代码的检测结果指示所述任一候选代码存在错误的情况下,确定所述任一候选代码的错误类型,得到存在错误的各个候选代码的错误类型;匹配存在错误的各个候选代码的错误类型和参考类型,根据所述各个候选代码的匹配结果从存在错误的候选代码中确定待修复的候选代码,所述参考类型指示支持修复的错误类型。

14.根据权利要求13所述的装置,其特征在于,所述确定模块,用于执行如下至少一种,对于任一候选代码,对所述任一候选代码进行语法解析,根据解析结果确定所述任一候选代码是否存在语法错误;或者,在所述任一候选代码的编译环境运行所述任一候选代码,根据运行结果确定所述任一候选代码是否存在运行错误。

15.根据权利要求13或14所述的装置,其特征在于,所述确定模块,用于对于存在错误的任一候选代码,在所述任一候选代码的错误类型和所述参考类型匹配成功的情况下,根据所述任一候选代码的错误类型确定所述任一候选代码对应的修复方式;在所述任一候选代码的修复方式满足修复条件的情况下,确定所述任一候选代码为所述待修复的候选代码。

16.根据权利要求13-15任一所述的装置,其特征在于,所述参考类型包括未定义参数、代码类型错误或调用未定义方法中的至少一种。

17.根据权利要求12-16任一所述的装置,其特征在于,所述推荐模块,用于获取所述待修复的候选代码对应的参考代码,所述参考代码与所述待修复的候选代码的代码相似度大于相似度阈值;对所述参考代码和所述待修复的候选代码进行匹配,根据匹配结果从所述参考代码中选择参数替换所述待修复的候选代码所包括的错误的参数,得到所述修复后的候选代码。

18.根据权利要求17所述的装置,其特征在于,所述推荐模块,用于获取代码知识库,所述代码知识库包括多个原始代码;基于所述待修复的候选代码从所述代码知识库包括的多个原始代码中检索得到所述参考代码。

19.根据权利要求18所述的装置,其特征在于,所述推荐模块,用于获取多个原始代码和各个原始代码对应的构建信息;根据所述多个原始代码和所述各个原始代码的构建信息确定所述各个原始代码的代码特征;根据所述各个原始代码的代码特征和所述各个原始代码之间的使用影响关系确定所述各个原始代码之间的对应关系;根据所述各个原始代码之间的对应关系构建包括所述多个原始代码的代码知识库。

20.根据权利要求12-19任一所述的装置,其特征在于,所述推荐模块,用于确定所述修复后的候选代码对应的代码修复位置,对所述代码修复位置进行标识;推荐标识后的所述修复后的候选代码和所述未修复的候选代码。

21.根据权利要求12-20任一所述的装置,其特征在于,所述获取模块,还用于获取所述修复后的候选代码对应的至少一个错误修复方式;所述推荐模块,还用于推荐所述修复后的候选代码对应的至少一个错误修复方式,所述至少一个错误修复方式用于辅助修正所述修复后的候选代码对应的待修复的候选...

【技术特征摘要】

1.一种代码推荐方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述从所述至少一个候选代码中确定待修复的候选代码,包括:

3.根据权利要求2所述的方法,其特征在于,所述对所述至少一个候选代码中的各个候选代码进行检测,包括如下至少一种:

4.根据权利要求2或3所述的方法,其特征在于,所述根据所述各个候选代码的匹配结果从存在错误的候选代码中确定待修复的候选代码,包括:

5.根据权利要求2-4任一所述的方法,其特征在于,所述参考类型包括未定义参数、代码类型错误或调用未定义方法中的至少一种。

6.根据权利要求1-5任一所述的方法,其特征在于,所述对所述待修复的候选代码包括的错误的参数进行修复,得到修复后的候选代码,包括:

7.根据权利要求6所述的方法,其特征在于,所述获取所述待修复的候选代码对应的参考代码,包括:

8.根据权利要求7所述的方法,其特征在于,所述获取代码知识库,包括:

9.根据权利要求1-8任一所述的方法,其特征在于,所述推荐代码生成结果,包括:

10.根据权利要求1-9任一所述的方法,其特征在于,所述推荐代码生成结果之后,还包括:

11.根据权利要求1-10任一所述的方法,其特征在于,所述错误的参数基于参考代码修复,所述对所述待修复的候选代码包括的错误的参数进行修复之前,还包括:

12.一种代码推荐装置,其特征在于,所述装置包括:

13.根据权利要求12所述的装置,其特征在于,所述确定模块,用于对所述至少一个候选代码中的各个候选代码进行检测,得到所述各个候选代码的检测结果;在所述至少一个候选代码中的任一候选代码的检测结果指示所述任一候选代码存在错误的情况下,确定所述任一候选代码的错误类型,得到存在错误的各个候选代码的错误类型;匹配存在错误的各个候选代码的错误类型和参考类型,根据所述各个候选代码的匹配结果从存在错误的候选代码中确定待修复的候选代码,所述参考类型指示支持修复的错误类型。

14.根据权利要求13所述的装置,其特征在于,所述确定模块,用于执行如下至少一种,对于任一候选代码,对所述任一候选代码进行语法解析,根据解析结果确定所述任一候选代码是否存在语法错误;或者,在所述任一候选代码的编译环境运行所述任一候选代码,根据运行结果确定所述任一候选代码是否存在运行错误。

15.根据权利要求13或14所述的装置,其特征在于,所述确定模块,用于对于存在错误的任一候选代码,在所述任一候选代码的错误类型和所述参考类型匹配成功的情况下,根据所述任一候选代码的错误类型确定所述任一候选代码对应的修复方式;在所述任一候选代码的修复方式满足修复条件的情况下,确定所述任一候选代码为所述待修复的候选代码。

16.根据权利要求13-15任一所述的装置...

【专利技术属性】
技术研发人员:周建祎吴添勇申博
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1