一种工作流增量生成方法、装置及计算设备集群与流程

未命名 09-08 阅读:117 评论:0


1.本技术涉及信息技术(information technology,it)技术领域,尤其涉及一种工作流增量生成方法、装置及计算设备集群。


背景技术:

2.随着it技术和移动互联网的快速发展,越来越多的传统企业为了降本增效,开始通过技术手段对企业的流程和管理进行改造,使业务发展更加高效和规范。而在数字化转型过程中,常常会遇到建设效率低、系统建设周期长、开发门槛高等问题。为了解决这一问题,低代码开发是一种有效的方法。低代码开发,旨在让开发人员可以尽可能少甚至不需要编写代码即可搭建应用。
3.目前,在进行低代码开发时,开发人员常使用低代码开发平台。但目前的低代码开发平台仅支持从零到一根据功能描述文本自动生成工作流,而不支持根据功能描述文本在已有工作流上进行修改。这导致当开发人员有修改已有工作流的需求时,往往需要重新从零到一构建工作流,致使应用的开发效率低下且上线进度慢。


技术实现要素:

4.本技术提供了一种工作流增量生成方法、装置、计算设备集群、计算机存储介质及计算机产品,能够在原始的工作流上增量生成新的工作流,为开发者低代码开发节约了时间成本,提高了开发效率。
5.第一方面,本技术提供一种工作流增量生成方法,包括:响应于开发者针对第一工作流的触发操作,在低代码开发平台的画布上显示第一工作流;响应于开发者在第一工作流上插入新的action的操作,获取新的action在第一工作流中的第一位置,以及,开发者输入的对在第一工作流上新增/优化功能对应的描述信息;根据第一工作流对应的代码、第一位置和描述信息,生成包含新增/优化功能的第二工作流对应的代码;基于第二工作流对应的代码,在低代码开发平台的画布上显示第二工作流。
6.这样,在已有的工作流上,开发者插入新的action和输入对在第一工作流上新增/优化功能对应的描述信息后,就可以自动增量生成新的工作流,从而为开发者低代码开发节约了时间成本,提高了开发效率。
7.在一种可能的方式中,根据第一工作流对应的代码、第一位置和描述信息,生成包含新增/优化功能的第二工作流对应的代码,包括:基于第一位置和描述信息,从第一工作流中筛选出至少一个需修改的节点,其中,需修改的节点为第一位置处的k阶(k≥1)邻接节点;根据第一工作流对应的代码、第一位置、描述信息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码。这样,就可以基于第一工作流对应的代码、第一位置和描述信息自动生成新的工作流对应的代码。
8.在一种可能的方式中,基于第一位置和描述信息,从第一工作流中筛选出至少一个需修改的节点,包括:对描述信息进行拆分,以得到至少一个子任务描述文本;分别计算
各个子任务描述文本与第一位置处的k阶邻接节点中各个节点对应的api的描述文件之间的相关性;基于计算得到的相关性结果,从第一位置处的k阶邻接节点中筛选出需修改的节点。这样,对开发者输入的描述信息进行拆分,并计算拆分得到的文本和第一位置处的k阶邻居节点中节点对应的api的描述文件之间的相关性,就可以自动从第一位置处的k阶邻接节点中筛选出需修改的节点,提升了开发效率。
9.在一种可能的方式中,基于计算得到的相关性结果,从k阶邻接节点中筛选出需修改的节点,包括:基于计算得到的相关性结果,从第一位置处的k阶邻接节点中筛选出至少一个节点;显示筛选出的节点;响应于开发者针对这些节点的筛选操作,将开发者选择保留的节点作为需修改的节点。这样,在筛选出节点后,可以由开发者进行筛选,并将筛选后的节点作为需修改的节点,提升了筛选出的节点的准确度,提升了后续生成的工作流的准确性。
10.在一种可能的方式中,还包括:在显示筛选出的节点时,显示这些节点中的各个节点与各个子任务描述文本之间的相关性。这样,开发者可以由相关性获知到各个节点对应的子任务描述文本的情况,便于开发者对节点进行筛选。
11.在一种可能的方式中,根据第一工作流对应的代码、第一位置、描述信息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码,包括:将第一工作流对应的代码、第一位置、描述信息和需修改的节点,均输入至神经网络模型进行处理,得到第二工作流对应的代码。这样,通过神经网络模型就可以自动生成第二工作流对应的代码,提升了开发效率。
12.在一种可能的方式中,根据第一工作流对应的代码、第一位置、描述信息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码,包括:将第一工作流对应的代码、第一位置、描述信息和需修改的节点,均输入至神经网络模型进行处理,得到至少一个第三工作流对应的代码;基于至少一个第三工作流对应的代码,显示至少一个第三工作流;响应于开发者针对至少一个第三工作流的筛选操作,将开发者选择保留的工作流作为第二工作流。这样,开发者可以根据自身需求选择适于自己的工作流,保证了开发者对生成的第二工作流的满意度。
13.在一种可能的方式中,还包括:在显示至少一个第三工作流时,显示各个第三工作流的质量评分。这样,开发者可以基于质量评分更好的选择适于自己的工作流,实现了开发者可配置工作流,提升了用户体验,和筛选的准确度。
14.第二方面,本技术提供一种工作流增量生成装置,包括:显示模块和处理模块。其中,显示模块用于响应于开发者针对第一工作流的触发操作,在低代码开发平台的画布上显示第一工作流。处理模块用于响应于开发者在第一工作流上插入新的action的操作,获取新的action在第一工作流中的第一位置,以及,开发者输入的对在第一工作流上新增/优化功能对应的描述信息。处理模块还用于根据第一工作流对应的代码、第一位置和描述信息,生成包含新增/优化功能的第二工作流对应的代码。显示模块还用于基于第二工作流对应的代码,在低代码开发平台的画布上显示第二工作流。
15.在一种可能的方式中,处理模块在根据第一工作流对应的代码、第一位置和描述信息,生成包含新增/优化功能的第二工作流对应的代码时,具体用于:基于第一位置和描述信息,从第一工作流中筛选出至少一个需修改的节点,其中,需修改的节点为第一位置处
的k阶(k≥1)邻接节点;根据第一工作流对应的代码、第一位置、描述信息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码。
16.在一种可能的方式中,处理模块在基于第一位置和描述信息,从第一工作流中筛选出至少一个需修改的节点时,具体用于:对描述信息进行拆分,以得到至少一个子任务描述文本;分别计算各个子任务描述文本与第一位置处的k阶邻接节点中各个节点对应的api的描述文件之间的相关性;基于计算得到的相关性结果,从第一位置处的k阶邻接节点中筛选出需修改的节点。
17.在一种可能的方式中,处理模块在基于计算得到的相关性结果,从k阶邻接节点中筛选出需修改的节点时,具体用于:基于计算得到的相关性结果,从第一位置处的k阶邻接节点中筛选出至少一个节点。
18.显示模块,还用于:显示筛选出的节点。
19.处理模块,还用于:响应于开发者针对这些节点的筛选操作,将开发者选择保留的节点作为需修改的节点。
20.在一种可能的方式中,显示模块在显示筛选出的节点时,还用于显示这些节点中的各个节点与各个子任务描述文本之间的相关性。
21.在一种可能的方式中,处理模块在根据第一工作流对应的代码、第一位置、描述信息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码时,具体用于:将第一工作流对应的代码、第一位置、描述信息和需修改的节点,均输入至神经网络模型进行处理,得到第二工作流对应的代码。
22.在一种可能的方式中,处理模块在根据第一工作流对应的代码、第一位置、描述信息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码时,具体用于:将第一工作流对应的代码、第一位置、描述信息和需修改的节点,均输入至神经网络模型进行处理,得到至少一个第三工作流对应的代码。
23.显示模块,还用于基于至少一个第三工作流对应的代码,显示该至少一个第三工作流。
24.处理模块,还用于响应于开发者针对至少一个第三工作流的筛选操作,将开发者选择保留的工作流作为第二工作流。
25.在一种可能的方式中,显示模块在显示至少一个第三工作流时,还用于显示各个第三工作流的质量评分。
26.第三方面,本技术提供一种计算设备集群,包括至少一个计算设备,每个计算设备均包括处理器和存储器;至少一个计算设备的处理器用于执行至少一个计算设备的存储器中存储的指令,以使得计算设备集群执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
27.第四方面,本技术提供一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备集群执行时,计算设备集群执行第一方面或第一方面的任一种可能的实现方式所描述的方法。示例性的,计算设备集群中可以包括一个或多个计算设备。
28.第五方面,本技术提供一种包含指令的计算机程序产品,当指令被计算设备集群运行时,使得计算设备集群执行第一方面或第一方面的任一种可能的实现方式所描述的方法。示例性的,计算设备集群中可以包括一个或多个计算设备。
29.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
30.图1是本技术实施例提供的一种工作流增量生成系统的架构示意图;
31.图2是本技术实施例提供的一种工作流增量生成过程示意图;
32.图3是本技术实施例提供的一种工作流增量生成方法的流程示意图;
33.图4是本技术实施例提供的一种在一个工作流上增量生成新工作流的过程示意图;
34.图5是本技术实施例提供的一种生成包含新增/优化功能的第二工作流对应的代码的步骤示意图;
35.图6是本技术实施例提供的一种对原始的描述信息进行优化改写、扩写及拆分后的示意图;
36.图7是本技术实施例提供的一张工作流增量生成技术方案的整体架构的示意图;
37.图8是本技术实施例提供的一种工作流增量生成装置的结构示意图;
38.图9是本技术实施例提供的一种计算设备的结构示意图;
39.图10是本技术实施例提供的一种计算设备集群的结构示意图;
40.图11是本技术实施例提供的另一种计算设备集群的结构示意图。
具体实施方式
41.本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本文中符号“/”表示关联对象是或者的关系,例如a/b表示a或者b。
42.本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
43.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
44.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
45.首先,对本技术实施例涉及的一些技术术语进行介绍。
46.(1)低代码开发平台
47.低代码开发平台是一种软件开发工具或平台,它旨在帮助开发人员以最小的编码工作量和复杂性创建应用程序。低代码开发平台通过提供图形化界面、可视化编程工具和预构建组件等功能,将应用程序开发的技术门槛降低到最低程度。使用低代码开发平台,开发人员可以通过拖放组件、配置属性和逻辑,而不需要编写大量的手动代码来构建应用程
序。这些平台通常提供了丰富的预构建组件库,包括用户界面元素、数据库连接、业务逻辑和集成服务等,使开发人员能够快速组装和定制应用程序的各个部分。
48.(2)画布(canvas)
49.在低代码开发平台中,画布是指提供可视化开发环境的工作区域,用于构建和设计应用程序的用户界面、逻辑流程和交互体验。画布通常以图形化界面的形式呈现,并提供了一系列的工具、组件和控件,以帮助开发人员快速创建和定制应用程序。在画布上,开发人员可以进行拖放、连接、调整大小和配置,以构建应用程序的用户界面和功能。
50.(3)触发器(trigger)
51.在低代码开发平台中,触发器是指用于启动应用程序中某个操作或事件的条件或事件源。它们可以是用户操作、系统事件、定时器或外部系统的触发事件,用于触发应用程序中的相应动作或逻辑。触发器可以与应用程序的不同部分相关联,例如:表单提交、按钮点击、数据更新、定时任务等。当触发器的条件满足时,低代码平台会触发预定义的操作或事件。触发器的设置和配置通常是通过低代码平台提供的可视化界面或配置工具进行完成。开发人员可以定义触发器条件、关联要执行的操作、设触发器的优先级和处理方式等。通过触发器,低代码平台可以实现应用程序的自动化、交互和事件驱动功能。
52.(4)操作(action)
53.在低代码开发平台中,action是指在trigger触发后执行的特定操作或逻辑,其通常是具体执行某一操作或功能的应用编程接口(application programming interface,api)。当trigger满足其定义的条件时,相应的action将被执行。action可以是对数据的操作、调用外部服务、发送通知、执行业务逻辑等等。它们用于对触发事件做出响应,并在应用程序中执行一系列任务或操作。
54.(5)节点(node)
55.节点是低代码开发平台的画布中的概念,其是指可视化编程中的图形化元素,用于表示特定的操作或功能。示例性的,节点可以是触发器和action二者的统称。
56.接下来,对本技术实施例提供的技术方案进行介绍。
57.示例性的,图1示出了本技术实施例提供的一种工作流增量生成系统的架构示意图。如图1所示,该工作流增量生成系统100中可以包括:终端设备110和服务器120。终端设备110和服务器120之间可以通过网络建立通信连接。开发者通过终端设备110可以使用(例如,租用或购买等)服务器120提供的低代码开发服务,以在终端设备110进行低代码开发。示例性的,终端设备110可以平板电脑、笔记本电脑、手机或者人工智能(artificial intelligence,ai)设备,本技术实施例对该终端设备110的具体类型不作特殊限制。服务器120可以是中心服务器、边缘服务器,或者,云服务器等,本技术实施例对该服务器120的具体类型不作特殊限制。在一些实施例中,在终端设备110上也可以配置有单机版的低代码开发平台,此时开发者可以直接在终端设备110上进行低代码开发,且该系统100中可以不包含服务器120,具体可根据实际情况而定,此处不做限定。
58.在图1所示的系统架构下,如图2所示,工作流增量生成的过程主要包括:在低代码开发平台上打开待修改的工作流、在该工作流中插入新的action和输入功能描述文本/语音、在该工作流中定位需修改的上下游节点,以及,自动生成修改后的工作流。其中,在生成修改后的工作流后,开发者可以进行调试,并在调试完成后发布工作流。
59.下面对图2中所描述的部分或全部过程进行详细描述。
60.示例性的,图3示出了本技术实施例提供的一种工作流增量生成方法的流程示意图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。
61.如图3所示,该工作流增量生成方法可以包括以下步骤:
62.s301、响应于开发者针对第一工作流的触发操作,在低代码开发平台的画布上显示第一工作流。
63.本实施例中,开发者可以通过终端设备110开启低代码开发平台,并在低代码开发平台上打开其需要修改的第一工作流,之后,该低代码开发平台的画布上可以显示出第一工作流。示例性的,开发者针对第一工作流的触发操作可以理解为是开发者打开第一工作流的操作。
64.s302、响应于开发者在第一工作流上插入新的action的操作,获取该新的action在第一工作流中的第一位置,以及,开发者输入的对在第一工作流的新增/优化功能对应的描述信息。
65.本实施例中,开发者可以在第一工作流上其所需修改的位置处插入一个新的action。例如,如图4所示,当第一工作流如图4的(a)所示时,开发者可以在位置41处插入一个action。在开发者完成在第一工作流上插入新的action的操作后,即可以获取到插入该新的action的操作。之后,低代码开发平台可以获取第一工作流所在画布的定义数据(当然,也可以在开发者打开第一工作流时获取,或者其他时间获取,此处不做限定),以及,通过该定义数据获取到开发者插入的新的action在第一工作流中的第一位置。示例性的,画布的定义数据可以为画布中代码设计的内容(即第一工作流对应的代码)等。
66.另外,开发者也可以在第一工作流所在的画布上输入对第一工作流的新增/优化功能对应的描述信息。其中,该描述信息可以为文字,也可以为语音,此处不做限定。当开发者输入的描述信息是语音时,低代码开发平台可以使用自然语言处理和机器学习技术等将语音转换为可读的文字。
67.本实施例中,开发者可以先在第一工作流上第一位置处插入新的action,再在画布上的某个位置处输入描述信息。例如,继续参阅图4,在图4的(a)中,在开发者选择在位置41处插入action后,如图4的(b)所示,在画布上的区域32中可以显示出一个文本/语音输入框;之后,开发者可以在该输入框中输入描述信息。另外,开发者也可以先在画布上的某个位置处输入描述信息,然后再选择在第一工作流上的第一位置处插入新的action。对于插入action和输入描述信息的顺序,具体可根据实际情况而定,此处不做限定。
68.s303、根据第一工作流对应的代码、第一位置和描述信息,生成包含新增/优化功能的第二工作流对应的代码。
69.本实施例中,在获取到第一位置和描述信息后,可以将第一工作流对应的代码、第一位置和描述信息,均输入至神经网络模型中,以由神经网络模型生成包含新增/优化功能的第二工作流对应的代码。示例性的,第二工作流对应的代码可以为json格式。
70.s304、基于第二工作流对应的代码,在低代码开发平台的画布上显示第二工作流。
71.本实施例中,可以通过低代码平台运行第二工作流对应的代码,这样,就可以在低代码开发平台的画布上显示出第二工作流。
72.这样,在已有的工作流上,开发者插入新的action和输入对在第一工作流上新增/优化功能对应的描述信息后,就可以自动增量生成新的工作流,从而为开发者低代码开发节约了时间成本,提高了开发效率。
73.在一些实施例中,如图5所示,前述的s303可以包括以下步骤:
74.s3031、基于第一位置和描述信息,从第一工作流中筛选出至少一个需修改的节点,其中,需修改的节点为第一位置处的k阶(k≥1)邻接节点。
75.本实施例中,可以至少通过描述信息,在第一工作流中第一位置处的k阶邻接节点中进行节点筛选,以筛选出至少一个需修改的节点。其中,对于第一位置处的k阶邻居节点,k的值可以预先设定,当k=1时,筛选出的邻居节点均是可以直接与第一位置连接的节点,当k=2时,筛选出的邻居节点既可以包括直接与第一位置连接的节点,也可以包括与目标节点(即直接与第一位置连接的节点)直接连接的节点。例如,继续参阅图4的(a),当k=1时,位置41的邻接节点为action3、4、5和6;当k=2时,位置41的邻接节点为action1、2、3、4、5和6;当k=3时,位置41的邻接节点为trigger、action1、2、3、4、5和6。
76.示例性的,由于开发者输入的描述信息可能偏口语化,所以可以对该描述信息进行优化改写及扩写,并拆分成至少一个子任务描述文本。示例性的,可以通过神经网络或预置的规则(比如:词表映射、场景模板等)等,对开发者输入的描述信息进行处理,以完成对描述信息的优化改写及扩写。接着,可以通过神经网络,并利用语义相似度、注意力(attention)等对经优化改写及扩写得到的描述信息进行拆分,以得到至少一个子任务描述文本。例如,如图6所示,对原始的描述信息进行优化改写及扩写,并拆分后,可以得到4个子任务描述文本。
77.接着,可以分别计算各个子任务描述文本和第一位置处的k阶邻接节点中各个节点对应的api的描述文件之间的关联程度(也可以称之为“相关性”)。然后,基于计算得到的相关性结果,从第一位置处的k阶邻接节点中筛选出至少一个需修改的节点。例如,可以对相关性结果对应的数值从大到小进行排序,并选取排序靠前的至少一个节点作为需修改的节点。示例性的,可以通过子任务描述文本和第一位置处的k阶邻接节点中节点对应的api的描述文件中各个文件间的语义相似度,来计算两者之间的相关性。例如,当一个子任务描述文本和某个节点对应的api的描述文件之间的语义相似度大于预设值时,表明两者的关联程度较高,因此可以将该节点作为所需修改的节点。示例性的,某个节点对应的api的描述文件可以包含有对该节点的描述信息。
78.作为一种可能的实现方式,在自动筛选出需修改的节点后,还可以在画布上显示这些节点,以让开发者进行筛选。由此以使得开发者可以根据自己的实际需求对所需修改的节点进行增加或剔除等。其中,开发者可以下发对这些节点的筛选操作,之后,可以将开发者选择保留的节点作为所需修改的节点。另外,还可以在画布上显示各个子任务描述文本,以及筛选出的节点分别与哪个子任务描述文本相关联,比如:相关联的节点和子任务描述文本可以用同一颜色进行显示等,和/或,显示这些节点中各个节点与各个子任务描述文本的关联程度,等等。由此以使得开发者可以了解到需要对节点进行修改的内容,便于开发者对所需修改的节点进行调整。举例来说,继续参阅图4,在图4的(b)中,开发者输入描述信息后,可以显示如图4的(c)所示的界面。在图4的(c)中,action1、3、4、5和6均是需修改的节点,且action1和4与同一子任务描述文本关联,action3和6与同一子任务描述文本关联。
79.s3032、将第一工作流(即原始的工作流)对应的代码、所需修改的节点、第一位置和描述信息输入至训练完成的神经网络模型,以得到包含新增/优化功能的第二工作流(即增量生成的工作流)对应的代码。
80.本实施例中,可以通过预训练完成的神经网络模型对第一工作流对应的代码、所需修改的节点、第一位置和描述信息进行处理,以得到包含新增/优化功能的第二工作流对应的代码。例如,继续参阅图4,在图4的(c)中,开发者在完成确认后,可以生成如图4的(d)所示的工作流。其中,在图4的(d)中,新增了action7,删除了图4的(c)中的action 6,并将对图4的(c)中的action1、3、4和5进行了替换。示例性的,神经网络模型的输出可以但不限于为包含新增/优化功能的第二工作流对应的代码。示例性的,当对描述信息进行拆分时,输入至神经网络模型的描述信息可以为拆分得到的各个子任务描述文本。示例性的,神经网络模型可以为卷积神经网络(convolutional neural networks,cnn)、循环神经网络(recurrent neural network,rnn)或者语言模型(language model,lm)等等。
81.在一些实施例中,神经网络模型的输出还可以为多个候选的工作流(也可以称之为“第三工作流”)对应的代码。此时,低代码平台可以运行这些代码,并在画布上显示出这些候选的工作流,以及显示各个候选的工作流的质量评分(当然也可以不显质量评分)。示例性的,工作流的质量评分可以为action性能、action参数量、action费用、action发布日期/更新日期、工作流分支个数/复杂度等各个质量的评分,也可以为这些信息单独的质量评分,此处不做限定。之后,开发者可以根据自身需求,和/或,基于各个候选的工作流的质量分数,从中筛选出一个工作流作为所需的工作流(即前述的第二工作流),由此实现开发者可配置工作流。另外,还可以在工作流中标识出更改前后的工作流,以使得开发者获知到哪些节点发生了变化。
82.为便于理解,下面基于上述内容,对本技术实施例提供的工作流增量生成技术方案的总体架构进行介绍。
83.示例性的,图7示出了本技术实施例提供的工作流增量生成技术方案的整体架构的示意图。如图7所示,该工作流增量生成技术方案的整体结构主要包括:模型训练阶段和工作流增量生成阶段。
84.其中,模型训练阶段主要是对工作流增量生成阶段所需的神经网络模型进行训练。该阶段所需的数据主要为:开发者在修改工作流时输入的原始描述文本/语音(即增量修改原始描述文本/语音)、原始画布定义数据、工作流中各个可修改的位置和包含新增/优化功能的画布的定义数据。其中,原始画布定义数据中可以包括成功发布的工作流和未成功发布的工作流。对该原始画布定义数据进行过滤,即可以得到由成功发布的工作流组成的画布数据集。工作流上下游节点感知分析模块主要是用对优化后的描述文本和优化后的由语音转换的文本进行拆分,以得到子任务描述文本,以及,对各个位置的上下游节点依赖关系进行分析,同时,对上下游节点范围进行选取,以得到需修改的节点。工作流上下游节点感知分析模块在分析出各个数据后,可以将这些数据以及原始的工作流对应的代码均输入至神经网络模型中,以对神经网络模型进行训练。在训练过程中,可以先进行无监督学习的训练,再进行有监督学习的训练,最后再基于用户反馈的学习方法对神经网络模型进行训练。其中,在有监督学习过程中的标签数据可以为包含新增/优化功能的画布的定义数据。另外,基于用户反馈的学习方法是指通过收集用户提供的反馈信息,将其作为训练数据
的一部分,以改善模型的性能。通过基于用户反馈的训练方法可以帮助模型逐渐从用户反馈中学习,并提高其在特定任务或应用中的表现;通过不断的迭代和调整,模型可以逐渐对齐用户的需求和偏好,并提供更加准确和满意的结果。在完成模型训练后,可以将训练完成的神经网络模型保存,并部署在云侧或端侧等。
85.工作流增量生成阶段主要是基于训练出的神经网络模型增量生成工作流。这个过程可以参见前述图3中的描述,此处不再赘述。
86.可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。此外,在一些可能的实现方式中,上述实施例中的各步骤可以根据实际情况选择性执行,可以部分执行,也可以全部执行,此处不做限定。
87.以上即是对本技术实施例提供的工作流增量生成方案的介绍。接下来,基于上述实施例中的方法,对本技术实施例提供的一种工作流增量生成装置进行介绍。
88.示例性的,图8示出了本技术实施例提供的一种工作流增量生成装置的结构示意图。如图8所示,该工作流增量生成装置800可以包括:显示模块801和处理模块802。其中,显示模块801用于响应于开发者针对第一工作流的触发操作,在低代码开发平台的画布上显示第一工作流。处理模块802用于响应于开发者在第一工作流上插入新的action的操作,获取新的action在第一工作流中的第一位置,以及,开发者输入的对在第一工作流上新增/优化功能对应的描述信息。处理模块802还用于根据第一工作流对应的代码、第一位置和描述信息,生成包含新增/优化功能的第二工作流对应的代码。显示模块801还用于基于第二工作流对应的代码,在低代码开发平台的画布上显示第二工作流。
89.在一些实施例中,处理模块802在根据第一工作流对应的代码、第一位置和描述信息,生成包含新增/优化功能的第二工作流对应的代码时,具体用于:基于第一位置和描述信息,从第一工作流中筛选出至少一个需修改的节点,其中,需修改的节点为第一位置处的k阶(k≥1)邻接节点;根据第一工作流对应的代码、第一位置、描述信息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码。
90.在一些实施例中,处理模块802在基于第一位置和描述信息,从第一工作流中筛选出至少一个需修改的节点时,具体用于:对描述信息进行拆分,以得到至少一个子任务描述文本;分别计算各个子任务描述文本与第一位置处的k阶邻接节点中各个节点对应的api的描述文件之间的相关性;基于计算得到的相关性结果,从第一位置处的k阶邻接节点中筛选出需修改的节点。
91.在一些实施例中,处理模块802在基于计算得到的相关性结果,从k阶邻接节点中筛选出需修改的节点时,具体用于:基于计算得到的相关性结果,从第一位置处的k阶邻接节点中筛选出至少一个节点。
92.显示模块801,还用于:显示筛选出的节点。
93.处理模块802,还用于:响应于开发者针对这些节点的筛选操作,将开发者选择保留的节点作为需修改的节点。
94.在一些实施例中,显示模块801在显示筛选出的节点时,还用于显示这些节点中的各个节点与各个子任务描述文本之间的相关性。
95.在一些实施例中,处理模块802在根据第一工作流对应的代码、第一位置、描述信
息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码时,具体用于:将第一工作流对应的代码、第一位置、描述信息和需修改的节点,均输入至神经网络模型进行处理,得到第二工作流对应的代码。
96.在一些实施例中,处理模块802在根据第一工作流对应的代码、第一位置、描述信息和需修改的节点,生成包含新增/优化功能的第二工作流对应的代码时,具体用于:将第一工作流对应的代码、第一位置、描述信息和需修改的节点,均输入至神经网络模型进行处理,得到至少一个第三工作流对应的代码。
97.显示模块801,还用于基于至少一个第三工作流对应的代码,显示至少一个第三工作流。
98.处理模块802,还用于响应于开发者针对至少一个第三工作流的筛选操作,将开发者选择保留的工作流作为第二工作流。
99.在一些实施例中,显示模块801在显示至少一个第三工作流时,还用于显示各个第三工作流的质量评分。
100.在一些实施例中,图8中所示的获取模块801和处理模块802均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来以获取模块801为例,介绍获取模块801的实现方式。类似的,处理模块802的实现方式可以参考获取模块801的实现方式。
101.模块作为软件功能单元的一种举例,获取模块801可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,获取模块801可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,az)中,也可以分布在不同的az中,每个az包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个az。
102.同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,vpc)中,也可以分布在多个vpc中。其中,通常一个vpc设置在一个region内,同一region内两个vpc之间,以及不同region的vpc之间跨区通信需在每个vpc内设置通信网关,经通信网关实现vpc之间的互连。
103.模块作为硬件功能单元的一种举例,获取模块801可以包括至少一个计算设备,如服务器等。或者,获取模块801也可以是利用专用集成电路(application-specific integrated circuit,asic)实现、或可编程逻辑器件(programmable logic device,pld)实现的设备等。其中,上述pld可以是复杂程序逻辑器件(complex programmable logical device,cpld)、现场可编程门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合实现。
104.获取模块801包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。获取模块801包括的多个计算设备可以分布在相同的az中,也可以分布在不同的az中。同样,获取模块801包括的多个计算设备可以分布在同一个vpc中,也可以分布在多个vpc中。其中,所述多个计算设备可以是服务器、asic、pld、cpld、fpga和gal等计算设备的任意组合。
105.需要说明的是,在其他实施例中,获取模块801可以用于执行上述实施例描述的工作流增量生成方法中的任意步骤,处理模块802可以用于执行上述实施例描述的工作流增量生成方法中的任意步骤,获取模块801和处理模块802负责实现的步骤可根据需要指定,通过获取模块801和处理模块802分别实现上述实施例描述的工作流增量生成方法中不同的步骤来实现图8所示的工作流增量生成装置800的全部功能。
106.本技术还提供一种计算设备900。如图9所示,计算设备900包括:总线902、处理器904、存储器906和通信接口908。处理器904、存储器906和通信接口908之间通过总线902通信。计算设备900可以是服务器或终端设备。应理解,本技术不限定计算设备900中的处理器、存储器的个数。
107.总线902可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线904可包括在计算设备900各个部件(例如,存储器906、处理器904、通信接口908)之间传送信息的通路。
108.处理器904可以包括中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、微处理器(micro processor,mp)或者数字信号处理器(digital signal processor,dsp)等处理器中的任意一种或多种。
109.存储器906可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram)。处理器904还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器,机械硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd)。
110.存储器906中存储有可执行的程序代码,处理器904执行该可执行的程序代码以分别实现前述图8中所示的获取模块801和处理模块802的功能,从而实现上述实施例描述的工作流增量生成方法。也即,存储器906上存有用于执行上述实施例描述的工作流增量生成方法的指令。
111.或者,存储器906中存储有可执行的代码,处理器904执行该可执行的代码以分别实现前述图8中所示的工作流增量生成装置800的功能,从而实现上述实施例描述的工作流增量生成方法。也即,存储器906上存有用于执行上述实施例描述的工作流增量生成方法的指令。
112.通信接口903使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备900与其他设备或通信网络之间的通信。
113.本技术实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
114.如图10所示,所述计算设备集群包括至少一个计算设备900。计算设备集群中的一个或多个计算设备900中的存储器906中可以存有相同的用于执行上述实施例描述的工作流增量生成方法的指令。
115.在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备900的存储
器906中也可以分别存有用于执行上述实施例描述的工作流增量生成方法的部分指令。换言之,一个或多个计算设备900的组合可以共同执行用于执行上述实施例描述的工作流增量生成方法的指令。
116.需要说明的是,计算设备集群中的不同的计算设备900中的存储器906可以存储不同的指令,分别用于执行前述图8所示的工作流增量生成装置800的部分功能。也即,不同的计算设备900中的存储器906存储的指令可以实现获取模块801和处理模块802中的一个或多个模块的功能。
117.在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图11示出了一种可能的实现方式。如图11所示,两个计算设备900a和900b之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备900a中的存储器906中存有执行显示模块801的功能的指令。同时,计算设备900b中的存储器906中存有执行处理模块802的功能的指令。
118.应理解,图11中示出的计算设备900a的功能也可以由多个计算设备900完成。同样,计算设备900b的功能也可以由多个计算设备900完成。
119.本技术实施例还提供了另一种计算设备集群。该计算设备集群中各计算设备之间的连接关系可以类似的参考图10和图11所述计算设备集群的连接方式。不同的是,该计算设备集群中的一个或多个计算设备900中的存储器906中可以存有相同的用于执行上述实施例中方法的指令。
120.在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备900的存储器906中也可以分别存有用于执行前述数据处理方法的部分指令。换言之,一个或多个计算设备900的组合可以共同执行用于执行前述数据处理方法的指令。
121.基于上述实施例中的方法,本技术实施例提供了一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备执行时,计算设备执行上述实施例中的方法;或者,当计算机程序指令由计算设备集群执行时,计算设备集群执行上述实施例中的方法。示例性的,该计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。
122.基于上述实施例中的方法,本技术实施例提供了一种包含指令的计算机程序产品,当指令被计算设备运行时,使得计算设备执行上述实施例中的方法,或者,当指令被计算设备集群运行时,使得计算设备集群执行上述实施例中的方法。
123.可以理解的是,本技术的实施例中的处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
124.本技术的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随
机存取存储器(random access memory,ram)、闪存、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。
125.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
126.可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。
127.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的保护范围。

技术特征:
1.一种工作流增量生成方法,其特征在于,所述方法包括:响应于开发者针对第一工作流的触发操作,在低代码开发平台的画布上显示所述第一工作流;响应于所述开发者在所述第一工作流上插入新的action的操作,获取所述新的action在所述第一工作流中的第一位置,以及,所述开发者输入的对在所述第一工作流上新增/优化功能对应的描述信息;根据所述第一工作流对应的代码、所述第一位置和所述描述信息,生成包含所述新增/优化功能的第二工作流对应的代码;基于所述第二工作流对应的代码,在低代码开发平台的画布上显示所述第二工作流。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一工作流对应的代码、所述第一位置和所述描述信息,生成包含所述新增/优化功能的第二工作流对应的代码,包括:基于所述第一位置和所述描述信息,从所述第一工作流中筛选出至少一个需修改的节点,其中,所述需修改的节点为所述第一位置处的k阶(k≥1)邻接节点;根据所述第一工作流对应的代码、所述第一位置、所述描述信息和所述需修改的节点,生成包含所述新增/优化功能的第二工作流对应的代码。3.根据权利要求2所述的方法,其特征在于,所述基于所述第一位置和所述描述信息,从所述第一工作流中筛选出至少一个需修改的节点,包括:对所述描述信息进行拆分,以得到至少一个子任务描述文本;分别计算各个所述子任务描述文本与所述第一位置处的k阶邻接节点中各个节点对应的api的描述文件之间的相关性;基于计算得到的相关性结果,从所述第一位置处的k阶邻接节点中筛选出所述需修改的节点。4.根据权利要求3所述的方法,其特征在于,所述基于计算得到的相关性结果,从所述k阶邻接节点中筛选出所述需修改的节点,包括:基于计算得到的相关性结果,从所述第一位置处的k阶邻接节点中筛选出至少一个节点;显示所述至少一个节点;响应于所述开发者针对所述至少一个节点的筛选操作,将所述开发者选择保留的节点作为所述需修改的节点。5.根据权利要求4所述的方法,其特征在于,还包括:在显示所述至少一个节点时,显示所述至少一个节点中的节点与所述子任务描述文本之间的相关性。6.根据权利要求2-5任一所述的方法,其特征在于,所述根据所述第一工作流对应的代码、所述第一位置、所述描述信息和所述需修改的节点,生成包含所述新增/优化功能的第二工作流对应的代码,包括:将所述第一工作流对应的代码、所述第一位置、所述描述信息和所述需修改的节点,均输入至神经网络模型进行处理,得到所述第二工作流对应的代码。7.根据权利要求2-5任一所述的方法,其特征在于,所述根据所述第一工作流对应的代
码、所述第一位置、所述描述信息和所述需修改的节点,生成包含所述新增/优化功能的第二工作流对应的代码,包括:将所述第一工作流对应的代码、所述第一位置、所述描述信息和所述需修改的节点,均输入至神经网络模型进行处理,得到至少一个第三工作流对应的代码;基于所述至少一个第三工作流对应的代码,显示所述至少一个第三工作流;响应于所述开发者针对所述至少一个第三工作流的筛选操作,将所述开发者选择保留的工作流作为所述第二工作流。8.根据权利要求7所述的方法,其特征在于,还包括:在显示所述至少一个第三工作流时,显示各个所述第三工作流的质量评分。9.一种工作流增量生成装置,其特征在于,包括:显示模块,用于响应于开发者针对第一工作流的触发操作,在低代码开发平台的画布上显示所述第一工作流;处理模块,用于响应于所述开发者在所述第一工作流上插入新的action的操作,获取所述新的action在所述第一工作流中的第一位置,以及,所述开发者输入的对在所述第一工作流上新增/优化功能对应的描述信息;所述处理模块,还用于根据所述第一工作流对应的代码、所述第一位置和所述描述信息,生成包含所述新增/优化功能的第二工作流对应的代码;所述显示模块,还用于基于所述第二工作流对应的代码,在低代码开发平台的画布上显示所述第二工作流。10.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备均包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1-8任一所述的方法。11.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1-8任一所述的方法,其中,所述计算设备集群包括至少一个计算设备。12.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1-8任一所述的方法,其中,所述计算设备集群包括至少一个计算设备。

技术总结
一种工作流增量生成方法,包括:响应于开发者针对第一工作流的触发操作,在低代码开发平台的画布上显示第一工作流;响应于开发者在第一工作流上插入新的action的操作,获取新的action在第一工作流中的第一位置,以及开发者输入的对在第一工作流上新增/优化功能对应的描述信息;根据第一工作流对应的代码、第一位置和描述信息,生成包含新增/优化功能的第二工作流对应的代码;基于第二工作流对应的代码,在低代码开发平台的画布上显示第二工作流。这样,在已有的工作流上,开发者插入新的action和输入对在第一工作流上新增/优化功能对应的描述信息后,就可以自动增量生成新的工作流,从而为开发者低代码开发节约了时间成本,提高了开发效率。提高了开发效率。提高了开发效率。


技术研发人员:叶一达 胡建 王海涛
受保护的技术使用者:深圳华为云计算技术有限公司
技术研发日:2023.05.31
技术公布日:2023/9/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐