一.sparkling介绍
1.1 介绍
SparklingLogic SMARTS™ 是一种BRMS工具,即业务规则管理工具。作为一个端到端的低代码/零代码决策管理平台,它覆盖了从数据导入到决策建模再到决策服务部署的整个业务决策生命周期,在风控中有着广泛应用,例如生成评分卡、客户策略码等。
关于决策引擎,知乎有一篇介绍的较为全面的介绍:
https://zhuanlan.zhihu.com/p/122996523
好的策略,一定是基于对业务和实际场景的理解之上去创建和编排规则。会编程入门更容易,但也不需要太多的编程基础。下图汇总了smarts目前包含的所有功能项:
![](https://img-blog.csdnimg.cn/img_convert/079fea8006eaaa015f24816779137809.png)
1.2 页面展示
1)登录页面
使用Sparkling Logic,需要有授权,通过账号和密码登录通过的工作区权限,如下图所示:
![](https://img-blog.csdnimg.cn/img_convert/78d6732fd199175813d50aeb5228f1be.png)
注:需要选择工作区,用户可以同时拥有多个工作区的权限。
2)项目编辑页面
一般测试环境编写及验证后,再配置到生产环境。
![](https://img-blog.csdnimg.cn/img_convert/c0e0a20c647992e2c2ef7414bd9fece9.png)
二.操作手册
编写策略的核心三要素:决策/决策流、变量表及数据。
![](https://img-blog.csdnimg.cn/img_convert/7401a880b83e42870bc906750ca1e5c9.png)
决策/决策流:
决策(决策步骤):编写具体规则;是组成决策流的单元。
决策流:节点、分支、连接条件。每个节点可以都可以跟决策步骤或子决策相关联。
变量表:策略编辑所需参数;一般一个策略只能对应一个变量表;
数据:便于验证规则是否编写正确,一般生产环境用的是实时数据,测试环境的数据只要匹配变量类型即可。
![](https://img-blog.csdnimg.cn/img_convert/3a6b04cd21744c74fe22dfda34caac89.png)
策略的完整使用及操作包含以下几个步骤。
1.创建项目
新增资-->项目:
![](https://img-blog.csdnimg.cn/img_convert/bfe84a1664110ce38446752abf6f4c79.png)
可以从以下几个源新建项目。
![](https://img-blog.csdnimg.cn/img_convert/b0a168bb54840f743c0dab043f5b97b7.png)
注:
导入存档:导入sparkling的项目文件,一般后缀为.SMARTSP;
导入DMN:模型决策结构文件,使组织策略能够用图形清晰描绘出来;
导入PMML:模型文件,PMML是数据挖掘的一种通用的规范,它用统一的XML格式来描述生成的机器学习模型;
创建默认项目事项:勾选后,会同时创建变量表和数据表。
2.配置变量表
变量表通常由开发提供表(业务)结构。对于一个崭新的项目(无任何业务数据),可以通过以下三种方式创建变量表:
• 手动添加区块,字段来生成变量表
• 导入DMN词汇表生成变量表
• 弄清楚demo样例,规则以及规则判定用到的输入参数。
变量表一般由字段或区块组成。
![](https://img-blog.csdnimg.cn/img_convert/21a9740a11aefa1dc53c63ee0ccab765.png)
1)创建和编辑字段
![](https://img-blog.csdnimg.cn/img_convert/409883fce7a26b92983199f8ca2a13bc.png)
字段必须定义类型,即属性。目前sparkling主要支持以下类型:string、integer、boolean、date、float、double、decimal等。
此外,当同名的字段具有不同的值时,需要用数组或列表的形式接收参数。
![](https://img-blog.csdnimg.cn/img_convert/190d35c8c67079ebba40d8e2415a66e5.png)
调用数组或列表时,需要用以下语法:
![](https://img-blog.csdnimg.cn/img_convert/ab5a790b1a1cf1eff6fc460a085abde2.png)
注:决策引用字段和区块的别名。变量表里面的字段如果起了别名,在编写规则的时候一定要用别名,不然会报错。
Sparkling还可以根据当前字段定义计算字段,一般计算字段需要定义在表单(变量表)中,不可以手动修改,也不会输出。如果要作为输出项,需要写在规则当中。建议计算字段以及函数单独放在一个区块中。
2)创建和编辑区块
区块是由同类字段的集合;编辑方式同字段。
![](https://img-blog.csdnimg.cn/img_convert/9b972180e9d545f9b947838f334385cc.png)
3.上传数据
编写策略时,一般会上传或编辑数据用于验证规则是否正确,此类数据一般用于开发测试环境中,生产环境中使用实时数据(即变量表中定义的变量在调用时,实时透传的数据)。
![](https://img-blog.csdnimg.cn/img_convert/50aae664ec6b8a557e313c7546ff2107.png)
注:上传的数据必须与变量表结构一致。例如下图中的变量表,对应的excel文件表头关系如图所示:
![](https://img-blog.csdnimg.cn/img_convert/b3f40fdc159ef0b21555cdaa99d81f74.png)
![](https://img-blog.csdnimg.cn/img_convert/6b8f12e95761a0b09212d931ac083665.png)
4.编写决策
一个完整的决策单元包含:多个/一个规则集(亦可设置空决策)、判断条件
![](https://img-blog.csdnimg.cn/img_convert/3d09061becc17b69188b65f760e5a2f2.png)
一个规则集包含:多个或一个规则、准入和执行条件。
每个规则需编写规则名称、命中条件及对应结果输出。规则编写需遵循Sparkling支持的语法及数据结构,可参照官方文档。
![](https://img-blog.csdnimg.cn/img_convert/1ab8f6247c6bf38f45ea1f0bc9903f52.png)
规则集执行模式分为以下两种:
1)全部:所有符合条件都会触发;
2)独占:只要规则集中有一个触发,规则执行即终止。
![](https://img-blog.csdnimg.cn/img_convert/efb175e70d1a1a5ef7ea039252639545.png)
注:规则和规则集都可以启用/禁用,主要用于测试。
5决策流配置
如图所示,是sparkling实际页面中的决策流:
![](https://img-blog.csdnimg.cn/img_convert/6af1e5531629f77104952c5b99604e7f.png)
决策流的配置包含以下三个方面:
1)新增节点
每一个节点都可以跟决策或子决策相关联。选择一个节点并点击属性:
![](https://img-blog.csdnimg.cn/img_convert/45ee6f0dd703469ea7e3b6b17733046a.png)
如果要配置子决策节点,实现方式选择子决策。
![](https://img-blog.csdnimg.cn/img_convert/0d8bc510b1efb22c2fcc371f5a0f5e8f.png)
注:关联子决策时,即为决策的嵌套调用。
子决策相当于一个独立完整的决策流,当整个策略较为复杂时,为了清晰明了的表达业务或逻辑关系,可以使用子决策。子决策必须与主决策共用一个变量表;一般子决策提前测试好以后再连接到主决策中,不然出错后不易排查。
2)增加分支
将不同决策用线条连接起来;
![](https://img-blog.csdnimg.cn/img_convert/f311cc197ce8480cf395a65b0a32ca85.png)
3)添加连接条件
在连接线上右键—>显示属性,连接条件分为以下2种:
(1)直连连接:不需要条件判断
(2)条件连接:需要编写条件判断,命中规则的通过或不通过。
![](https://img-blog.csdnimg.cn/img_convert/f74fd9a1b635242ca5f2d472f18c641b.png)
6.决策执行
1)执行关系
整个流程及节点的执行关系如下图:决策流定义了决策执行逻辑与数据流向。
从决策流,到决策步骤、规则集、规则的决策结构,层次分明,支持复杂逻辑的简单实现, 一般策略要注意配置兜底操作,及即规则集未触发时执行的默认操作,这样会让整个策略更稳健。
![](https://img-blog.csdnimg.cn/img_convert/5aa25921c884d973bfdd4f1ff9862b84.png)
2)策略调用
整个策略配置完成后,保存提交。整个项目创建完成后,会以生成版本的形式被调用,版本一旦生成是不可修改的。若有新的修改或变动,是需要重新打版并同步调用。
要在生产环境正式调用该版本,需要进行空跑、灰度后,再正式运行。
![](https://img-blog.csdnimg.cn/img_convert/26946236b74309e7f3fb5cf1e1796405.png)
三.常用文档
1.一些常用的快速开发功能
1)继承
变量表和决策都可以通过继承的方式达到快速开发的目的。
a.变量表继承
从其他变量表提出内容生成新变量表,多用于跨决策或跨组织共享部分数据结构(变量表)。继承变量表与原始变量表保持同步修改。
![](https://img-blog.csdnimg.cn/img_convert/94613aba4e4f83c24111143cc8dd1d73.png)
b决策继承
从现有决策提出内容生成新决策,可用于跨决策或跨组织共享决策逻辑。
![](https://img-blog.csdnimg.cn/img_convert/1f54c1d173fb4e78a69298cb60f862d8.png)
2.sparkling语言
1)简单运算符
==
!=
>
>=
2)列表
字符
statein ['','','']
statenot in ['','','']
数字范围
statein 620..720
statein [620..720,750..760]
3)关联条件
and
or
not
4)数学公式
5)字符串
常用公式:
ismatch:模糊匹配
split
replace
6)日期
7)数值类型转换
3.重复区块的使用方法