/risk_engine

风控决策引擎系统

Primary LanguageGo

风控决策引擎系统

决策引擎系统介绍

风控决策引擎系统是在大数据支撑下,根据行业专家经验制定规则策略、以及机器学习/深度学习/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文件

决策引擎架构图

决策引擎架构图

代码解读

智能风控决策引擎系统架构设计总纲

智能风控决策引擎系统可落地实现方案(一)规则引擎实现

智能风控决策引擎系统可落地实现方案(二)决策流实现

智能风控决策引擎系统可落地实现方案(三)模型引擎实现

智能风控决策引擎系统可落地实现方案(四)风控决策实现

智能风控决策引擎系统可落地实现方案(五)评分卡实现

智能风控决策引擎系统可落地实现方案(六)风控监控大盘实现

扫码关注微信公众号 技术岁月 支持:

技术岁月