首页 / 一种基于决策引擎的决策方法及决策引擎系统

一种基于决策引擎的决策方法及决策引擎系统实质审查 发明

技术领域

[0001] 本申请涉及计算机技术领域,具体而言,涉及一种基于决策引擎的决策方法及决策引擎系统。

相关背景技术

[0002] 现有技术主要是通过调度系统建立虚拟机载入lua脚本,调度系统负责调度整个流转流程,流转过程中通过调用相关决策模型获取相关决策结果。决策过程相对来说是一个黑盒的过程,外部不需要感知到内部流程,只需要获取决策结果即可。但是,现有技术中决策流没有版本控制,决策流是单一版本维度,如果决策流有改动,要想获取到最新的决策流需要耗费不必要的时间。

具体实施方式

[0059] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
[0060] 请参照图1,图1为本申请实施例提供的一种基于决策引擎的决策方法步骤流程图,包括:
[0061] 步骤100、配置决策流,并将决策流发布到服务器,以生成对应的决策流路径;
[0062] 步骤200、根据业务调用方发送的输入数据,通过决策流路径读取服务器中的决策流,并调用决策引擎服务执行对应的策略,以得到决策结果。
[0063] 本申请实施例中,业务方进行决策流的配置,并且,在将决策流发布到服务器时生成对应的决策流路径,从而在业务调用方针对同一项目,需要进行决策时,可以根据决策流路径读取服务器中对应的决策流。因此,在决策流的配置更新后,也会相应生成新的决策流路径,根据新的决策流路径,业务调用方能够获取到最新的决策流,避免了现有技术因决策流没有版本控制导致需要耗费更多时间才能获取到最新的决策流的问题。
[0064] 具体的,请参照图2,图2为本申请实施例配置决策流的流程图,包括:
[0065] 首先需要配置项目,项目与项目直接通过前后端隔离,由于用户数据不在决策系统,所以权限隔离的方式是利用数据库权限字段+数据库用户筛选的方式实现。项目的建立主要是方便用户管理不同业务的决策流。
[0066] 在创建的项目中,建立关联字段的模型;其中,模型包括入参模型、出参模型和管道模型;入参模型用于配置请求决策结果时的请求参数,管道模型用于配置决策流计算时的中间参数,出参模型用于配置返回决策流结果时的输出参数。
[0067] 其中,字段是一个项目的字典库,创建决策流之前首先需要创建字段,字段分为字符串String、数字Number、日期Date、时间Time、日期时间DateTime、引用Rel,可以为字段添加校验器。引用类型需要关联模型。校验器是一个二级选择器,是已经在后台写好的固定校验类型,前端解析json表达式展示。还可以为字段添加转换器,转换器主要是字段类型的相互转化,比如字符串“1”转化为数字1等等。模型是字段的载体,一个模型可以关联多个字段,模型也可以关联到字段上,这样就实现了嵌套关系,从而可以构建出完整的字段关联层级关系。
[0068] 新建空白决策流,并为决策流关联模型。
[0069] 新建决策图,在决策图中,根据模型配置决策节点需要计算或者判断条件的字段,生成决策流。
[0070] 本申请实施例中,在第一次针对新项目配置决策流时,会建立关联字段的模型,模型包括了用于配置请求决策结果时的请求参数的入参模型、用于配置决策流计算时的中间参数的管道模型和用于配置返回决策流结果时的输出参数的出参模型,在将新建的决策流关联模型后,能够在新建的决策图中根据需要配置决策图中的决策节点所需的字段。本实施例中,在新建这些模型时,尽量涵盖到项目中用到的所有字段,使得决策流在更新配置时,可以直接从这些模型中选择需要更新的字段。当然,在决策流更新配置时,有可能出现无法从当前模型中获取想要的字段的情况,此时,需要先进行模型的更新。
[0071] 其中,关于入参模型对应的请求参数、出参模型对应的输出参数和管道模型对应的中间参数,例如图3,图3为本申请实施例提供的决策图示意图,该实施例中首先请求决策流的请求参数,该请求参数包括“面积120平米”、“单价10000元”、“贷款年限7年”、“消费贷”,之后,在“路由节点1”判断为“消费贷”,然后流转到“决策节点1”。“决策节点1”判断面积大于100平米,然后流转到“决策节点3”。“决策节点3”通过计算房屋总价函数计算出房屋总价,并以“总价”做为中间管道参数然后流转到“决策节点4”。“决策节点4”根据总价×0.7计算出额度,然后判断“贷款年限7年”大于5年,利率为5.15%,最后决策流结束,得到输出参数,改输出参数包括“总价120万元”、“利率5.15%”,“额度84万”。
[0072] 在一些可选的实施方式中,其中,决策节点包括开始节点、结束节点和普通节点。
[0073] 对应的,本实施例中,新建决策图,包括:设置开始节点、结束节点和有向无环图;在有向无环图中添加多个普通节点;其中,普通节点包括路由节点和决策节点;路由节点负责控制决策流的走向,通过判断条件来控制决策流;决策节点用来判断决策的结果,并输出决策内容。
[0074] 本申请实施例中,决策图由开始节点、结束节点和有向无环图构成,用户可以自由添加普通节点,连接节点确定决策流走向。决策节点有三种类型:开始节点、结束节点、普通节点。开始节点和结束节点只能有一个,普通节点无限制,但是必须配置节点规则。普通节点有两种:路由节点、决策节点。选择类型后只能配置对应的规则。路由节点负责控制决策流的走向,通过判断条件来控制决策流。而决策节点则用来判断最终的决策结果,并输出决策内容。
[0075] 在一些可选的实施方式中,新建决策图,还包括:配置普通节点的规则;配置规则后的决策流的节点规则,通过规则树渲染到前端展示;并且,后端在决策流发布时,将规则树转换为可执行脚本。
[0076] 本申请实施例中,普通节点必须配置对应的节点规则,节点规则分为路由规则和决策规则两种,路由规则和决策规则分别对应的是路由节点和决策节点。节点规则通过规则树渲染到前端展示。前端请求规则类型的规则树,后端返回整个规则树,前端从树根一直向下渲染进而得到整个规则配置。配置好规则后,后端会在决策流发布时把规则树转化为可执行脚本,从而完成了决策流的可视化界面,使得非开发人员也能够配置决策流规则。
[0077] 由于整个规则的配置是由非开发人员完成,所以将脚本以这种方式表现出来。比如if转化为“如果”,else转化为“否则”,还有将动作做成固定模版,方便之后的脚本转换。
[0078] 由于决策图的编辑时间较长,所以只支持单个用户的同一时间编辑,用户进入决策图编辑时会锁定该决策图,其他用户不可编辑,完成后解锁。
[0079] 在一些可选的实施方式中,其中,规则树由规则节点组成,规则节点包括判断规则、逻辑规则、条件规则和动作规则。
[0080] 本申请实施例中,规则树由规则节点构成,可以分为判断规则、逻辑规则、条件规则、动作规则等几种类型。判断规则即为if、else、elseif等。条件规则为条件表达式,用户可以选择入参关联的字段做条件判断,条件规则之间由逻辑规则做分割,逻辑规则就是与、或、非。动作规则分为变量赋值、数学函数、执行函数三种。每一种动作又可以进行进一步的划分。
[0081] 在一些可选的实施方式中,将决策流发布到服务器,包括:校验决策流发布时的决策流的配置是否完整,保存版本信息;其中,发布到服务器的决策流的数据包括:关联字段的模型、决策图和版本信息。
[0082] 本申请实施例中,决策流需要发布后才能使用,决策流发布时需要校验整个决策流的配置是否完整,保存版本快照,最后将决策流数据推到服务器。发布到服务器的数据主要有完整的模型字段树信息、转化后的附带可执行脚本的决策图信息、版本信息。
[0083] 在一些可选的实施方式中,通过决策流路径读取服务器中的决策流,包括:决策引擎在收到决策请求后,由决策引擎,根据项目与决策流的版本信息,从服务器读取决策流。
[0084] 本申请实施例中,决策引擎在收到决策请求后,根据项目码+决策流码(默认当前版本或者+版本号)从服务器拉取决策流数据,从而根据决策图执行决策最后输出决策结果。
[0085] 请参照图4,图4为本申请实施例提供的一种决策引擎系统功能模块图,包括对接业务模块和对接业务调用方模块2。其中,对接业务方模块1,用于配置决策流,并将决策流发布到服务器,以生成对应的决策流路径;对接业务调用方模块2,用于根据业务调用方发送的输入数据,通过决策流路径读取服务器中的决策流,并调用决策引擎服务执行对应的策略,以得到决策结果。
[0086] 本申请实施例中,决策引擎系统包括了对接业务方模块1和对接业务调用方模块2,业务方在对接业务方模块1配置决策流,并将决策流发布到服务器,以生成对应的决策流路径。业务调用方在对接业务调用方模块2,输入需要进行决策的数据,通过决策流路径读取服务器中的决策流,并调用决策引擎服务执行对应的策略,以得到决策结果。
[0087] 因此,在决策流的配置更新后,也会相应生成新的决策流路径,根据新的决策流路径,业务调用方能够获取到最新的决策流,避免了现有技术因决策流没有版本控制导致需要耗费更多时间才能获取到最新的决策流的问题。
[0088] 在一些可选的实施方式中,对接业务模块,还用于:在创建的项目中,建立关联字段的模型;其中,模型包括入参模型、出参模型和管道模型;入参模型用于配置请求决策结果时的请求参数,管道模型用于配置决策流计算时的中间参数,出参模型用于配置返回决策流结果时的输出参数;新建空白决策流,并为决策流关联模型;新建决策图,在决策图中,根据模型配置决策节点需要计算或者判断条件的字段,生成决策流。
[0089] 本申请实施例中,在第一次针对新项目配置决策流时,会建立关联字段的模型,模型包括了用于配置请求决策结果时的请求参数的入参模型、用于配置决策流计算时的中间参数的管道模型和用于配置返回决策流结果时的输出参数的出参模型,在将新建的决策流关联模型后,能够在新建的决策图中根据需要配置决策图中的决策节点所需的字段。本实施例中,在新建这些模型时,尽量涵盖到项目中用到的所有字段,使得决策流在更新配置时,可以直接从这些模型中选择需要更新的字段。当然,在决策流更新配置时,有可能出现无法从当前模型中获取想要的字段的情况,此时,需要先进行模型的更新。
[0090] 在一些可选的实施方式中,其中,决策节点包括开始节点、结束节点和普通节点。对接业务模块,还用于:设置开始节点、结束节点和有向无环图;在有向无环图中添加多个普通节点;其中,普通节点包括路由节点和决策节点;路由节点负责控制决策流的走向,通过判断条件来控制决策流;决策节点用来判断决策的结果,并输出决策内容。
[0091] 本申请实施例中,决策图由开始节点、结束节点和有向无环图构成,用户可以自由添加普通节点,连接节点确定决策流走向。决策节点有三种类型:开始节点、结束节点、普通节点。开始节点和结束节点只能有一个,普通节点无限制,但是必须配置节点规则。普通节点有两种:路由节点、决策节点。选择类型后只能配置对应的规则。路由节点负责控制决策流的走向,通过判断条件来控制决策流。而决策节点则用来判断最终的决策结果,并输出决策内容。
[0092] 在一些可选的实施方式中,对接业务模块,还用于:配置普通节点的规则;配置规则后的决策流的节点规则,通过规则树渲染到前端展示;并且,后端在决策流发布时,将规则树转换为可执行脚本。
[0093] 本申请实施例中,普通节点必须配置对应的节点规则,节点规则分为路由规则和决策规则两种,路由规则和决策规则分别对应的是路由节点和决策节点。节点规则通过规则树渲染到前端展示。前端请求规则类型的规则树,后端返回整个规则树,前端从树根一直向下渲染进而得到整个规则配置。配置好规则后,后端会在决策流发布时把规则树转化为可执行脚本,从而完成了决策流的可视化界面,使得非开发人员也能够配置决策流规则。
[0094] 在一些可选的实施方式中,其中,规则树由规则节点组成,规则节点包括判断规则、逻辑规则、条件规则和动作规则。
[0095] 本申请实施例中,规则树由规则节点构成,可以分为判断规则、逻辑规则、条件规则、动作规则等几种类型。判断规则即为if、else、elseif等。条件规则为条件表达式,用户可以选择入参关联的字段做条件判断,条件规则之间由逻辑规则做分割,逻辑规则就是与、或、非。动作规则分为变量赋值、数学函数、执行函数三种。每一种动作又可以进行进一步的划分。
[0096] 在一些可选的实施方式中,对接业务模块,还用于:校验决策流发布时的决策流的配置是否完整,保存版本信息;其中,发布到服务器的决策流的数据包括:关联字段的模型、决策图和版本信息。
[0097] 本申请实施例中,决策流需要发布后才能使用,决策流发布时需要校验整个决策流的配置是否完整,保存版本快照,最后将决策流数据推到服务器。发布到服务器的数据主要有完整的模型字段树信息、转化后的附带可执行脚本的决策图信息、版本信息。
[0098] 在一些可选的实施方式中,对接业务调用方模块2,还用于:决策引擎在收到决策请求后,由决策引擎,根据项目与决策流的版本信息,从服务器读取决策流。
[0099] 本申请实施例中,决策引擎在收到决策请求后,根据项目码+决策流码(默认当前版本或者+版本号)从服务器拉取决策流数据,从而根据决策图执行决策最后输出决策结果。
[0100] 图5示出了本申请实施例提供的电子设备的一种可能的结构。参照图5,电子设备包括:处理器51、存储器52和通信接口53,这些组件通过通信总线54和/或其他形式的连接机构(未示出)互连并相互通讯。
[0101] 其中,存储器52包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read‑Only Memory,简称PROM),可擦除可编程只读存储器(Erasable Programmable Read‑Only Memory,简称EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read‑Only Memory,简称EEPROM)等。处理器51以及其他可能的组件可对存储器52进行访问,读和/或写其中的数据。
[0102] 处理器51包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器51可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括神经网络处理器(Neural‑network Processing Unit,简称NPU)、图形处理器(Graphics Processing Unit,简称GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器51为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
[0103] 通信接口53包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。通信接口53可以包括进行有线和/或无线通信的接口。
[0104] 在存储器52中可以存储一个或多个计算机程序指令,处理器51可以读取并运行这些计算机程序指令,以实现本申请实施例提供的方法。
[0105] 可以理解的,图5所示的结构仅为示意,电子设备还可以包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的结构。图5中所示的各组件可以采用硬件、软件或其组合实现。电子设备可能是实体设备,例如PC机、笔记本电脑、平板电脑、手机、服务器、嵌入式设备等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。并且,电子设备也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。
[0106] 本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的方法。例如,计算机可读存储介质可以实现为图5中电子设备中的存储器52。
[0107] 在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0108] 另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0109] 再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0110] 在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0111] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页 第1页 第2页 第3页