基于drools和flowable实现的智能决策引擎

server/2024/9/24 9:37:19/

在现代企业中,业务流程的自动化和智能化是提高运营效率的关键。智能决策体系通过结合工作流引擎、规则引擎和大语言模型(LLM),为企业提供了一种强大的决策支持工具。

在这里插入图片描述

智能决策引擎主要由三部分组成

  • 工作流引擎:自动化管理业务流程的各个环节,确保流程的顺利执行和效率最大化。
  • 规则引擎:基于预设的业务规则,自动执行决策,减少人为干预,提升决策的一致性和准确性。
  • 大语言模型:通过LLM的深度学习能力,处理复杂的自然语言任务,如用户意图识别、文本分析等,进一步增强决策的智能化。

这一智能决策体系能够根据业务需求动态调整工作流,触发不同的规则事件,从而实现更精确、更及时的业务响应。

以下是基于drools和flowable实现的智能决策引擎的核心代码逻辑

/*** 智能决策引擎执行入口* 1、构建决策引擎环境* 2、处理fact(决策事实对象,接收数据的对象实体类)* 3、插入数据并执行决策规则* 4、根据decisionRule中json afer配置和then的globalMap结果调用逻辑处理* 5、结果处理,同步作出决策触发业务处理,异步通过工作流人工干预,人工处理完成之后回调业务处理* @param executeParams* @return*/
@Override
@ShenyuDubboClient("/execute")
public Map<?, ?> execute(ExecuteParams executeParams) {String eventCode = executeParams.getEventCode();LambdaQueryWrapper<EventModel> warapper = new LambdaQueryWrapper<>();warapper.eq(EventModel::getEventCode, eventCode);EventModel eventModel = eventModelMapper.selectOne(warapper);DecisionRule decisionRule = decisionRuleMapper.selectById(eventModel.getModelNo());if(decisionRule == null){throw new BusinessException("事件模型不存在");}// 1、构建决策引擎环境KieSession kieSession = decisionEngineContextBuilder.buildDecisionEngine(decisionRule,decisionRule.getKieBaseName() + "-session");Map<String, Object> globalMap = new LinkedHashMap<>();kieSession.setGlobal("globalMap", globalMap);// 2、处理fact(事实对象,接收数据的对象实体类)Map<String, Object> params = decisionEngineContextBuilder.buildDecisionFact(decisionRule, executeParams);// 3、插入数据并执行规则kieSession.insert(params);kieSession.fireAllRules();kieSession.destroy();// 4、根据decisionRule中json afer配置和then的globalMap结果调用逻辑处理decisionEngineContextBuilder.handleThenResult(decisionRule,globalMap);return globalMap;
}

智能决策引擎应用场景

场景描述
财务决策贷款发放,征信系统
库存管理及时的供应链路
商品价格根据商品生命周期动态条件价格
运营策略根据库存数据规则,动态执行运营活动策略
风控系统风控规则计算
促销平台系统满减,打折,加价购

代码地址仅供参考: https://gitee.com/s11e-DAO/bsin-paas-os


http://www.ppmy.cn/server/121283.html

相关文章

【Python报错已解决】AttributeError: ‘WindowsPath‘ object has no attribute ‘rstrip‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

R包compareGroups详细用法

compareGroups compareGroups 是一个功能强大的 R 包&#xff0c;专为数据质量控制、数据探索和生成用于出版的单变量或双变量表格而设计。它能够创建各种格式的报表&#xff0c;如纯文本、HTML、LaTeX、PDF、Word 或 Excel 格式&#xff0c;并显示统计数据&#xff08;均值、…

C++常见概念问题(2)

C常见概念问题&#xff08;2&#xff09; C中异常处理 ➢ 异常处理过程&#xff1a; 在执行程序发生异常&#xff0c;可以不在本函数中处理&#xff0c;而是抛出一个错误信 息&#xff0c;把它传递给上一级的函数来解决&#xff0c;上一级解决不了&#xff0c;再传给其上一级&…

初试AngularJS前端框架

文章目录 一、框架概述二、实例演示&#xff08;一&#xff09;创建网页&#xff08;二&#xff09;编写代码&#xff08;三&#xff09;浏览网页&#xff08;四&#xff09;运行结果 三、实战小结 一、框架概述 AngularJS 是一个由 Google 维护的开源前端 JavaScript 框架&am…

程序人生-2024我的个人总结

可能现在写个人总结比较早&#xff0c;但是眼看着还有三个月&#xff0c;今年就过去了&#xff0c;所以决定提前写写&#xff0c;今年对于我来说是不平凡的一年&#xff0c;先是加薪&#xff0c;之后求婚&#xff0c;以为快要走上人生巅峰的时候&#xff0c;被裁员&#xff0c;…

重修设计模式-结构型-适配器模式

重修设计模式-结构型-适配器模式 将不兼容的接口转换为可兼容的接口&#xff0c;让原本由于接口不兼容而不能一起工作的类可以一起工作 适配器模式&#xff08;Adapter Pattern&#xff09;允许将一个类的接口变换成客户端所期待的另一种接口&#xff0c;从而使原本因接口不匹配…

中秋节特别游戏:给玉兔投喂月饼

&#x1f5bc;️ 效果展示 &#x1f4dc; 游戏背景 在中秋这个充满诗意的节日里&#xff0c;玉兔因为贪玩被赶下人间。在这个温柔的夜晚&#xff0c;我们希望通过一个小游戏&#xff0c;让玉兔感受到人间的温暖和关怀。&#x1f430;&#x1f319; &#x1f3ae; 游戏设计 人…

后端开发刷题 | 没有重复项数字的全排列

描述 给出一组数字&#xff0c;返回该组数字的所有排列 例如&#xff1a; [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1]. &#xff08;以数字在数组中的位置靠前为优先级&#xff0c;按字典序排列输出。&#xff09; 数据范围&#xff1a;数字…