Files
iAOP/core/template-console/README.md
T

83 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ⑤.7 模板配置台(Template Console)内核引擎
> 父 EPIC:#9「⑤.7 模板配置台 Template Console」
> 子 issue:#62 / #63 / #64 / #65 / #66 / #67(同一 feature 分支 `feature/issue-62`,单 PR 关联全部 6 个 issue)
配置台是一个**无代码、配置驱动**的内核能力,让实施工程师(而非开发者)按现场调
模板:点位字典、模型超参、RAG、驾驶舱布局全部在配置台编排,预览确认后发布版本,
再把版本推送给内核(edge-gateway / rag-kb / model-framework)生效。本目录是配置台
的**纯标准库核心引擎**(不是 Web 前端——前端由 cockpit 渲染本引擎产出的结构化输出)。
## 为什么放在 `core/`?
配置台是**跨模板通用的内核能力**(RBAC / 配置存储 / 版本 / 推送契约服务于所有行业
模板:氯化 ti-cl4、树脂 resin、…),与 `core/edge-gateway`、`core/rag-kb`、
`core/model-framework` 同级,而非属于某个具体模板,故置于 `core/template-console/`。
## 6 个子任务映射
| issue | 模块 | 职责 |
|-------|------|------|
| #62 | `rbac.py` | 三级 RBAC(管理员 admin / 行业工程师 engineer / 只读 readonly),角色继承、`has_permission(resource, action)` 带理由判定、细粒度收窄 |
| #63 | `point_importer.py` | 点位字典 CSV 导入 + 自动校验页面。**复用** `core/edge-gateway/point_dict` 校验器(量纲/数据类型/采样率/重复点号/协议),增加 OPC 节点格式校验、表头列序校验、模板级量纲收窄(resin/ti)、行级结果聚合 |
| #64 | `config_store.py` | 配置项 CRUD(模型超参 / RAG / 布局三类),文件系统版本化 JSON 存储,list/get/upsert/delete + 按类别校验,原子写,快照 snapshot/restore |
| #65 | `preview.py` | 预览渲染引擎:布局(widget 卡片 + 网格占用率/越界/重叠检测)/ 告警(规则渲染 + 模拟触发评估)/ NL 查询(模板 → 示例问句)。对齐 `iAOP-cockpit-layout-v1` widget 类型 |
| #66 | `release.py` | 版本发布 + 回滚点。基于 `config_store` 快照的 Release,semver 单调递增校验,publish 固化快照、rollback 恢复快照(不删历史、回滚事件可追溯) |
| #67 | `push_channel.py` | 配置台↔内核配置推送契约。PushManifest(版本/快照/SHA256 校验和),PushChannel 模拟推送(写 manifest 到内核 inbox)、幂等(同版本不重复推送)、retract 撤回、verify 完整性校验 |
## 设计原则(对齐 PRD「可解释可溯源」与既有内核范式)
- **纯标准库零运行时依赖**:不 import pyyaml/numpy/pandas。需要哈希用 `hashlib`,
JSON 用 `json`,CSV 用 `csv`。
- **dataclass + Enum + 类型注解 + 中文 docstring**,与 `core/data-bus`、
`core/edge-gateway` 风格一致。
- **可解释性**:关键决策都带 `meaning` / `reason` 字段(RBAC 判定理据、配置项修改
原因、发布 changelog、回滚事件、推送日志),便于审计与配置台展示。
- **复用而非重造**:#63 直接复用 `core/edge-gateway/point_dict`(schema/loader/validator),
只增加配置台专属校验维度,避免与内核点位字典机制漂移。
## 目录结构
```
core/template-console/
├── __init__.py # 包入口(导出 RBAC 公共 API)
├── rbac.py # #62 三级 RBAC
├── point_importer.py # #63 点位字典 CSV 导入+校验
├── config_store.py # #64 配置项 CRUD 存储
├── preview.py # #65 预览渲染引擎
├── release.py # #66 版本发布+回滚
├── push_channel.py # #67 配置推送契约
├── _sanity_check.py # 离线基本校验(跑全部测试 + 冒烟)
├── README.md # 本文件
└── tests/
├── _bootstrap.py # 挂载 template_console 包 + 暴露 edge-gateway/point_dict
├── test_rbac.py
├── test_point_importer.py
├── test_config_store.py
├── test_preview.py
├── test_release.py
└── test_push_channel.py
```
## 运行测试
```bash
# 嵌入式 Python(无 pip/pyyaml)
/c/gitea/python312/python.exe -m unittest discover \
-s core/template-console/tests -p "test_*.py" -v
# 离线基本校验(跑全部测试 + 冒烟)
/c/gitea/python312/python.exe core/template-console/_sanity_check.py
```
## 数据流(配置台典型用例)
```
实施工程师导入点位字典(#63) ─┐
行业工程师调模型超参/RAG/布局(#64) ─┼─▶ 预览确认(#65) ─▶ 管理员发布版本(#66)
│ │
│ ▼
└──────────────────── 配置推送内核(#67) ─▶ edge-gateway/rag-kb/...
全程受三级 RBAC(#62) 权限管控;每次变更可解释、可溯源、可回滚。
```