版本:V1.0 关联:产品方案总纲、技术架构与部署路线
┌────────────────────────────────────────────────────────────┐
│ UniEvo 平台层 │
│ (React WEB / Taro 小程序 / FastAPI 业务服务) │
│ 项目管理 · 用户管理 · 数据接入 · 可视化 · 报告 │
│ 版本管理:独立于引擎,按产品迭代节奏发布 │
└────────────────────────┬───────────────────────────────────┘
│ 调用(API/SDK/本地调用)
▼
┌────────────────────────────────────────────────────────────┐
│ StrEvo 引擎层 │
│ (Python Package: `strevo-engine`) │
│ Δ→M→P→S→T 核心链 · 44种输出 · 参数系统 │
│ 版本管理:语义化版本,独立发布 │
└────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────┐
│ 第三方集成 │
│ pip install strevo-engine → 在自己的项目里调用 │
└────────────────────────────────────────────────────────────┘
一个纯 Python 计算包,不依赖任何 Web 框架、不依赖数据库、不依赖前端。仅依赖 NumPy。
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)
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
| 版本 | 变更 | 兼容性 |
|---|---|---|
| 0.1.0 | 初始版本,核心链+核心输出 | — |
| 0.2.0 | 扩展输出(衍生+复合) | 向后兼容 |
| 0.3.0 | 高级输出(H系列) | 向后兼容 |
| 1.0.0 | 稳定版,API冻结 | — |
| 1.1.0 | α自校准功能 | 向后兼容 |
平台层负责所有"引擎之外的事情":用户界面、项目管理、数据接入、可视化和报告输出。它调用引擎但不修改引擎。
方式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。
UniEvo 平台 v1.0 ── 兼容 ──→ strevo-engine v0.1+
UniEvo 平台 v1.1 ── 兼容 ──→ strevo-engine v0.2+
UniEvo 平台 v2.0 ── 兼容 ──→ strevo-engine v1.0+
引擎升级时,平台层需要回归测试,但不需要修改代码(API 向后兼容)。
strevo-engine/
├── 开发新功能(如新增输出类型)
├── 更新版本号(pyproject.toml)
├── 运行测试(pytest)
├── 发布到 PyPI 或私有仓库
└── 通知平台层更新依赖
引擎开发不需要启动平台、不需要数据库、不需要前端。
UniEvo Platform/
├── 开发新功能(如新增用户管理)
├── 调用 strevo-engine API(无改动)
└── 发布新版本
平台开发不需要修改引擎代码。
| 引擎变更 | 平台是否需要修改 | 说明 |
|---|---|---|
| 新增输出类型 | ❌ 不需要 | 平台按需取用 |
| 修复计算bug | ❌ 不需要 | 自动受益 |
| 修改参数接口 | ✅ 需要兼容测试 | 应避免,保持向后兼容 |
| 修改返回格式 | ✅ 需要适配 | 应避免,保持向后兼容 |
| 优势 | 说明 |
|---|---|
| 独立开发 | 引擎开发者不需要知道 Web 框架,Web 开发者不需要知道矩阵运算 |
| 独立测试 | 引擎可以脱离数据库/前端独立测试 |
| 独立版本 | 引擎的 bug 修复可以独立发布,不影响平台 |
| 可复用 | 引擎可以作为 Python 包提供给第三方(pip install) |
| 可替换 | 如果未来需要 Rust/Go 重写引擎以提升性能,不改变平台架构 |
| 可闭源 | 引擎可以作为核心 IP 闭源发布,平台开源 |
| 阶段 | 动作 |
|---|---|
| S1 | 引擎和平台在同一仓库的不同目录下开发,但保持 import 隔离 |
| S2 | 引擎提取为独立仓库 strevo-engine,平台通过 git submodule 或 pip 引用 |
| S3 | 引擎发布到 PyPI,平台通过 pip install strevo-engine 依赖 |