掌桥专利:专业的专利平台
掌桥专利
首页

代码处理方法、系统和电子设备

文献发布时间:2024-04-18 19:58:26


代码处理方法、系统和电子设备

技术领域

本发明涉及计算机技术领域,尤其涉及一种代码处理方法、系统和电子设备。

背景技术

随着计算机技术的发展,代码开发日益复杂化,高效代码处理已经日益受到重视。其中,代码处理包括代码生成、代码补全、代码修改、代码纠错、代码解释、代码测试等。

目前,多依赖研发人员手动进行代码处理,工作量较大,代码处理效率较低。例如,在进行代码补全时,研发人员多通过爬虫技术从相关开源网站搜索得到相应的补全代码,以进行代码补全,搜索耗时且效率较低。

发明内容

本发明提供一种代码处理方法、系统和电子设备,用以解决现有技术中代码处理效率较低的缺陷。

本发明提供一种代码处理方法,应用于终端,包括:

在终端代码处理界面下,接收代码处理输入;

对所述代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取待处理信息;

将所述待处理信息发送至服务端,以使所述服务端生成携带所述待处理信息的提示语句,将所述提示语句发送至代码模型,并使所述代码模型基于所述提示语句进行代码处理,得到代码处理结果;

接收所述服务端返回的所述代码处理结果,并在所述终端代码处理界面下显示。

根据本发明提供的一种代码处理方法,所述基于所述目标意图从所述终端代码处理界面中提取待处理信息,包括:

在所述目标意图为代码生成的情况下,基于代码处理输入在所述终端代码处理界面中对应的输入文本,以及所述目标意图,生成所述待处理信息。

根据本发明提供的一种代码处理方法,所述基于所述目标意图从所述终端代码处理界面中提取待处理信息,包括:

在所述目标意图为代码补全的情况下,提取所述代码处理输入在所述终端代码处理界面中对应的输入文本和上文文本;

基于所述输入文本、所述上文文本以及所述目标意图,生成所述待处理信息。

根据本发明提供的一种代码处理方法,所述基于所述目标意图从所述终端代码处理界面中提取待处理信息,包括:

在所述目标意图为代码修改的情况下,从所述终端代码处理界面的问答区域提取所述代码处理输入对应的输入文本,并从所述终端代码处理界面的代码编辑区域提取所述代码处理输入对应的待修改代码;

基于所述输入文本、所述待修改代码以及所述目标意图,生成所述待处理信息。

根据本发明提供的一种代码处理方法,所述基于所述输入文本、所述待修改代码以及所述目标意图,生成所述待处理信息,包括:

从所述代码编辑区域提取与所述待修改代码关联的上下文代码;

基于所述上下文代码,以及所述输入文本、所述待修改代码和所述目标意图,生成所述待处理信息。

根据本发明提供的一种代码处理方法,所述基于所述目标意图从所述终端代码处理界面中提取待处理信息,包括:

在所述目标意图为代码解释、代码测试以及代码纠错中的任一种的情况下,从所述终端代码处理界面的代码编辑区域中提取所述代码处理输入对应的目标代码;

基于所述代码处理输入对应的目标代码以及所述目标意图,生成所述待处理信息。

根据本发明提供的一种代码处理方法,所述对所述代码处理输入进行场景意图解析,得到目标意图,包括以下至少一种:

对所述代码处理输入所对应输入文本的语义信息进行场景意图解析,得到目标意图;

基于所述代码处理输入所对应控件的控件功能,确定所述目标意图;

基于所述代码处理输入所对应光标的光标位置,确定所述目标意图。

根据本发明提供的一种代码处理方法,所述在终端代码处理界面下,接收代码处理输入,包括:

在所述终端代码处理界面的问答区域,接收文本形式的代码处理输入;

和/或,

在所述终端代码处理界面的代码编辑区域,接收文本形式、控件点触形式和光标位移形式的代码处理输入。

本发明还提供一种代码处理方法,应用于服务端,包括:

接收终端发送的待处理信息,所述待处理信息是所述终端对终端代码处理界面下的代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取得到的;

基于所述待处理信息,生成携带所述待处理信息的提示语句;

将所述提示语句发送至代码模型,以使所述代码模型基于所述提示语句进行代码处理,并返回代码处理结果;

将所述代码处理结果发送至所述终端,以使所述终端在所述终端代码处理界面下显示。

根据本发明提供的一种代码处理方法,所述待处理信息携带有目标意图;

所述基于所述待处理信息,生成携带所述待处理信息的提示语句,包括:

确定所述目标意图对应的提示语句模板;

基于所述待处理信息,对所述提示语句模板进行填充,得到所述提示语句。

根据本发明提供的一种代码处理方法,所述基于所述待处理信息,对所述提示语句模板进行填充,得到所述提示语句,包括:

将所述待处理信息中的代码、目标意图以及输入文本中的至少一种填充至所述提示语句模板中的对应位置,得到所述提示语句。

本发明还提供一种代码处理装置,安装于终端,包括:

输入接收单元,用于在终端代码处理界面下,接收代码处理输入;

意图解析单元,用于对所述代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取待处理信息;

信息发送单元,用于将所述待处理信息发送至服务端,以使所述服务端生成携带所述待处理信息的提示语句,将所述提示语句发送至代码模型,并使所述代码模型基于所述提示语句进行代码处理,得到代码处理结果;

结果接收单元,用于接收所述服务端返回的所述代码处理结果,并在所述终端代码处理界面下显示。

本发明还提供一种代码处理装置,安装于服务端,包括:

信息接收单元,用于接收终端发送的待处理信息,所述待处理信息是所述终端对终端代码处理界面下的代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取得到的;

语句生成单元,用于基于所述待处理信息,生成携带所述待处理信息的提示语句;

语句发送单元,用于将所述提示语句发送至代码模型,以使所述代码模型基于所述提示语句进行代码处理,并返回代码处理结果;

结果发送单元,用于将所述代码处理结果发送至所述终端,以使所述终端在所述终端代码处理界面下显示。

本发明还提供一种代码处理系统,包括:终端、服务端以及代码模型,所述代码模型基于大型语言模型训练得到,所述代码模型用于对输入的代码处理输入进行代码处理。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述代码处理方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述代码处理方法。

本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述代码处理方法。

本发明提供的代码处理方法、系统和电子设备,通过对代码处理输入进行场景意图解析,得到目标意图,并基于目标意图从终端代码处理界面中提取待处理信息,从而服务端可以生成携带待处理信息的提示语句,以使代码模型基于提示语句进行代码处理,快速且准确得到代码处理结果,避免传统方法中依赖研发人员手动进行代码处理导致工作量增加以及代码处理效率较低的问题。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的代码处理方法的流程示意图之一;

图2是本发明提供的代码处理方法中步骤120的实施方式的流程示意图之一;

图3是本发明提供的代码处理方法中步骤122a的实施方式的流程示意图;

图4是本发明提供的代码处理方法中步骤120的实施方式的流程示意图之二;

图5是本发明提供的终端代码处理界面的问答区域示意图;

图6是本发明提供的终端代码处理界面的代码编辑区域示意图;

图7是本发明提供的代码处理方法的流程示意图之二;

图8是本发明提供的代码处理装置的结构示意图之一;

图9是本发明提供的代码处理装置的结构示意图之二;

图10是本发明提供的代码处理系统的结构示意图;

图11是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前在进行代码处理时,多依赖研发人员手动进行代码处理,大幅度增加了研发人员的工作量,且代码处理效率较低。例如,在进行代码生成和代码补全时,研发人员多通过爬虫技术从相关开源网站搜索得到相应的补全代码,以进行代码补全。在进行代码修改时,研发人员手动定位至需要修改的代码,并依赖研发人员代码知识进行代码修改。在进行代码纠错时,研发人员需要遍历每个代码,并依赖代码知识进行代码纠错。在进行代码解释时,研发人员需要遍历每个代码,并依赖代码知识手动添加相应代码解释。在进行代码测试时,研发人员需要手动生成相应的测试用例,并手动加载测试用例进行代码测试。

由此可见,上述代码处理过程中,研发人员需要进行繁琐且复杂的操作,工作量较大,代码处理效率较低。

对此,本发明提供一种代码处理方法。图1是本发明提供的代码处理方法的流程示意图之一,如图1所示,该方法应用于终端,包括如下步骤:

步骤110、在终端代码处理界面下,接收代码处理输入。

此处,终端代码处理界面可以理解为终端上所设置的与用户进行代码处理交互的界面。其中,终端代码处理界面中可以设置有对话框,对话框中可以设置有“手写输入”、“键盘输入”、“语音输入”等不同输入形式对应的按钮,进而用户可以通过选中相应的按钮实现相应代码处理输入的输入形式。

例如,在用户选择“手写输入”的情况下,用户可以通过在对话框上手写输入代码处理输入。在用户选择“键盘输入”按钮的情况下,用户可以通过键盘在对话框中输入代码处理输入。在用户选择“语音输入”的情况下,用户可以通过语音输入代码处理输入。

此外,代码处理输入可以理解为在存在代码处理需求的情况下,用户在终端代码处理界面上以文本形式、控件点触形式和光标位移形式生成的代码处理相关信息。

例如,用户在终端代码处理界面下输入文本“我要开发一个类似凌空手写的手指捏合轨迹点跟踪的应用功能,请提供实现思路”,则可以将该输入文本为代码处理输入。

例如,用户在终端代码处理界面下圈选代码A,并点触代码纠错控件,则可以将“点触代码A对应的代码纠错控件”作为代码处理输入。

例如,用户在终端代码处理界面下将光标位移至函数1的末端,则可以将“光标位移至函数1末端”作为代码处理输入。

步骤120、对代码处理输入进行场景意图解析,得到目标意图,并基于目标意图从终端代码处理界面中提取待处理信息。

具体地,场景意图解析可以是从代码处理输入中提取出对应的场景意图,提取得到的场景意图也即目标意图。其中,目标意图可以包括代码生成、代码补全、代码修改、代码纠错、代码解释、代码测试等。

可选地,在代码处理输入为文本形式的情况下,可以基于代码处理输入的语义信息进行场景意图解析,得到目标意图。例如,代码处理输入为“生成检测手部区域上的关键点和轮廓并显示关键点的代码”,则根据该代码处理输入的语义信息进行场景意图解析,得到目标意图为“代码生成”。

可选地,在代码处理输入为控件点触形式的情况下,可以基于所点触控件对应的控件功能确定目标意图。例如,代码处理输入为“点触代码A对应的代码纠错控件”,由于代码纠错控件的控件功能为“代码纠错”,因此对应的目标意图为“代码纠错”。

可选地,在代码处理输入为光标位移形式的情况下,可以基于对应光标的光标位置确定目标意图。例如,代码处理输入为“光标位移至函数1末端”,由于光标位于函数1末端,且函数1末端的代码未写出,则可以解析得到对应的目标意图为“代码补全”。

此外,待处理信息可以理解为在目标意图下,进行相应代码处理所对应的输入信息。其中,待处理信息可以包括目标意图、在终端代码处理界面中目标意图对应的文本、代码等。

例如,代码处理输入为“生成检测手部区域上的关键点和轮廓并显示关键点的代码”,对应的目标意图为“代码生成”,则对应的待处理信息可以为“生成检测手部区域上的关键点和轮廓并显示关键点的代码&代码生成”。

例如,代码处理输入为“点触代码A对应的代码纠错控件”,对应的目标意图为“代码纠错”,则对应的待处理信息可以为“代码A&代码纠错”。

例如,代码处理输入为“对代码B进行代码解释”,对应的目标意图为“代码解释”,对应的待处理信息可以为“对代码B进行代码解释&代码B&代码解释”。

步骤130、将待处理信息发送至服务端,以使服务端生成携带待处理信息的提示语句,将提示语句发送至代码模型,并使代码模型基于提示语句进行代码处理,得到代码处理结果。

具体地,提示语句可以是将待处理信息填充至提示语句模板后得到的文本,提示语句也可以理解为是按照提示语句模板将待处理信息规整为标准输入形式后得到的文本。其中,待处理信息可以为prompt文本。

例如,待处理信息为“生成n个测试用例,对代码C进行代码测试”,则对应的提示语句模板可以为{“question”:“你是一个资深代码开发人员,请根据以下需求描述[prompt]和代码实现[code],生成对应的[num]个测试用例和可运行的代码”,“answer”:“测试用例和运行代码”},则可以使用待处理信息中的“生成n个测试用例,对代码C进行代码测试”填充[prompt]字段,使用“代码C”填充[code]字段,使用“n”填充[num]字段,进而得到对应的提示语句。

在一些具体实施方式中,可以将提示语句输入至预先构建得到的代码模型中,由代码模型基于提示语句进行代码处理,得到代码处理结果;其中,代码模型基于样本提示语句以及对应的样本代码处理结果训练得到,代码模型可以基于BERT模型(BidirectionalEncoder Representations from Transformers)、XLNet模型(extreme Multi-labelLearning Network)、ROBERTa模型(Robustly Optimized BERT approach)、T5模型(Text-to-Text Transfer Transformer)等预训练模型构建得到。

此处,代码模型也可以是具有类人特性的聊天机器人中部署的大规模模型,例如,讯飞星火大模型(IFlytek Spark),部署有该代码模型的聊天机器人能够通过理解和学习人类的语言从而与用户进行对话,并且,还能根据对话的上下文与用户进行互动具备真正类人的交流能力,除此之外,其还具备人类的能力,例如编辑、翻译、搜索等。

步骤140、接收服务端返回的代码处理结果,并在终端代码处理界面下显示。

具体地,服务端接收代码模型返回的代码处理结果后,可以将代码处理结果解析为自然语言,并将解析后的代码处理结果发送至终端,并在终端的终端代码处理界面下显示。

本发明实施例提供的代码处理方法,通过对代码处理输入进行场景意图解析,得到目标意图,并基于目标意图从终端代码处理界面中提取待处理信息,从而服务端可以生成携带待处理信息的提示语句,以使代码模型基于提示语句进行代码处理,快速且准确得到代码处理结果,避免传统方法中依赖研发人员手动进行代码处理导致工作量增加以及代码处理效率较低的问题。

基于上述实施例,基于目标意图从终端代码处理界面中提取待处理信息,包括:

在目标意图为代码生成的情况下,基于代码处理输入在终端代码处理界面中对应的输入文本,以及目标意图,生成待处理信息。

具体地,若目标意图为代码生成,则代码处理输入通常为文本形式,即输入文本可以理解为文本形式的代码处理输入。代码生成是指根据代码处理输入对应的输入文本生成一段完整代码。

在一些具体实施方式中,可以对输入文本以及目标意图进行文本拼接,并以拼接后的文本作为待处理信息。其中,输入文本和目标意图进行文本拼接时可以采用符号拼接(如采用符号&拼接)。

例如,代码处理输入为“生成检测手部区域上的关键点和轮廓并显示关键点的代码”,对应的目标意图为“代码生成”,对应的输入文本为“生成检测手部区域上的关键点和轮廓并显示关键点的代码”,则对应的待处理信息可以为“生成检测手部区域上的关键点和轮廓并显示关键点的代码&代码生成”。

此外,在目标意图为代码生成的情况下,代码模型可以通过学习大量的代码样本和语言规范,从而代码模型可以根据代码处理输入对应输入文本的自然语言描述生成相应的程序代码,从而能够帮助研发人员更高效地创建和实现代码。

基于上述任一实施例,基于目标意图从终端代码处理界面中提取待处理信息,包括:

在目标意图为代码补全的情况下,提取代码处理输入在终端代码处理界面中对应的输入文本和上文文本;

基于输入文本、上文文本以及目标意图,生成待处理信息。

具体地,代码补全是指对输入文本进行代码预测续写。若目标意图为代码补全,则代码处理输入可以为文本形式、控件点触形式或光标位移形式。在代码处理输入为文本形式的情况下,输入文本可以为文本形式的代码处理输入,上文文本可以为与输入文本关联程度较大的代码文本;在代码处理输入为控件点触形式的情况下,输入文本可以为控件点触所圈选的文本,上文文本可以为与输入文本关联程度较大的代码文本;在代码处理输入为光标位移形式的情况下,输入文本可以为光标所在当前位置对应的文本,上文文本可以为与输入文本关联程度较大的代码文本。

在一些具体实施方式中,可以对输入文本、上文文本以及目标意图进行文本拼接,并以拼接后的文本作为待处理信息。其中,输入文本、上文文本以及目标意图进行文本拼接时可以采用符号拼接(如采用符号&拼接)。

例如,代码处理输入为“对函数1进行代码补全”,对应的目标意图为“代码补全”,对应的输入文本为“对函数1进行代码补全”,对应的上文文本为“上文中与函数1关联的代码文本”,则对应的待处理信息可以为“对函数1进行代码补全&上文中与函数1关联的代码文本&代码补全”。

此外,在目标意图为代码补全的情况下,代码模型可以根据上文文本对应的代码和语言规范,预测并生成可能的代码片段,从而可以提高研发人员的编码速度和准确性,减少输入错误和冗余。

基于上述任一实施例,图2是本发明提供的代码处理方法中步骤120的实施方式的流程示意图之一,如图2所示,步骤120中基于目标意图从终端代码处理界面中提取待处理信息,包括:

步骤121a、在目标意图为代码修改的情况下,从终端代码处理界面的问答区域提取代码处理输入对应的输入文本,并从终端代码处理界面的代码编辑区域提取代码处理输入对应的待修改代码;

步骤122a、基于输入文本、待修改代码以及目标意图,生成待处理信息。

具体地,终端代码处理界面可以包括问答区域和代码编辑区域。问答区域用于接收文本形式的代码处理输入,代码编辑区域用于接收文本形式、控件点触形式和光标位移形式的代码处理输入。输入文本指用于描述代码修改内容的文本,待修改代码是指输入文本中所指向的需要修改的代码。

在目标意图为代码修改的情况下,代码处理输入对应的输入文本通常包含有待修改代码信息,从而可以基于输入文本从代码编辑区域提取代码处理输入对应的待修改代码。

例如,代码处理输入对应的输入文本为“请将代码A中轨迹的颜色改为蓝色,轨迹用线条连接”,根据输入文本的语义信息可知,待修改代码为“代码A”,进而可以从代码编辑区域提取“代码A”。

在一些具体实施方式中,可以对输入文本、待修改代码以及目标意图进行文本拼接,并以拼接后的文本作为待处理信息。其中,输入文本、待修改代码以及目标意图进行文本拼接时可以采用符号拼接(如采用符号&拼接)。

例如,代码处理输入对应的输入文本为“请将代码A中轨迹的颜色改为蓝色,轨迹用线条连接”,对应的目标意图为“代码修改”,对应的输入文本为“请将代码A中轨迹的颜色改为蓝色,轨迹用线条连接”,待修改代码为“代码A”,则对应的待处理信息可以为“请将代码A中轨迹的颜色改为蓝色,轨迹用线条连接&代码A&代码修改”。

此外,在目标意图为代码修改的情况下,代码模型可以根据待修改代码对应的代码和语言规范,以及描述修改内容的输入文本,对待修改代码进行修改,从而可以提高研发人员的代码修改速度。

基于上述任一实施例,图3是本发明提供的代码处理方法中步骤122a的实施方式的流程示意图,如图3所示,步骤122a包括:

步骤1221a、从代码编辑区域提取与待修改代码关联的上下文代码;

步骤1222a、基于上下文代码,以及输入文本、待修改代码和目标意图,生成待处理信息。

基于上述任一实施例,图4是本发明提供的代码处理方法中步骤120的实施方式的流程示意图之二,如图4所示,步骤120中基于目标意图从终端代码处理界面中提取待处理信息,包括:

步骤121b、在目标意图为代码解释、代码测试以及代码纠错中的任一种的情况下,从终端代码处理界面的代码编辑区域中提取代码处理输入对应的目标代码;

步骤122b、基于代码处理输入对应的目标代码以及目标意图,生成待处理信息。

具体地,代码解释是指对目标代码的内容进行解释说明,代码测试是指针对目标代码生成相应的测试代码,代码纠错是指对目标代码的内容进行纠错优化。若目标意图为代码解释、代码测试以及代码纠错中的任一种,则代码处理输入可以为文本形式、控件点触形式或光标位移形式中的任一种。其中,代码处理输入中通常包含有目标代码信息,如目标代码的函数名。

在一些具体实施方式中,可以对目标代码以及目标意图进行文本拼接,并以拼接后的文本作为待处理信息。其中,目标代码以及目标意图进行文本拼接时可以采用符号拼接(如采用符号&拼接)。

此外,在目标意图为代码解释的情况下,代码模型可以理解并解释程序代码的含义和逻辑。代码模型通过学习代码库中的大量代码示例和语言规范,从而可以提供有关代码的解释、注释和文档,进而能够帮助研发人员理解和调试复杂的代码段。

在目标意图为代码测试的情况下,代码模型可以自动生成和运行代码的单元测试。代码模型可以根据给定的测试用例和代码规范,自动生成适当的测试代码,并执行测试以验证代码的正确性,从而可以帮助研发人员提高代码的健壮性和可维护性。

在目标意图为代码纠错的情况下,代码模型可以检测和修复代码中的错误和问题。代码模型可以分析代码的语法、结构和语义,并识别潜在的错误或低效的写法,进而提供修复建议和提示,以帮助研发人员提高代码的质量和可靠性。

基于上述任一实施例,对代码处理输入进行场景意图解析,得到目标意图,包括以下至少一种:

对代码处理输入所对应输入文本的语义信息进行场景意图解析,得到目标意图;

基于代码处理输入所对应控件的控件功能,确定目标意图;

基于代码处理输入所对应光标的光标位置,确定目标意图。

具体地,代码处理输入的形式可以包括文本形式、控件点触形式以及光标位移形式。

在代码处理输入为文本形式的情况下,可以基于代码处理输入的语义信息进行场景意图解析,得到目标意图。例如,代码处理输入为“生成检测手部区域上的关键点和轮廓并显示关键点的代码”,则根据该代码处理输入的语义信息进行场景意图解析,得到目标意图为“代码生成”。

在代码处理输入为控件点触形式的情况下,可以基于所点触控件对应的控件功能确定目标意图。例如,代码处理输入为“点触代码A对应的代码纠错控件”,由于代码纠错控件的控件功能为“代码纠错”,因此对应的目标意图为“代码纠错”。

在代码处理输入为光标位移形式的情况下,可以基于对应光标的光标位置确定目标意图。例如,代码处理输入为“光标位移至函数1末端”,由于光标位于函数1末端,且函数1末端的代码未写出,则可以解析得到对应的目标意图为“代码补全”。

基于上述任一实施例,在终端代码处理界面下,接收代码处理输入,包括:

在终端代码处理界面的问答区域,接收文本形式的代码处理输入;

和/或,

在终端代码处理界面的代码编辑区域,接收文本形式、控件点触形式和光标位移形式的代码处理输入。

图5是本发明提供的终端代码处理界面的问答区域示意图,如图5所示,在问答区域,用户可以输入代码处理输入“我:代码解释+def add_todo()…”,此时终端接收到代码处理输入,待服务端返回代码处理结果后,在问答区域展示代码处理结果“AICODE:这段代码是一个简单的待办事项添加功能的实现…”。由此可见,终端代码处理界面中的问答区域可以提供对话交互窗口,以提供代码类专业知识问答功能。其中,问答区域通常用于进行代码解释、代码纠错、代码测试等代码处理的交互。

此外,在代码编辑区域,用户可以以文本形式、控件点触形式和光标位移形式输入代码处理输入,待服务端返回代码处理结果后,在代码编辑区域相应位置展示代码处理结果。

图6是本发明提供的终端代码处理界面的代码编辑区域示意图,如图6所示,在代码编辑区域展示代码,当需要对“#显示命令提示”对应的代码进行代码纠错时,可以圈选“#显示命令提示”,并点触代码纠错控件,进而代码编辑区域会展示“#显示命令提示”对应代码的纠错信息(如在错误代码添加注释)。

由此可见,终端代码处理界面的代码编辑区域,可以在编程过程中沉浸式生成代码建议,帮助编码效率的提升。其中,终端代码处理界面通常用于进行代码生成、代码补全、代码修改等代码处理的交互。

基于上述任一实施例,图7是本发明提供的代码处理方法的流程示意图之二,如图7所示,该方法应用于服务端,包括如下步骤:

步骤710、接收终端发送的待处理信息,待处理信息是终端对终端代码处理界面下的代码处理输入进行场景意图解析,得到目标意图,并基于目标意图从终端代码处理界面中提取得到的;

步骤720、基于待处理信息,生成携带待处理信息的提示语句;

步骤730、将提示语句发送至代码模型,以使代码模型基于提示语句进行代码处理,并返回代码处理结果;

步骤740、将代码处理结果发送至终端,以使终端在终端代码处理界面下显示。

此处,终端代码处理界面可以理解为终端上所设置的与用户进行代码处理交互的界面。其中,终端代码处理界面中可以设置有对话框,对话框中可以设置有“手写输入”、“键盘输入”、“语音输入”等不同输入形式对应的按钮,进而用户可以通过选中相应的按钮实现相应代码处理输入的输入形式。

此外,代码处理输入可以理解为在存在代码处理需求的情况下,用户在终端代码处理界面上以文本形式、控件点触形式和光标位移形式生成的代码处理相关信息。

例如,用户在终端代码处理界面下输入文本“我要开发一个类似凌空手写的手指捏合轨迹点跟踪的应用功能,请提供实现思路”,则可以将该输入文本为代码处理输入。

例如,用户在终端代码处理界面下圈选代码A,并点触代码纠错控件,则可以将“点触代码A对应的代码纠错控件”作为代码处理输入。

例如,用户在终端代码处理界面下将光标位移至函数1的末端,则可以将“光标位移至函数1末端”作为代码处理输入。

场景意图解析可以是从代码处理输入中提取出对应的场景意图,提取得到的场景意图也即目标意图。待处理信息可以理解为在目标意图下,进行相应代码处理所对应的输入信息。其中,待处理信息可以包括目标意图、在终端代码处理界面中目标意图对应的文本、代码等。目标意图可以包括代码生成、代码补全、代码修改、代码纠错、代码解释、代码测试等。

提示语句可以是将待处理信息填充至提示语句模板后得到的文本,提示语句也可以理解为是按照提示语句模板将待处理信息规整为标准输入形式后得到的文本。其中,待处理信息可以为prompt文本。

在一些具体实施方式中,可以将提示语句输入至预先构建得到的代码模型中,由代码模型基于提示语句进行代码处理,得到代码处理结果;其中,代码模型基于样本提示语句以及对应的样本代码处理结果训练得到。

在服务端接收代码模型返回的代码处理结果后,可以将代码处理结果解析为自然语言,并将解析后的代码处理结果发送至终端,并在终端的终端代码处理界面下显示。

本发明实施例提供的代码处理方法,通过终端对代码处理输入进行场景意图解析,得到目标意图,并基于目标意图从终端代码处理界面中提取待处理信息,从而服务端可以生成携带待处理信息的提示语句,以使代码模型基于提示语句进行代码处理,快速且准确得到代码处理结果,避免传统方法中依赖研发人员手动进行代码处理导致工作量增加以及代码处理效率较低的问题。

基于上述任一实施例,待处理信息携带有目标意图;

基于待处理信息,生成携带待处理信息的提示语句,包括:

确定目标意图对应的提示语句模板;

基于待处理信息,对提示语句模板进行填充,得到提示语句。

具体地,提示语句是将待处理信息填充至提示语句模板后得到的文本,提示语句也可以理解为是按照提示语句模板将待处理信息规整为标准输入形式后得到的文本。其中,待处理信息可以为prompt文本。

此外,不同目标意图对应的提示语句模板不同,服务端接收到待处理信息后,基于待处理信息中携带的目标意图,确定对应的提示语句模板,进而可以基于待处理信息,对提示语句模板进行填充,得到提示语句。

例如,待处理信息为“生成n个测试用例,对代码C进行代码测试”,则对应的提示语句模板可以为{“query”:“你是一个资深代码开发人员,请根据以下需求描述[prompt]和代码实现[code],生成对应的[num]个测试用例和可运行的代码”,“answer”:“测试用例和运行代码”},则可以使用待处理信息中的“生成n个测试用例,对代码C进行代码测试”填充[prompt]字段,使用“代码C”填充[code]字段,使用“n”填充[num]字段,进而得到对应的提示语句。

基于上述任一实施例,基于待处理信息,对提示语句模板进行填充,得到提示语句,包括:

将待处理信息中的代码、目标意图以及输入文本中的至少一种填充至提示语句模板中的对应位置,得到提示语句。

具体地,不同目标意图对应不同的提示语句模板,不同提示语句模板中所需填充的内容不同。例如,在目标意图为代码生成的情况下,代码生成对应提示语句模板中所需填充的内容可以为输入文本,进而可以将待处理信息中的输入文本填充至对应位置。又如,在目标意图为代码修改的情况下,代码修改对应提示语句模板所需填充的内容可以为代码以及输入文本,进而可以将待处理信息中的代码以及文本填充至对应位置。

下面对本发明提供的代码处理装置进行描述,下文描述的代码处理装置与上文描述的代码处理方法可相互对应参照。

基于上述任一实施例,图8是本发明提供的代码处理装置的结构示意图之一,如图8所示,该装置安装于终端,包括:

输入接收单元810,用于在终端代码处理界面下,接收代码处理输入;

意图解析单元820,用于对代码处理输入进行场景意图解析,得到目标意图,并基于目标意图从终端代码处理界面中提取待处理信息;

信息发送单元830,用于将待处理信息发送至服务端,以使服务端生成携带待处理信息的提示语句,将所述提示语句发送至代码模型,并使代码模型基于提示语句进行代码处理,得到代码处理结果;

结果接收单元840,用于接收服务端返回的代码处理结果,并在终端代码处理界面下显示。

基于上述任一实施例,所述意图解析单元820用于:

在目标意图为代码生成的情况下,基于代码处理输入在终端代码处理界面中对应的输入文本,以及目标意图,生成待处理信息。

基于上述任一实施例,所述意图解析单元820包括:

第一提取单元,用于在目标意图为代码补全的情况下,提取代码处理输入在终端代码处理界面中对应的输入文本和上文文本;

第一生成单元,用于基于输入文本、上文文本以及目标意图,生成待处理信息。

基于上述任一实施例,所述意图解析单元820包括:

第二提取单元,用于在目标意图为代码修改的情况下,从终端代码处理界面的问答区域提取代码处理输入对应的输入文本,并从终端代码处理界面的代码编辑区域提取代码处理输入对应的待修改代码;

第二生成单元,用于基于输入文本、待修改代码以及目标意图,生成待处理信息。

基于上述任一实施例,所述第二生成单元包括:

第三提取单元,用于从代码编辑区域提取与待修改代码关联的上下文代码;

第三生成单元,用于基于上下文代码,以及输入文本、待修改代码和目标意图,生成待处理信息。

基于上述任一实施例,所述意图解析单元820包括:

第四提取单元,用于在目标意图为代码解释、代码测试以及代码纠错中的任一种的情况下,从终端代码处理界面的代码编辑区域中提取代码处理输入对应的目标代码;

第四生成单元,用于基于代码处理输入对应的目标代码以及目标意图,生成待处理信息。

基于上述任一实施例,对代码处理输入进行场景意图解析,得到目标意图,包括以下至少一种:

对代码处理输入所对应输入文本的语义信息进行场景意图解析,得到目标意图;

基于代码处理输入所对应控件的控件功能,确定目标意图;

基于代码处理输入所对应光标的光标位置,确定目标意图。

基于上述任一实施例,所述输入接收单元810,包括:

在终端代码处理界面的问答区域,接收文本形式的代码处理输入;

和/或,

在终端代码处理界面的代码编辑区域,接收文本形式、控件点触形式和光标位移形式的代码处理输入。

基于上述任一实施例,图9是本发明提供的代码处理装置的结构示意图之二,如图9所示,该装置安装于服务端,包括:

信息接收单元910,用于接收终端发送的待处理信息,待处理信息是终端对终端代码处理界面下的代码处理输入进行场景意图解析,得到目标意图,并基于目标意图从终端代码处理界面中提取得到的;

语句生成单元920,用于基于待处理信息,生成携带待处理信息的提示语句;

语句发送单元930,用于将提示语句发送至代码模型,以使代码模型基于提示语句进行代码处理,并返回代码处理结果;

结果发送单元940,用于将代码处理结果发送至终端,以使终端在终端代码处理界面下显示。

基于上述任一实施例,待处理信息携带有目标意图;

语句生成单元920包括:

模板确定单元,用于确定目标意图对应的提示语句模板;

填充单元,用于基于待处理信息,对提示语句模板进行填充,得到提示语句。

基于上述任一实施例,填充单元用于:

将待处理信息中的代码、目标意图以及输入文本中的至少一种填充至提示语句模板中的对应位置,得到提示语句。

基于上述任一实施例,图10是本发明提供的代码处理系统的结构示意图,如图10所示,该系统包括:终端1010、服务端1020以及代码模型1030,代码模型基于大型语言模型训练得到,代码模型用于对输入的代码处理输入进行代码处理。其中,大型语言模型可以基于BERT模型、XLNet模型、ROBERTa模型、T5模型等预训练模型构建得到。

在一些具体实施方式中,代码处理系统进行代码处理的流程如下:

终端1010接收用户发送的代码处理输入,并对代码处理输入进行场景意图解析,得到目标意图,以及基于目标意图从终端代码处理界面中提取待处理信息。其中,代码处理输入携带有用户的身份信息,进而提取得到的待处理信息中也携带有用户的身份信息。

终端1010将待处理信息发送至服务端1020,服务端1020首先基于待处理信息中携带的用户的身份信息进行权限验证,在权限验证通过的情况下,服务端1020基于待处理信息,生成携带待处理信息的提示语句,并将提示语句发送至代码模型1030。

代码模型1030基于提示语句进行代码处理,得到代码处理结果,并将代码处理结果发送至服务端1020。

服务端1020将代码处理结果解析为自然语言,并将解析后的代码处理结果发送至终端1020,以使终端1020在终端代码处理界面下显示解析后的代码处理结果。

图11是本发明提供的电子设备的结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1110、存储器(memory)1120、通信接口(Communications Interface)1130和通信总线1140,其中,处理器1110,存储器1120,通信接口1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1120中的逻辑指令,以执行终端侧的代码处理方法,该方法包括:在终端代码处理界面下,接收代码处理输入;对所述代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取待处理信息;将所述待处理信息发送至服务端,以使所述服务端生成携带所述待处理信息的提示语句,将所述提示语句发送至代码模型,并使代码模型基于所述提示语句进行代码处理,得到代码处理结果;接收所述服务端返回的所述代码处理结果,并在所述终端代码处理界面下显示。

或,执行服务端侧的代码处理方法,该方法包括:接收终端发送的待处理信息,所述待处理信息是所述终端对终端代码处理界面下的代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取得到的;基于所述待处理信息,生成携带所述待处理信息的提示语句;将所述提示语句发送至代码模型,以使所述代码模型基于所述提示语句进行代码处理,并返回代码处理结果;将所述代码处理结果发送至所述终端,以使所述终端在所述终端代码处理界面下显示。

此外,上述的存储器1120中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的终端侧的代码处理方法,该方法包括:在终端代码处理界面下,接收代码处理输入;对所述代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取待处理信息;将所述待处理信息发送至服务端,以使所述服务端生成携带所述待处理信息的提示语句,将所述提示语句发送至代码模型,并使代码模型基于所述提示语句进行代码处理,得到代码处理结果;接收所述服务端返回的所述代码处理结果,并在所述终端代码处理界面下显示。

或,执行服务端侧的代码处理方法,该方法包括:接收终端发送的待处理信息,所述待处理信息是所述终端对终端代码处理界面下的代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取得到的;基于所述待处理信息,生成携带所述待处理信息的提示语句;将所述提示语句发送至代码模型,以使所述代码模型基于所述提示语句进行代码处理,并返回代码处理结果;将所述代码处理结果发送至所述终端,以使所述终端在所述终端代码处理界面下显示。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的终端侧的代码处理方法,该方法包括:在终端代码处理界面下,接收代码处理输入;对所述代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取待处理信息;将所述待处理信息发送至服务端,以使所述服务端生成携带所述待处理信息的提示语句,将所述提示语句发送至代码模型,并使代码模型基于所述提示语句进行代码处理,得到代码处理结果;接收所述服务端返回的所述代码处理结果,并在所述终端代码处理界面下显示。

或,执行服务端侧的代码处理方法,该方法包括:接收终端发送的待处理信息,所述待处理信息是所述终端对终端代码处理界面下的代码处理输入进行场景意图解析,得到目标意图,并基于所述目标意图从所述终端代码处理界面中提取得到的;基于所述待处理信息,生成携带所述待处理信息的提示语句;将所述提示语句发送至代码模型,以使所述代码模型基于所述提示语句进行代码处理,并返回代码处理结果;将所述代码处理结果发送至所述终端,以使所述终端在所述终端代码处理界面下显示。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 区块链数据共识处理方法、系统、存储介质和电子设备
  • 一种基于区块链的理赔事件的处理方法、系统及电子设备
  • 一种日志处理方法、系统及电子设备和存储介质
  • 层间多次波处理方法、系统、电子设备及可读介质
  • 滤镜效果的加速处理方法、存储介质、电子设备及系统
  • 代码处理方法、代码处理装置、电子设备以及存储介质
  • 代码运行方法、代码处理方法、电子设备及存储介质
技术分类

06120116486223