UniEvo 技术架构与部署路线
版本:V1.0
关联:核心架构与数据流、模块系统
一、技术栈选型
| 层级 |
技术选型 |
说明 |
| 后端语言 |
Python 3.11+ |
核心引擎已有 NumPy 代码基础 |
| 计算引擎 |
NumPy + Numba |
内存计算,矩阵运算,JIT 加速 |
| Web框架 |
FastAPI |
REST API,异步支持,自动文档 |
| 数据库 |
PostgreSQL |
用户/项目/诊断记录存储 |
| 缓存 |
Redis(可选) |
高频查询缓存 |
| 前端(WEB) |
React 18 + TypeScript |
专业工作台 |
| 前端(移动) |
Taro 3.x + React |
微信小程序 |
| 可视化 |
ECharts 5.x |
曲线/柱状图/网络图 |
| 部署 |
Docker + Docker Compose |
容器化,单机/服务器均可 |
| 文档 |
Markdown + Mermaid |
方案文档、API文档 |
二、系统架构
┌─────────────────────────────────────────────────────────────┐
│ 客户端层 │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ UniEvo WEB │ │ UniEvo MP │ │ API Client │ │
│ │ (React 18) │ │ (Taro 小程) │ │ (第三方) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ └─────────────────┼─────────────────┘ │
└───────────────────────────┼────────────────────────────────┘
│ HTTPS/REST
┌───────────────────────────┼────────────────────────────────┐
│ 网关层 │ │
│ ┌───────────┴──────────┐ │
│ │ Nginx / API Gateway │ │
│ │ (路由+限流+认证) │ │
│ └───────────┬──────────┘ │
└───────────────────────────┼────────────────────────────────┘
│
┌───────────────────────────┼────────────────────────────────┐
│ 服务层 │ │
│ ┌───────────┴──────────┐ │
│ │ FastAPI 服务 │ │
│ │ │ │
│ │ ┌────────────────┐ │ │
│ │ │ StrEvo 引擎 │ │ ← 核心,纯Python │
│ │ │ NumPy+Numba │ │ │
│ │ └────────────────┘ │ │
│ │ ┌────────────────┐ │ │
│ │ │ 业务逻辑 │ │ ← 项目管理/用户 │
│ │ └────────────────┘ │ │
│ └───────────┬──────────┘ │
└───────────────────────────┼────────────────────────────────┘
│
┌───────────────────────────┼────────────────────────────────┐
│ 数据层 │ │
│ ┌───────────┴──────────┐ │
│ │ PostgreSQL │ │
│ │ ┌────────────────┐ │ │
│ │ │ users │ │ 用户/组织 │
│ │ │ projects │ │ 项目信息 │
│ │ │ diagnoses │ │ 诊断历史 │
│ │ │ outputs │ │ 输出记录 │
│ │ └────────────────┘ │ │
│ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
三、部署方案
3.1 单机部署(开发/演示)
硬件:普通PC或服务器
系统:Ubuntu 22.04 / Windows + WSL
组件:Docker Compose (FastAPI + PostgreSQL + Nginx)
数据:本地文件导入(CSV/JSON)
3.2 生产部署
硬件:云服务器 4核/8G+
组件:Docker Swarm / K3s
存储:PostgreSQL + 对象存储
扩展:水平扩展 StrEvo 引擎实例(无状态)
3.3 最小部署规格
| 环境 |
CPU |
内存 |
存储 |
并发 |
| 开发 |
2核 |
4G |
20G |
1-2 |
| 演示 |
2核 |
4G |
50G |
5-10 |
| 生产 |
4核 |
8G |
100G+ |
50+ |
四、API 接口设计
4.1 核心接口
| 方法 |
路径 |
说明 |
| POST |
/api/v1/projects |
创建项目 |
| GET |
/api/v1/projects |
项目列表 |
| POST |
/api/v1/diagnose |
执行诊断 |
| GET |
/api/v1/diagnose/{id}/result |
获取诊断结果 |
| GET |
/api/v1/diagnose/{id}/curves |
获取稳定性曲线数据 |
| GET |
/api/v1/outputs |
可用输出列表 |
4.2 诊断请求示例
{
"project_id": "proj-001",
"data": {
"time_steps": [0, 1, 2, 3, 4],
"factors": {
"sensor_1": [12.5, 12.7, 12.9, 13.2, 13.5],
"sensor_2": [13.1, 13.0, 12.8, 12.5, 12.1],
"sensor_3": [11.8, 12.0, 12.2, 12.5, 12.9]
}
},
"params": {
"alpha": 0.99,
"beta": 5.0,
"theta_lock": 0.3,
"theta_fail": 0.25
},
"outputs": ["stability_curve", "fail_time", "weakest_factor"]
}
4.3 诊断响应示例
{
"diagnose_id": "diag-001",
"status": "completed",
"results": {
"stability_curve": [0.88, 0.84, 0.79, 0.72, 0.65],
"current_stability": 0.65,
"fail_time": 18,
"weakest_factor": "sensor_2",
"health_level": "关注",
"timestamp": "2026-07-21T15:00:00Z"
}
}
五、研发环境目录结构
UniEvo/
├── backend/
│ ├── api/ # FastAPI 路由
│ ├── engine/ # StrEvo 核心引擎
│ │ ├── core.py # 主计算逻辑
│ │ ├── memory.py # 记忆累积模块
│ │ ├── locking.py # 锁定概率模块
│ │ ├── stability.py # 稳定性聚合模块
│ │ └── outputs.py # 44种输出生成
│ ├── models/ # 数据模型
│ ├── services/ # 业务逻辑
│ └── tests/ # 测试
├── frontend/
│ ├── web/ # React 18 WEB端
│ └── mini/ # Taro 小程序端
├── docs/ # 文档
├── deploy/ # Docker 配置
└── README.md