什么是规则引擎?
先说个真实的场景:前两周 有个做金融科技的朋友跟我吐槽,他们公司要调整风控规则,要把年龄限制从18岁改成20岁,听起来很简单对吧?结果实操起来:提需求——技术排期——开发——测试——等待上线——部署上线,整个流程走下来 发现最快也要一周。有个尴尬的是 有一次开发改错了地方,导致大批用户无法注册,最后赶紧回滚 损失了不少业务,最糟的是,后面规则改好了,有些市场机已经错过了。规则引擎好比就是解决这个问题的工具,可以把业务规则从"代码"变成"配置",业务人员可以通过界面就能配置规则,改完立即生效,不用等开发排期。
规则引擎 = 规则库 + 事实数据 + 推理引擎,按照 “如果......那么......” 的逻辑自动帮你做决策。
为什么要用规则引擎?
很多公司都遇到过这些问题:
规则在哪点呢——有的在业务逻辑代码里,有的在数据库存储过程里,有的在配置文件里。想改一个规则 技术人员得把这些地方都找到,确认不会遗漏 《不会改错地方,就导致改规则累计就需要花大量时间,而且有的一个简单的规则调整,需要走改代码、测试、上线整个流程,最快也要几天,如果改完发现规则有问题,那么就又要改一轮,很多人都要叫唤。业务响应快,才能适应变化快的市场 以及政策、监管.
规则引擎的核心理念就是:把规则从代码中分离出来,变成"配置",让业务人员自己就能配置规则,改完立即生效,这样既降低了技术成本,又提升了业务响应速度。
JVS-Rules是什么?
JVS-Rules是一款规则引擎,基于Spring Cloud和Vue构建,主要用于风控决策、规则过滤、行为评分等场景。
它有几个特点:
已经开源,社区版免费使用支持在线变量加工、界面拖拽、在线测试可以让业务人员自己配置规则,不用等开发排期,很多金融机构、电商平台都在用JVS-Rules,尤其是那些规则多、变化快的业务场景。
核心概念:决策、变量、规则、数据源
用JVS-Rules之前,需要理解几个核心概念。
决策:就是整个决策流程。比如贷前审批,可能会先查黑名单,再算信用评分,再判断收入,最后给出决策结果。这些判断、策略、计算节点组合起来,就是一个决策。
变量:这个概念很重要。规则判断要用到的数据,不能直接用原始数据,要先加工成"变量"。比如用户注册时间是2020年5月10日,规则判断要算"注册年数",这个"注册年数"就是一个变量。
变量分三种:
基础变量: 处理单条数据,比如"某个用户的年龄"复合变量:处理多条数据,比如"某个用户的所有订单"SQL变量:通过SQL查询加工,适合复杂的数据处理
规则:由多个变量通过与或等关系组成的逻辑。比如"年龄大于18岁且收入大于5000元且无逾期记录",这就是一个规则。
数据源:是数据来源的统一管理。支持数据库(MySQL、Oracle、PostgreSQL等)、API、JVS低代码数据模型等。不管你的数据在哪,都能统一接入。
实操:五步上手JVS-Rules
具体怎么用呢?其实就五步
第一步:配置数据源
先告诉JVS-Rules,你的数据在哪。可以是数据库,比如MySQL;可以是API,比如征信数据接口;也可以是其他数据源。配置好后,JVS-Rules就能统一管理和使用这些数据了。
第二步:配置变量
把原始数据加工成业务能用的因子。举个例子,用户征信数据是原始数据,需要算出一个"信用评分",这个"信用评分"就是变量。JVS-Rules内置了100+函数,像Excel的函数一样用,可以实现各种数据加工需求。比如计算年龄、格式化时间、字符串处理等等。如果这些还不够,还可以自定义函数。
第三步:配置规则
有了变量,就可以配置规则了。
JVS-Rules支持多种规则配置方式:
规则集:最常用的,多个条件通过AND、OR、NOT组合起来,形成一个规则决策表:适合规则较多、维度较少的场景,就是一个表格,清清楚楚交叉决策表:适合维度较多的场景,避免规则爆炸决策树:适合层级化的规则逻辑,像一棵树一样评分卡:风控场景的标配,把多个因素综合考虑,给出一个分数
举个简单的例子,你要配置一个风控规则:年龄大于18岁且收入大于5000元且无逾期记录。用规则集,就像填表单一样简单——拖几个节点,设几个条件,保存,立马生效。
第四步:组装决策流
把各种节点有机组装起来,形成一个完整的决策流程。支持拖拽式配置,可视化展示。
比如贷前审批的决策流:
- 先用"判断节点"查黑名单
- 再用"评分卡节点"算信!用评分
- 再用"规则集节点"判断收入
- 最后用"结束节点"给出决策结果
整个流程可视化,清晰易懂,业务人员一看就明白。
第五步:测试和发布
配置完可以马上测试,输入测试数据,看到执行结果。就像Excel的公式求值一样,你能看到数据是如何在决策流程中流动的,哪里出错了,一目了然。
测试没问题了,就可以发布上线。支持版本管理,可以配置新版本、测试新版本、切换到新版本、出问题回滚到旧版本。这对于风控规则尤为重要,因为风控规则要求高,不能出错。
适用场景:金融风控、营销、计息
JVS-Rules主要用于规则密集、变化频繁的业务场景。
金融风控是最典型的场景:
贷前审批:用户申请贷款,要判断年龄、收入、征信、负债等多个维度反欺诈:判断是否存在欺诈风险额度授信:根据用户情况动态调整额度贷后管理:监控用户还款行为,判断风险
风控规则的特点是:数量多、变化快、复杂度高。用JVS-Rules,风控人员自己就能配置规则,改完立即生效,迭代速度大幅提升。
营销场景也用得很多:
用户分群:根据用户行为把用户分成不同群体优惠券发放:谁可以领、领多少、怎么用会员等级体系:怎么升级、有什么权益活动规则:满减、拼团、秒杀等活动的规则配置
营销活动经常变化,用JVS-Rules,营销人员自己就能配置规则,活动策划不再受限于开发排期。
计息场景也常见:
复利计算:利息滚存
分段计息:不同期限不同利率
罚息计算:逾期怎么罚息
提前还款计算:提前还款怎么算利息
这些计算规则经常调整,用JVS-Rules产品经理自己就能调整,不用找开发。
几个核心特点
JVS-Rules有几个特点,值得说一下。
纯Java开发,基于Spring Cloud:技术栈成熟,稳定性有保障。采用微服务架构,可以独立部署,也可以集成到现有系统。
易用性强:界面友好,类Excel函数的使用方式,对变量加工非常简单高效。业务人员经过简单培训,就能上手配置规则。
扩展性好:基于JVS基础底座开发,可以通过低代码扩展各种应用。比如扩展信贷进件系统、信贷审批系统等等。
开源免费:社区版完全开源,可以免费使用。商业版提供更多高级功能,比如动态判断条件、节点计算结果引用、异步执行调用等。
如果你想提升业务规则的配置效率,可以试试JVS-Rules,详细的使用在无忧文档,遇到问题可以加入技术交流群咨询。
最后,再说一下 学规则引擎我的建议是:先会配置基础变量、规则集、决策流这些基础功能,再过渡评分卡、交叉决策表等高级功能,用后你会发现规则配置原来可以这么简单,改规则不用再等开发排期,业务响应速度可以从周级提升到实时级。