UniEvo Plan Viewer

← 返回列表

UniEvo 分层架构——引擎与平台解耦方案

版本:V1.0 关联:产品方案总纲、技术架构与部署路线


一、解耦架构

┌────────────────────────────────────────────────────────────┐
│                    UniEvo 平台层                             │
│  (React WEB / Taro 小程序 / FastAPI 业务服务)               │
│  项目管理 · 用户管理 · 数据接入 · 可视化 · 报告             │
│  版本管理:独立于引擎,按产品迭代节奏发布                   │
└────────────────────────┬───────────────────────────────────┘
                         │ 调用(API/SDK/本地调用)
                         ▼
┌────────────────────────────────────────────────────────────┐
│                    StrEvo 引擎层                             │
│  (Python Package: `strevo-engine`)                          │
│  Δ→M→P→S→T 核心链 · 44种输出 · 参数系统                    │
│  版本管理:语义化版本,独立发布                              │
└────────────────────────────────────────────────────────────┘
                         │
                         ▼
┌────────────────────────────────────────────────────────────┐
│                    第三方集成                               │
│  pip install strevo-engine → 在自己的项目里调用              │
└────────────────────────────────────────────────────────────┘

二、引擎层(strevo-engine)

2.1 定位

一个纯 Python 计算包,不依赖任何 Web 框架、不依赖数据库、不依赖前端。仅依赖 NumPy。

2.2 使用方式

from strevo import StrEvo

# 初始化引擎
engine = StrEvo(
    alpha=0.99,        # 遗忘率
    beta=5.0,          # 锁定敏感度
    theta_lock=0.3,    # 锁定阈值
    theta_fail=0.25    # 失效阈值
)

# 输入差异矩阵 (T, n, n)
# 或者直接输入原始数据矩阵 (T, n),引擎自动计算差异
result = engine.run(delta_matrix)

# 获取结果
result.stability_curve    # [0.88, 0.84, 0.79, ...]
result.fail_time          # 18
result.weakest_factor     # 2
result.health_level       # "关注"

# 获取全部44种输出
all_outputs = engine.get_all_outputs(delta_matrix)

2.3 包结构

strevo-engine/
├── strevo/
│   ├── __init__.py          # 公开 API:StrEvo 类
│   ├── core.py              # 核心链:Δ→M→P→S→T
│   ├── memory.py            # 记忆累积模块(EMA + 扩展)
│   ├── locking.py           # 锁定概率模块(Sigmoid 族)
│   ├── stability.py         # 稳定性聚合模块
│   ├── outputs.py           # 44种输出生成器
│   ├── params.py            # 参数系统与校验
│   └── calibrate.py         # α自校准方法
├── tests/
│   ├── test_core.py
│   ├── test_outputs.py
│   └── test_calibrate.py
├── pyproject.toml
├── README.md
└── LICENSE

2.4 版本管理

版本 变更 兼容性
0.1.0 初始版本,核心链+核心输出
0.2.0 扩展输出(衍生+复合) 向后兼容
0.3.0 高级输出(H系列) 向后兼容
1.0.0 稳定版,API冻结
1.1.0 α自校准功能 向后兼容

三、平台层(UniEvo Platform)

3.1 定位

平台层负责所有"引擎之外的事情":用户界面、项目管理、数据接入、可视化和报告输出。它调用引擎但不修改引擎。

3.2 调用方式

方式A:本地调用(推荐)

# platform 服务中直接 import
from strevo import StrEvo

engine = StrEvo(**params)
result = engine.run(delta_matrix)
# 将 result 存储到数据库,返回给前端

优势:零网络开销,延迟最低,调试方便。

方式B:API 调用(分布式)

POST /api/v1/engine/diagnose
Body: { delta_matrix, params }
Response: { stability_curve, fail_time, ... }

优势:引擎可独立部署、水平扩展。

推荐:初期使用方式A(同进程调用),当负载增大时切换到方式B。

3.3 平台版本与引擎版本的关系

UniEvo 平台 v1.0 ── 兼容 ──→ strevo-engine v0.1+
UniEvo 平台 v1.1 ── 兼容 ──→ strevo-engine v0.2+
UniEvo 平台 v2.0 ── 兼容 ──→ strevo-engine v1.0+

引擎升级时,平台层需要回归测试,但不需要修改代码(API 向后兼容)。


四、独立开发与版本更新流程

4.1 引擎开发流程

strevo-engine/
    ├── 开发新功能(如新增输出类型)
    ├── 更新版本号(pyproject.toml)
    ├── 运行测试(pytest)
    ├── 发布到 PyPI 或私有仓库
    └── 通知平台层更新依赖

引擎开发不需要启动平台、不需要数据库、不需要前端。

4.2 平台开发流程

UniEvo Platform/
    ├── 开发新功能(如新增用户管理)
    ├── 调用 strevo-engine API(无改动)
    └── 发布新版本

平台开发不需要修改引擎代码。

4.3 引擎升级对平台的影响

引擎变更 平台是否需要修改 说明
新增输出类型 ❌ 不需要 平台按需取用
修复计算bug ❌ 不需要 自动受益
修改参数接口 ✅ 需要兼容测试 应避免,保持向后兼容
修改返回格式 ✅ 需要适配 应避免,保持向后兼容

五、这个架构的优势

优势 说明
独立开发 引擎开发者不需要知道 Web 框架,Web 开发者不需要知道矩阵运算
独立测试 引擎可以脱离数据库/前端独立测试
独立版本 引擎的 bug 修复可以独立发布,不影响平台
可复用 引擎可以作为 Python 包提供给第三方(pip install)
可替换 如果未来需要 Rust/Go 重写引擎以提升性能,不改变平台架构
可闭源 引擎可以作为核心 IP 闭源发布,平台开源

六、实施建议

阶段 动作
S1 引擎和平台在同一仓库的不同目录下开发,但保持 import 隔离
S2 引擎提取为独立仓库 strevo-engine,平台通过 git submodule 或 pip 引用
S3 引擎发布到 PyPI,平台通过 pip install strevo-engine 依赖