规则引擎管理平台是一个用于管理评分模型指标和规则的SaaS平台。用户可以通过平台完成指标管理、评分卡规则配置、模型发布为API服务、以及调用记录查询等全生命周期管理。
rules_engine/
├── packages/ # 所有子包
│ ├── frontend/ # 前端项目 (React + Ant Design)
│ ├── backend/ # 后端API服务 (FastAPI)
│ ├── core/ # 核心引擎
│ ├── common/ # 通用工具库
│ └── models/ # 数据模型定义
├── lerna.json # Lerna 配置
├── package.json # 根包配置
├── .editorconfig # 编辑器配置
├── .flake8 # Flake8 配置
└── README.md # 项目说明
- 添加、编辑、删除、查看指标
- 指标类型支持:STRING、NUMBER、DATE、BOOLEAN、INTEGER、FLOAT
- 指标名称唯一性校验
- 指标被引用检查
- 创建、编辑、删除、查看评分卡
- 评分卡状态管理
- 规则配置(指标关联、公式设置)
- 规则顺序调整
- 公式校验(指标存在性、变量存在性、函数语法、表达式语法)
- 变量字段配置
- 变量命名约束(输出变量以z开头,中间变量以y开头)
- 评分卡发布为API服务
- 版本号管理
- API文档自动生成
- 查看历史版本
- 版本回滚
- 通过API调用模型
- 调用参数校验
- 调用记录查询
- 用户CRUD操作
- 用户名和邮箱唯一性校验
- 用户启用/禁用
- 密码重置
- 角色CRUD操作
- 权限分配
- 权限CRUD操作
- 权限代码唯一性校验
- React 18
- Ant Design 5
- TypeScript
- Vite
- Axios
- React Router
- Python 3.8+
- FastAPI
- Pydantic V2
- SQLAlchemy (预留)
- PostgreSQL (预留)
- 自定义公式解析引擎
- Antlr4 (预留)
- Lerna (包管理)
- ESLint (代码检查)
- Prettier (代码格式化)
- Flake8 (Python代码检查)
# 进入前端目录
cd packages/frontend
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 构建生产版本
npm run build# 进入后端目录
cd packages/backend
# 安装依赖
pip install -e .
# 开发模式运行
uvicorn rules_engine_backend.main:app --reload
# 生产模式运行
uvicorn rules_engine_backend.main:app --host 0.0.0.0 --port 8000启动后端服务后,访问以下地址查看API文档:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- 模块化设计:采用多包结构,边界清晰,便于维护和扩展
- 代码复用:核心引擎和通用工具可被多包共享
- 类型安全:前端使用TypeScript,后端使用Python类型注解
- 现代前端:使用React 18 + Ant Design 5,提供良好的用户体验
- 高性能后端:使用FastAPI,提供高性能的API服务
- 完整功能:实现了规则引擎管理平台的全部核心功能
- 可扩展性:预留了数据库集成和认证授权的接口
- 数据库集成:将模拟存储替换为真实的PostgreSQL数据库
- 认证授权:实现JWT认证和基于角色的权限控制
- 系统集成:测试完整的端到端流程
- 部署配置:编写Dockerfile和部署文档
- 性能优化:优化公式解析和规则执行性能
- 监控告警:添加系统监控和告警机制
-
启动后端服务:
cd packages/backend uvicorn rules_engine_backend.main:app --reload -
启动前端服务:
cd packages/frontend npm run dev -
访问系统:
- 前端:http://localhost:3000
- 后端API文档:http://localhost:8000/docs
MIT License