一种代码辅助系统、代码辅助处理方法、装置及电子设备与流程

文档序号:36654607发布日期:2024-01-06 23:41阅读:24来源:国知局
一种代码辅助系统、代码辅助处理方法、装置及电子设备与流程

本技术涉及计算机处理,具体涉及一种代码辅助系统。本技术同时还涉及一种代码辅助处理方法、装置、电子设备及存储介质。


背景技术:

1、随着软件功能不断增加,软件项目规模越来越大,代码量随之更加庞大,一些大型项目的代码量高达几十万行甚至更多。这对软件项目的开发及维护提出了更高挑战。

2、现有技术中,一方面通过设计合理的软件架构、采用优化的开发流程等从多方面降低软件的开发、维护及扩展成本,以适应软件项目代码量急速增长的特征,虽然一定程度上提升了开发效率,但是在保障质量的情况下以尽量快的速度完成软件开发仍然是面临的难题。另一方面通过集成开发环境(integrated development environment,ide)进行代码补全也在一定程度上降低编程者的工作量,提升开发效率;然而,由于软件项目的代码文件语义的复杂性,现有代码ide难以根据对代码的理解进行符合开发团队规范的代码补全或代码生成,仍然存在开发效率低下的问题。

3、因此,如何提高软件开发的速度并保障代码质量是需要解决的问题。

4、在所述背景技术部分公开的上述信息仅用于加强对本技术的背景的理解,

5、因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、本技术实施例提供的代码辅助系统,解决了软件开发的效率较低的问题。

2、本技术实施例提供一种代码辅助系统,包括:开发环境插件层、业务封装层、模型调用层、模型实现层,其中,所述开发环境插件层,包括一个或多个开发环境插件,每个开发环境插件根据使用所述代码辅助系统的开发端用户对应的代码辅助场景定制生成,并通过所述业务封装层提供的后端接口调用所述模型调用层针对所述代码辅助场景提供的大模型服务,所述大模型服务用于基于所述模型实现层实现针对所述代码辅助场景的代码辅助能力,使得所述开发端用户基于所述代码辅助能力进行辅助编码操作;所述业务封装层,获得所述开发环境插件层的任一开发环境插件针对所述业务封装层提供的后端接口的调用请求,根据所述调用请求识别代码辅助场景的信息,根据识别结果调用所述模型调用层提供的大模型服务;所述模型调用层,适配一个或多个代码辅助模型的大模型接口,向所述业务封装层提供所述大模型服务;获取调用所述大模型服务所传入的代码辅助场景的信息,根据所述代码辅助场景的信息选择所述代码辅助模型中的目标模型,调用所述目标模型的大模型接口;所述模型实现层,包括所述一个或多个代码辅助模型,每个代码辅助模型通过对应的大模型接口接收所述模型调用层传递的代码辅助场景的信息,并针对所述代码辅助场景反馈对应的代码辅助信息,使得所述开发端用户基于所述代码辅助信息执行开发活动。

3、可选的,所述多个开发环境插件,包括:第一开发环境插件,根据前端开发端用户对应的第一代码辅助场景的特征生成;第二开发环境插件,根据后端开发端用户对应的第二代码辅助场景的特征生成。

4、可选的,所述业务封装层,还用于:针对每一开发环境插件,统一封装前后端插件api接口,使得开发端用户可使用所述代码辅助系统针对前后端分离的软件项目进行辅助编码操作。

5、可选的,所述根据识别结果调用所述模型调用层提供的大模型服务,包括:根据所述识别结果以及预配置的提示模板生成提示信息;根据所述提示信息调用所述大模型服务;其中,所述识别结果包括所述开发端用户使用所述代码辅助系统过程中的交互上下文的信息。

6、可选的,所述提示模板包括以下信息至少之一:所述代码辅助模型的角色、执行的任务、任务要求、任务说明信息。

7、可选的,所述业务封装层,还用于:确定开发端用户在不同代码辅助场景中调用大模型服务所产生的调用数量;根据所述调用数量以及预设调用限额对大模型服务进行使用限制或降级服务。

8、可选的,所述确定开发端用户在不同代码辅助场景中调用大模型服务所产生的调用数量,包括:在调用日志中记录调用大模型服务的token信息;基于调用日志统计开发端用户对应的大模型服务的token数量,所述token数量用于表征所述调用数量,所述token数量用于针对开发端用户使用大模型服务进行计费处理。

9、可选的,所述业务封装层,具体用于:根据开发端用户的输入信息确定对应的提示类型,所述提示类型表征的使用场景作为所述代码辅助场景;根据所述代码辅助场景的信息以及所述代码辅助场景确定之后所述开发端用户输入的提示内容调用所述大模型服务。

10、可选的,所述根据开发端用户的输入信息识别出所述输入信息匹配到的提示类型,包括:展示候选提示类型;接收所述开发端用户从所述候选提示类型中选定目标类型,作为所述输入信息匹配到的提示类型。

11、可选的,所述根据开发端用户的输入信息识别出所述输入信息匹配到的提示类型,包括:接收所述开发端用户输入的提示内容;识别所述提示内容的语义信息,确定与所述语义信息匹配的提示类型,作为所述输入信息匹配到的提示类型。

12、可选的,所述业务封装层,具体用于:针对开发端用户输入的交互上下文进行分步骤问答,一步骤的输出作为下一步骤的输入,以通过多次交互生成复杂任务的代码辅助信息。

13、可选的,所述模型调用层,还用于:根据所述识别结果确定所述目标模型的大模型控制参数,所述大模型控制参数用于控制所述目标模型用于提供所述代码辅助信息的准确度。

14、可选的,所述模型实现层,具体用于:若根据所述识别结果确定所述代码辅助场景包括代码生成级别为函数级生成且安全级别为低安全级的第一代码辅助场景,则通过认知服务接口调用第一目标模型提供对应的代码辅助能力;若根据所述识别结果确定所述代码辅助场景包括代码生成级别为工程级生成且安全级别为高安全级的第二代码辅助场景,则通过上下文问答服务接口调用第二目标模型提供对应的代码辅助能力。

15、可选的,所述系统还包括:扩展模块;所述扩展模块,用于提供代码辅助模型与开发端用户的交互模式;其中,所述交互模式包括:自动化gpt模式以及模型组合调用模式;所述自动化gpt模式,用于根据所述开发端用户输入的提示内容识别语义信息,并确定与所述语义信息匹配的提示类型,所述提示类型表征对应的代码辅助场景;其中,所述模型组合调用模式,包括:接收所述开发端用户输入的第一提示内容;识别所述第一提示内容的第一语义信息,确定与所述第一语义信息匹配的提示类型,作为所述第一提示内容匹配到的提示类型,所述提示类型表征对应的代码辅助场景;接收所述开发端用户输入的第二提示内容,根据所述提示类型对应的代码辅助场景的信息、所述第二提示内容以及预配置的提示模板生成第二提示内容对应的提示信息;根据所述提示信息调用所述大模型服务,使得所述开发端用户获得所述代码辅助信息。

16、可选的,所述扩展模块还包括:模型结果校准子模块;所述模型结果校准子模块,用于根据预设交叉验证规则对模型结果进行交叉验证。

17、可选的,所述代码辅助场景,包括以下场景至少之一:单元测试生成场景、复杂逻辑解释场景、代码注释生成场景、sql代码优化场景、代码生成场景。

18、可选的,所述代码辅助系统还包括:场景服务模块;所述场景服务模块用于提供针对开发端用户定义的代码辅助场景进行配置的场景配置功能,所述场景配置功能包括场景注册功能、插件交互配置功能以及提示模板配置功能。

19、本技术实施例还提供一种代码辅助处理方法,包括:加载用于开发端用户与通过大模型服务提供代码辅助能力的代码辅助模型之间进行交互的交互界面;所述开发端用户通过所述交互触发调用所述大模型服务以便基于所述代码辅助能力进行辅助编码操作;确定所述开发端用户的辅助编码操作关联的代码编辑位置;在所述交互界面接收所述开发端用户的第一输入信息,响应于针对所述第一输入信息的第一识别结果,确定所述开发端用户的辅助编码操作对应的代码辅助场景;根据所述代码辅助场景的信息以及所述代码编辑位置,获取基于所述代码辅助模型生成的代码辅助信息并显示。

20、可选的,根据针对所述代码辅助信息的操作指令执行开发活动,从而实现基于所述代码辅助模型辅助所述开发端用户进行编码。

21、可选的,所述根据所述代码辅助场景的信息以及所述代码编辑位置,获取基于所述代码辅助模型生成的代码辅助信息,包括:在所述交互界面接收所述开发端用户的第二输入信息,响应于针对所述第二输入信息的第二识别结果,确定所述代码编辑位置对应的代码编辑任务;根据所述代码辅助场景、所述代码编辑任务以及预配置的提示模板,生成提示信息;基于所述提示信息调用对应的大模型服务,生成所述代码辅助信息。

22、可选的,所述针对所述代码辅助信息的操作指令包括以下指令至少之一:代码插入指令、代码拷贝指令、代码比较指令。

23、可选的,所述代码辅助场景包括以下场景至少之一:单元测试生成场景、复杂逻辑解释场景、代码注释生成场景、sql代码优化场景、代码生成场景。

24、可选的,还包括:展示候选提示类型;接收所述开发端用户从所述候选提示类型中选定目标类型,将所述目标类型作为针对第一输入信息的第一识别结果。

25、可选的,还包括:接收所述开发端用户输入的提示内容,作为所述第一输入信息;识别所述提示内容的语义信息,确定与所述语义信息匹配的提示类型,将所述提示类型作为所述第一识别结果。

26、可选的,所述代码辅助模型,根据代码仓中的代码片段及标准化代码样例进行预训练得到。

27、本技术实施例还提供一种代码辅助处理装置,包括:交互单元,用于加载用于开发端用户与通过大模型服务提供代码辅助能力的代码辅助模型之间进行交互的交互界面;所述开发端用户通过所述交互触发调用所述大模型服务以便基于所述代码辅助能力进行辅助编码操作;编辑位置单元,用于确定所述开发端用户的辅助编码操作关联的代码编辑位置;场景识别单元,用于在所述交互界面接收所述开发端用户的第一输入信息,响应于针对所述第一输入信息的第一识别结果,确定所述开发端用户的辅助编码操作对应的代码辅助场景;辅助编码单元,用于根据所述代码辅助场景的信息以及所述代码编辑位置,获取基于所述代码辅助模型生成的代码辅助信息并显示。

28、本技术实施例还提供一种电子设备,包括:存储器,以及处理器;所述存储器用于存储计算机程序,所述计算机程序被所述处理器运行后,执行本技术实施例提供的所述方法。

29、本技术实施例还提供一种计算机存储介质,存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现本技术实施例提供的所述方法。

30、与现有技术相比,本技术具有以下优点:

31、本技术实施例提供的一种代码辅助系统,所述系统包括:开发环境插件层、业务封装层、模型调用层、模型实现层;开发环境插件层包括一个或多个开发环境插件,每个开发环境插件根据使用所述代码辅助系统的开发端用户对应的代码辅助场景定制生成,并通过所述业务封装层提供的后端接口调用所述模型调用层针对所述代码辅助场景提供的大模型服务,所述大模型服务用于基于所述模型实现层实现针对所述代码辅助场景的代码辅助能力,使得所述开发端用户基于所述代码辅助能力进行辅助编码操作;所述业务封装层,获得所述开发环境插件层的任一开发环境插件针对所述业务封装层提供的后端接口的调用请求,根据所述调用请求识别代码辅助场景的信息,根据识别结果调用所述模型调用层提供的大模型服务;所述模型调用层,适配一个或多个代码辅助模型的大模型接口,向所述业务封装层提供所述大模型服务;获取调用所述大模型服务所传入的代码辅助场景的信息,根据所述代码辅助场景的信息选择所述代码辅助模型中的目标模型,调用所述目标模型的大模型接口;所述模型实现层,包括所述一个或多个代码辅助模型,每个代码辅助模型通过对应的大模型接口接收所述模型调用层传递的代码辅助场景的信息,并针对所述代码辅助场景反馈对应的代码辅助信息,使得所述开发端用户基于所述代码辅助信息执行开发活动。代码辅助系统可以集成多个代码辅助模型与多个开发环境插件,从而为具有不同开发团队提供代码辅助功能,整体提升开发效率。进一步,代码辅助模型具有代码理解及代码生成能力,并且能够基于代码仓库中各开发团队的代码或代码片段提取物料进行训练,也可以结合标准代码样例进行训练,因而能够提供准确度较高、且与各开发团队的编码风格较一致的代码辅助信息;开发环境插件可以根据不同开发团队承担的软件项目工程特征、开发工具需求、团队开发习惯等定制化生成,并根据使用场景抽象出不同的细化的代码辅助场景,迭代拓展。因此,能较大程度降低开发端用户的工作量,提升开发效率并同时保证质量。

32、本技术实施例提供的一种代码辅助处理方法、装置、电子设备及存储介质,通过加载用于开发端用户与通过大模型服务提供代码辅助能力的代码辅助模型之间进行交互的交互界面;所述开发端用户通过所述交互触发调用所述大模型服务以便基于所述代码辅助能力进行辅助编码操作;确定所述开发端用户的辅助编码操作关联的代码编辑位置;在所述交互界面接收所述开发端用户的第一输入信息,响应于针对所述第一输入信息的第一识别结果,确定所述开发端用户的辅助编码操作对应的代码辅助场景;根据所述代码辅助场景的信息以及所述代码编辑位置,获取基于所述代码辅助模型生成的代码辅助信息并显示。通过交互信息识别出代码辅助场景,从而便于通过代码辅助模型根据具体的代码辅助场景生成更加符合开发端用户的代码辅助需求、准确度较高的代码辅助信息,提升开发效率。进一步,开发端用户根据针对所述代码辅助信息的操作指令执行开发活动,从而实现基于所述代码辅助模型辅助所述开发端用户进行编码。进一步,通过预配置的提示模板能够按照一定格式约束传递给代码辅助模型作为输入信息的提示信息,使得开发端用户与代码辅助模型之间进行更精准、更高效的交互。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1