# mxg-risk-decision **Repository Path**: Eleanor1/mxg-risk-decision ## Basic Information - **Project Name**: mxg-risk-decision - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-21 - **Last Updated**: 2026-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MXG Risk Decision Engine (风控决策引擎) 本项目是一个基于 Flask 的轻量级风控决策引擎,支持动态加载决策模型。 ## 1. 核心执行链路 业务逻辑从 HTTP 请求到具体方法的执行链路如下: 1. **API 入口** (`app/api.py`): - 接收 POST 请求(例如 `/decision`)。 - 提取 Request Body 并传递给路由层。 2. **动态路由层** (`common/route.py`): - 调用 `route_desision(requestData)` 方法。 - 根据配置(目前暂存为 `decision.m1_demo`)动态导入对应的 Python 模块。 - 实例化决策类并调用指定的方法(如 `make_decision`)。 3. **业务逻辑层** (`decision/m1_demo.py`): - 在具体的方法中执行风控逻辑(如分数校验)。 - 返回统一格式的决策结果。 ## 2. 接口说明 ### 2.1 决策接口 (POST /decision) **请求示例 (JSON):** ```json { "order_id": "12345", "score": 75, "user_id": "999" } ``` **返回示例 (JSON):** ```json { "decision": "approve", "model": "m1", "reject_reason": null } ``` ### 2.2 逻辑说明 - `score > 60`: 返回 `approve` (通过)。 - `score <= 60`: 返回 `reject` (拒绝),原因为 `score is too low`。 - 缺少 `score`: 返回 `reject` (拒绝),原因为 `score is missing`。 ## 3. 部署指南 ### 3.1 环境准备 - **操作系统**: Linux / macOS - **Python**: 3.9+ - **依赖安装**: ```bash python -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### 3.2 启动与管理 项目提供了集成脚本配合 uWSGI 使用: - **启动服务**: `sh start.sh` (监听端口 5001)。 - **重启服务**: `sh restart.sh`。 ### 3.3 配置文件 (`uwsgi.ini`) - **chdir**: 项目根目录。 - **http**: 监听端口(默认 `:5001`)。 - **daemonize**: 日志输出路径 `logs/uwsgi.log`。 - **pidfile**: 进程 PID 文件,用于重启。 ## 4. 日志管理 日志存放在 `logs/` 目录下: - `uwsgi.log`: uWSGI 运行日志(含启动报错)。 - 业务日志由 Python 应用层独立记录,详见代码中的 `logger` 配置。