风控决策引擎系统是在大数据支撑下,根据行业专家经验制定规则策略、以及机器学习/深度学习/AI领域建立的模型运算,对当前的业务风险进行全面的评估,并给出决策结果的一套系统。
决策引擎,常用于金融反欺诈、金融信审等互金领域,由于黑产、羊毛党行业的盛行,风控决策引擎在电商、支付、游戏、社交等领域也有了长足的发展,刷单、套现、作弊,凡是和钱相关的业务都离不开风控决策引擎系统的支持保障。决策引擎和规则引擎比较接近(严格说决策引擎包含规则引擎,之前也有叫专家系统,推理引擎),它实现了业务决策与程序代码的分离。
关于如何实现决策引擎的文章市面极少见,实践生产落地的经验分享也基本没有。我会结合工作实践及个人思考,从业务抽象建模,产品逻辑规划以及最终技术架构和代码实现等方面给出全方位的解决方案。
本项目用于学习和参考,不能直接用于生产环境,转载使用请说明出处。代码不定期迭代更新,可加关注查看。如有交流欢迎加微信号 hepenggj
git clone https://github.com/skyhackvip/risk_engine
cd risk_engine
go build engine.go
./engine
- 请求接口: flow:决策流,存储在test/yaml中
curl -XPOST -v http://localhost:8889/run -H'Context-Type:application/json'
-d'{"flow":"flow_conditional","features":{"feature_1":18,"feature_2":30,"feature_3":20,"feature_4":30}}'
- 接口返回:
{
"flow": "flow_conditional",
"result": {
"NextNodeName": "",
"NextCategory": "",
"Decision": null,
"Track": ["start_1", "conditional_1", "ruleset_2", "end_2"],
"Detail": [{
"NodeName": "conditional_1",
"Factor": {
"feature_4": {
"Name": "feature_4",
"Type": 0,
"Value": 30,
"Default": null
}
},
"Hits": null,
"Decision": "ruleset_2"
}, {
"NodeName": "ruleset_2",
"Factor": {
"feature_1": {
"Name": "feature_1",
"Type": 0,
"Value": 18,
"Default": null
},
"feature_2": {
"Name": "feature_2",
"Type": 0,
"Value": 30,
"Default": null
}
},
"Hits": null,
"Decision": 0
}]
}
}
├── api 接口逻辑
├── configs 配置文件
├── docs 文档
├── dslparser 决策引擎解析核心目录
├── engine.go 启动文件
├── global 全局上下文
├── internal
│ ├── dto 数据传输对象
│ ├── errcode 错误异常定义
│ ├── feature 特征
│ └── operator 操作算子
├── test 测试用例
│ └── yaml 测试yaml文件
扫码关注微信公众号 技术岁月 支持: