Skip to content

nornand/rules_engine

Repository files navigation

规则引擎管理平台

项目概述

规则引擎管理平台是一个用于管理评分模型指标和规则的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             # 项目说明

核心功能

1. 指标管理

  • 添加、编辑、删除、查看指标
  • 指标类型支持:STRING、NUMBER、DATE、BOOLEAN、INTEGER、FLOAT
  • 指标名称唯一性校验
  • 指标被引用检查

2. 评分卡管理

  • 创建、编辑、删除、查看评分卡
  • 评分卡状态管理

3. 规则管理

  • 规则配置(指标关联、公式设置)
  • 规则顺序调整
  • 公式校验(指标存在性、变量存在性、函数语法、表达式语法)

4. 变量管理

  • 变量字段配置
  • 变量命名约束(输出变量以z开头,中间变量以y开头)

5. 模型发布

  • 评分卡发布为API服务
  • 版本号管理
  • API文档自动生成

6. 版本管理

  • 查看历史版本
  • 版本回滚

7. 模型调用

  • 通过API调用模型
  • 调用参数校验
  • 调用记录查询

8. 用户管理

  • 用户CRUD操作
  • 用户名和邮箱唯一性校验
  • 用户启用/禁用
  • 密码重置

9. 角色管理

  • 角色CRUD操作
  • 权限分配

10. 权限管理

  • 权限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 文档

启动后端服务后,访问以下地址查看API文档:

项目特点

  1. 模块化设计:采用多包结构,边界清晰,便于维护和扩展
  2. 代码复用:核心引擎和通用工具可被多包共享
  3. 类型安全:前端使用TypeScript,后端使用Python类型注解
  4. 现代前端:使用React 18 + Ant Design 5,提供良好的用户体验
  5. 高性能后端:使用FastAPI,提供高性能的API服务
  6. 完整功能:实现了规则引擎管理平台的全部核心功能
  7. 可扩展性:预留了数据库集成和认证授权的接口

后续工作

  1. 数据库集成:将模拟存储替换为真实的PostgreSQL数据库
  2. 认证授权:实现JWT认证和基于角色的权限控制
  3. 系统集成:测试完整的端到端流程
  4. 部署配置:编写Dockerfile和部署文档
  5. 性能优化:优化公式解析和规则执行性能
  6. 监控告警:添加系统监控和告警机制

快速开始

  1. 启动后端服务

    cd packages/backend
    uvicorn rules_engine_backend.main:app --reload
  2. 启动前端服务

    cd packages/frontend
    npm run dev
  3. 访问系统

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors