一种面向复杂编程场景的智能编程模型优化方法

专利2025-12-17  16


本发明涉及软件工程智能编程领域,具体为一种面向复杂编程场景的智能编程模型优化方法。


背景技术:

1、智能编程模型(以下简称模型)是近些年来软件开发中常使用的工具。开发人员向模型发送提示(即提出问题或需求),模型会分析、解释、生成相关的代码片段,帮助开发人员快速完成软件开发工作。模型为开发者提供了强大的编程支持,能够极大地提升开发人员的工作效率,帮助企业降低软件开发成本。

2、近来的智能编程模型(如github copilot等)通常基于深度学习和大语言模型(如openai的gpt系列模型),这些模型通过海量数据训练,能够理解编程语言语法。开发人员使用自然语言向模型提出需求,其运用大语言模型技术分析需求自动生成相关代码片段及文字描述。模型通常以插件工具的形式拓展在如visual studio code、jetbrains等集成开发环境中,使开发人员无需离开开发环境即可利用大语言模型实现一系列代码开发需求。

3、尽管依靠模型生成的代码通常有效,但模型在处理解决如多步骤编程问题、跨文件依赖问题、非常规报错调试问题等复杂编程场景情况时,其可能无法正确理解问题需求,从而出现生成结果准确性低或生成代码无法解决问题等情况,在这些情况下,编程模型生成有误的解决方案反而会导致更多的调试时间;另一方面,这些模型通常使用基于云或外部服务的大语言模型,有长时间保持网络连接的硬性要求,也对网络质量、连接稳定性也有性能要求。此外,使用第三方提供的大语言模型对开发者的代码隐私和代码安全也有所影响。


技术实现思路

1、针对现有技术应用存在的上述问题,本发明要解决的问题是:面对复杂逻辑时编程模型生成准确率低下和编程模型普遍依赖第三方大语言模型服务的问题。

2、为解决上述问题,本发明采用的技术方案如下:

3、本发明提供了一种面向复杂编程场景的智能编程模型优化方法,包括可视化交互界面,任务处理器,子组件管理器和模型库。

4、其中,所述可视化交互界面包括用于用户与智能编程模型直接交互的对话交互界面以及用于用户快速执行预设定命令的可视化命令执行面板。

5、其中,所述任务处理器包括从需求问题描述中确定具体编程任务的需求识别模块、将编程任务细化为子任务的任务分解模块、为子任务匹配合适组件以及确定任务优先级的组件编排模块。

6、其中,所述子组件管理器包括用于生成补全代码的代码生成补全组件、用于解释代码功能作用及详情信息的代码摘要解释组件、用于生成单元测试代码及测试用例的测试用例生成组件、用于进行漏洞检测定位并生成对应解决方案的代码漏洞检测组件、用于检查代码质量问题和不良编程习惯并生成优化建议的代码质量检测组件。

7、其中,模型库包括了本地存储的所有大语言模型以及各模型参数文件,用于提供大语言模型服务。

8、步骤s1、可视化交互提出需求,用户在可视化交互界面向智能编程模型发送需求问题描述;

9、步骤s2、接收并分析处理用户需求,任务处理器接收用户发出的需求问题描述并发送给内部的需求识别模块,需求识别模块从需求问题描述中确定需要完成的具体编程任务并发送给任务分解模块,任务分解模块将编程任务分解为一系列更小、更明确的子任务,任务分解模块将目标明确、边界分明的子任务发送给组件编排模块,组件编排模块为每个子任务选择合适的组件来处理并确定任务处理顺序,从而得到任务-组件匹配对,组件编排模块将各子任务选择的合适的组件及任务执行优先级计划发送给子组件管理器。

10、步骤s3、子任务协调执行,子组件管理器根据步骤s2得到的任务-组件匹配对以及各子任务处理优先级信息,按顺序调用子组件管理器中的对应组件执行子任务,并协调不同组件之间的信息传递。

11、步骤s4、执行结果聚合,子组件管理器整理合并各个子任务的执行结果,形成完整解决方案。

12、步骤s5、反馈最终结果,子组件管理器将步骤s4中得到的完整解决方案发送给可视化交互界面向用户展示最终结果。

13、进一步,步骤s1中可视化交互提出需求的步骤包括:

14、用户可以在可视化交互界面的对话交互页面输入框中输入需求问题的描述,后点击发送按钮传递给任务处理器,并能够可选地附带需要询问的代码一并传递。用户也可以在可视化交互界面的可视化命令执行面板选择预设定的一些命令传递给任务处理器。

15、进一步,步骤s2、接收并分析处理用户需求的步骤包括:

16、步骤s21、任务处理器接收用户发出的需求问题描述,并发送给内部的需求识别模块选择并使用模型库中的一种大语言模型从整体问题描述中提取确认需要完成的具体编程任务。

17、步骤s22、需求识别模块将提取的具体编程任务发送给任务分解模块,任务分解模块选择并使用模型库中的一种大语言模型分析该编程任务、分解任务步骤、发现任务隐含步骤并生成该任务最优的子任务集,各子任务目的明确,边界分明。

18、步骤s23、任务分解模块将子任务集发送给组件编排模块,组件编排模块选择并使用模型库中的一种大语言模型为各个子任务选择最匹配的子组件来执行,形成任务-组件匹配对,并使用大语言模型生成子任务优先级顺序,形成任务执行计划。

19、步骤s24、组件编排模块将任务-组件匹配对与任务执行计划传递给子组件管理器。

20、进一步,步骤s3、子任务协调执行的步骤包括:

21、步骤s31、子组件管理器根据步骤s24得到的任务-组件匹配对和子任务处理优先级顺序,创建线程执行栈并按顺序将各个子任务对应的子组件放入栈中待执行。

22、步骤s32、依次从线程执行栈中取出组件并调用执行组件程序,如果子组件程序执行后有需要传递给后续子组件的信息,子组件管理器将在不同子组件间传递信息。

23、进一步,步骤s4中,执行结果聚合的步骤包括:子组件管理器将步骤s32中各个组件的执行结果进行记录并整合形成完整的解决方案。

24、进一步,步骤s5中,反馈最终结果的步骤包括:子组件管理器将步骤s4中得到的完整解决方案发送给可视化交互界面,可视化交互界面的对话交互界面以对话的形式向用户展示完整解决方案。

25、与现有技术相比,本发明的有益效果是:

26、1、本发明并不直接将用户提出的需求问题描述交给大语言模型去分析生成解决方案,而是先使用需求识别模块确定用户需求问题描述中需要完成的具体编程任务,再将具体编程任务由任务分解模块分解为一系列目标、边界明确的子任务,最后由组件编排模块确定每个子任务执行顺序并分配执行对应子任务的组件,这样的任务确定分解执行流程,可以降低由于一次性处理复杂任务带来的误差,通过逐步细化任务,可以提升完整解决方案的准确性,提高复杂编程场景下解决问题的成功率。

27、2、本发明使用组件化方式,将常见常用的编程任务,如代码生成、代码解释、代码优化等封装为组件,而不是直接请求大语言模型实现相关任务,并且各个组件的执行效果持平或优于单独使用大语言模型执行对应任务的效果。此外,使用组件化方式,当出现新任务需求或升级更好的组件时,可以轻松进行集成和替换,从而增强智能编程模型的扩展性和可维护性。

28、3、本发明使用组件封装常见任务,且部分组件并未调用大语言模型协助实现任务,避免将所有子任务交给大语言模型处理,从而可以更好地分配计算资源,提高智能编程模型效率。

29、4、本发明一种面向复杂编程场景的智能编程模型优化方法,一方面,能提高编程模型理解问题的准确性,进而提高在复杂编程场景下的处理成功率;另一方面,该方法实现模型连接和管理功能,使用部署在个人用户本地的大语言模型,从而消除依赖外部大语言模型服务而可能产生的影响。


技术特征:

1.一种面向复杂编程场景的智能编程模型优化方法,其特征在于:包括可视化交互界面,任务处理器,子组件管理器和模型库;

2.如权利要求1所述的一种面向复杂编程场景的智能编程模型优化方法,其特征在于:所述步骤s2中,接收并分析处理用户需求的步骤包括:

3.如权利要求2所述的一种面向复杂编程场景的智能编程模型优化方法,其特征在于:所述步骤s3中,子任务协调执行的步骤包括:


技术总结
本发明公开了一种面向复杂编程场景的智能编程模型优化方法,该方法包括可视化交互界面,任务处理器,子组件管理器和模型库;任务处理器包括需求识别模块、任务分解模块、组件编排模块;子组件管理器包括用于生成补全代码的代码生成补全组件、用于解释代码功能作用及详情信息的代码摘要解释组件、用于生成单元测试代码及测试用例的测试用例生成组件、用于进行漏洞检测定位并生成对应解决方案的代码漏洞检测组件、用于检查代码质量问题和不良编程习惯并生成优化建议的代码质量检测组件。本发明能够有效提高在复杂编程场景下解决问题的成功率、能够更好地分配计算资源提高智能编程模型效率、能够提高智能编程模型的扩展性和可维护性。

技术研发人员:刘超,何玄,舒善富,王浩瀚,肖芊谦,张小洪,胡海波
受保护的技术使用者:重庆大学
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-28273.html