本说明书一个或多个实施例涉及计算机,尤其涉及一种代码生成方法及装置。
背景技术:
1、代码生成是一种利用机器学习或人工智能技术自动生成代码的方法,其中,利用机器学习的代码生成主要是利用机器学习或深度学习技术来学习代码的结构和功能,并根据输入的指令或需求自动生成相应的代码,其中,这里的代码例如可以为受隐私保护的代码。上述方法可以大大减轻程序开发人员的工作负担,提高代码开发的效率和质量。
2、随着生成式大模型的兴起,利用生成式大模型生成程序代码,以提升研发效率也越来越受到重视。因此,需要提供一种更准确的代码生成方案。
技术实现思路
1、本说明书一个或多个实施例描述了一种代码生成方法,可以提高所生成的代码的准确性。
2、第一方面,提供了一种代码生成方法,包括:
3、获取用户的查询文本,其至少指示代码实现的功能;
4、根据所述查询文本,查询目标代码库,得到与所述查询文本相匹配的若干段参考代码;所述目标代码库中记录有对应于不同代码功能的多段程序代码;
5、基于所述查询文本和所述若干段参考代码构建第一提示文本,所述第一提示文本指示,基于所述若干段参考代码生成所述查询文本对应的程序代码;
6、将所述第一提示文本输入预先训练的生成式大模型,得到针对所述查询文本生成的目标代码。
7、第二方面,提供了一种代码生成装置,包括:
8、获取单元,用于获取用户的查询文本,其至少指示代码实现的功能;
9、查询单元,用于根据所述查询文本,查询目标代码库,得到与所述查询文本相匹配的若干段参考代码;所述目标代码库中记录有对应于不同代码功能的多段程序代码;
10、构建单元,用于基于所述查询文本和所述若干段参考代码构建第一提示文本,所述第一提示文本指示,基于所述若干段参考代码生成所述查询文本对应的程序代码;
11、输入单元,用于将所述第一提示文本输入预先训练的生成式大模型,得到针对所述查询文本生成的目标代码。
12、第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
13、第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一方面的方法。
14、本说明书一个或多个实施例提供的代码生成方法,先基于用户的描述代码功能的查询文本,查询目标代码库,以获取与查询文本相匹配的若干段参考代码。之后,将查询文本和获取的若干段参考代码均输入生成式大模型,得到针对查询文本生成的目标代码。也就是说,本方案中,在利用生成式大模型基于查询文本生成程序代码时,可以为生成式大模型提供基于查询文本获取的参考信息,由此可以大大提升所生成的代码的准确性。
1.一种代码生成方法,包括:
2.根据权利要求1所述的方法,其中,所述第一提示文本还指示以下中的一项或多项:
3.根据权利要求1所述的方法,其中,所述生成式大模型通过以下步骤训练得到:
4.根据权利要求1所述的方法,其中,所述获取用户的查询文本,包括:
5.根据权利要求4所述的方法,其中,所述第二提示文本指示以下中的一项或多项:
6.根据权利要求1所述的方法,其中,所述目标代码库中还记录有所述多段程序代码各自的表征向量;
7.根据权利要求6所述的方法,其中,所述目标代码库中还记录有所述多段程序代码各自的其它描述信息;
8.根据权利要求7所述的方法,其中,所述其它描述信息包括以下中的至少一项:
9.根据权利要求7所述的方法,其中,所述确定该k段候选代码各自的指示参考价值的目标打分,包括:
10.根据权利要求6所述的方法,其中,所述表征向量通过以下步骤获得:
11.根据权利要求10所述的方法,其中,所述大语言模型通过以下步骤训练得到:
12.根据权利要求10所述的方法,其中,所述编码器通过以下步骤训练得到:
13.根据权利要求12所述的方法,其中,所述构建各负样本对,包括:
14.根据权利要求10所述的方法,其中,所述基于所述注释部分确定所述第一程序代码的第一描述文本,包括:
15.一种代码生成装置,包括:
16.根据权利要求15所述的装置,还包括:第一训练单元;
17.根据权利要求15所述的装置,其中,所述获取单元具体用于:
18.根据权利要求15所述的装置,其中,所述目标代码库中还记录有所述多段程序代码各自的表征向量;
19.根据权利要求18所述的装置,其中,所述目标代码库中还记录有所述多段程序代码各自的其它描述信息;
20.根据权利要求19所述的装置,其中,所述选取子模块还具体用于:
21.根据权利要求18所述的装置,还包括:
22.根据权利要求21所述的装置,还包括:第二训练单元;
23.根据权利要求21所述的装置,还包括:第三训练单元;
24.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-14中任一项所述的方法。
25.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-14中任一项所述的方法。