本项目用于学习和参考,采用 Apache License, Version 2.0 开源,转载使用请说明出处。代码不定期迭代更新,欢迎 Star & Watch,如需交流请添加公众号“技术岁月”。
最新更新稳定版本为 master 分支。
决策引擎系统,是构建于规则引擎和流程引擎基础上,满足复杂业务决策的一套系统,可用于反欺诈、信用评估、风险决策、推荐系统、精准营销、内容审核、数据清洗等领域场景。
风控是决策引擎的一个重要应用场景,在金融、保险、电商、支付、游戏、社交等领域皆有应用,凡是和钱相关的业务都离不开风控决策引擎系统的支持保障。目前流行的“智能风控”,即是以决策引擎为核心驱动,以机器学习 / AI 为大脑,在大数据基础上构建的通用风控能力。而决策引擎作为风控的核心系统,承担着复杂规则和多样化决策需求,这款开源决策引擎即满足了这样的诉求。
- 规则、决策
- 规则集
- 决策树
- 决策表
- 决策矩阵(交叉决策表)
- 评分卡
- 决策流
- 冠军挑战者
- 条件分流
- 支持特征类型:int、string、bool、date、array、map
- 支持运算类型:>、>=、<、<=、==、!=、between、before、after、in、not in、contain、not contain、like、key exist、value exist
- 支持自定义函数(udf):内建函数sum、avg、min、max
- 支持并发执行和串行执行
- 支持决策流执行短路(触发阻断规则或策略)
- 环境准备
go version go1.13 +
- 代码下载
git clone git@github.com:skyhackvip/risk_engine.git
- 访问下载:
https://github.com/skyhackvip/risk_engine/
- Make 编译执行(推荐)
cd risk_engine/
#编译
make build
#启动
make run
#停止
make stop
- Go 编译执行
cd risk_engine/
#编译
mkdir -p dist/conf dist/bin
cp cmd/risk_engine/config.yaml dist/conf
cp demo dist/demo -r
GO111MODULE=on CGO_ENABLED=0 go build -o dist/bin/risk_engine cmd/risk_engine/engine.go
#启动
cd dist/
nohup bin/risk_engine -c conf/config.yaml >nohup.out 2>nohup.out &
#停止
pkill -f bin/risk_engine
- Docker 镜像制作启动
cd risk_engine/
#制作镜像
docker build -t risk_engine:v1 .
#启动镜像
docker run -d --name risk_engine -p 8889:8889 risk_engine:v1
#进入容器
docker exec -it risk_engine /bin/sh
#停止容器
docker stop risk_engine
- 获取决策流列表
- 执行决策流
├── api http接口逻辑
├── configs 配置文件
├── docs 文档
├── core 决策引擎解析核心目录
├── service 执行逻辑
├── cmd 启动文件
├── global 全局配置
├── demo 测试样例 dsl 文件
├── internal
│ ├── dto 数据传输对象
│ ├── errcode 错误异常定义
│ ├── util 工具包
│ ├── udf 内建自定义函数
│ └── operator 表达式操作算子
├── test 测试用例
本系统为决策引擎系统,未包含可视化管理界面部分
- 业务架构图
- 技术架构图
扫码关注微信公众号 技术岁月 支持: