docs: 补充 server-core 四层架构与算力通信规范

- 设计文档 §十三:FastAPI 四层架构(接口/业务/领域/基础设施),禁止反向依赖
- 算力通信:server-core 与算力调度经内部 IP,对外算力调用走 /api/v1
- 参考 PineSoundServer(serverdata/serverrun/ops)工程化
- CLAUDE.md 关键约定 #10 同步该标准
This commit is contained in:
2026-08-23 23:01:47 +08:00
parent daf3532120
commit 795e889a99
2 changed files with 37 additions and 0 deletions
+1
View File
@@ -76,6 +76,7 @@
- **主项目 = 根仓库(`opc`**:负责 `design/``materials/`、根文档与全局规范;**不跟踪各 code 子项目的代码,但保留其文件夹**——`code/*` 各为独立仓库(组织 Pine),被根仓库忽略。
- **同步全子项目**:同步 / 部署时必须**同步所有子项目**(`agent-desktop / server-core / web-official / park-desktop / training / compute-engine`),逐个 `git pull`/`push`,不得遗漏。
- **分别提交**:任一子项目有修改时,在**各自仓库**内分批用中文提交并推送,**不得混入根仓库或其它子项目**。
10. **server-core 架构标准**FastAPI 采用**四层架构**(接口层→业务层→领域层,基础设施层含数据模型层),**禁止反向依赖**;server-core 与**算力调度服务**经**内部 IP / loopback** 交互,对外算力调用统一走**服务端 `/api/v1`**。工程化(`serverdata/` 数据目录、`serverrun/` 容器启动、`ops/` 运维脚本)参考 `C:\Users\Administrator\MyCode\PineSoundServer`
---
+36
View File
@@ -426,6 +426,42 @@ dpm 后端新增数据源层,以**园区账号 token** 拉取**本园区**数
---
## 十三、server-core 分层架构与算力通信规范
### 13.1 FastAPI 四层架构(单向依赖)
| 层 | 职责 | server-core 目录(规划) |
|----|------|------------------------|
| **接口层** | 接收请求、返回响应、参数校验、路由 | `app/routers/` + `app/schemas/`Pydantic |
| **业务层** | 业务逻辑编排、用例(用领域对象实现用例) | `app/services/` |
| **领域层** | 核心业务模型与规则(实体 / 值对象 / 领域服务) | `app/domain/` |
| **基础设施层**(含数据模型层) | 数据库访问、缓存、消息队列、外部服务适配 | `app/infrastructure/``repositories/`、`models/`、`cache/`、`mq/` |
**依赖方向(单向,禁止反向依赖)**:
```
接口层 → 业务层 → 领域层
↘ ↘ ↘
基础设施层(数据模型 / DB / 缓存 / MQ / 外部服务)
```
- 接口层只做「收请求 → 调业务层 → 返回响应」;业务层不依赖接口层。
- 领域层是核心模型与规则,**不依赖**业务层 / 接口层 / 基础设施层的具体实现(只面向其接口)。
- 基础设施层实现接口,**不得反向依赖**上层。
### 13.2 算力通信规范
- **内部**FastAPIserver-core)与**算力调度服务**compute-engine / 算力引擎)经**内部 IP / loopback** 交互(`http://127.0.0.1:3000`),不经过公网。
- **对外**:前端 / 用户的算力调用统一走**服务端 `/api/v1`**server-core 统一入口),**不直连**算力引擎。
- 算力引擎(new-api)仅作服务被消费,无页面暴露;额度 / 令牌 / 流水由服务端算力服务程序化管理(见 §4.3)。
### 13.3 参考工程化:PineSoundServer
server-core 的工程化(数据目录 / 容器启动 / 运维脚本)参考 `C:\Users\Administrator\MyCode\PineSoundServer`
- **`serverdata/`**:数据目录规范(`logs/ data/ files/ keys/ prompts/` + 各中间件数据 `emqx-data/ redis-data/ minio/ milvus/`)。
- **`serverrun/`**:容器与微服务启动(`start-all.sh` 编排、各服务 `docker-compose.yml`、`envcopy.sh` 配置加密、`encrypt-certs.sh` 证书加密)。
- **`ops/`**:运维脚本(`init_admin` / `db_backup` / 数据迁移 / `clear_redis_tokens` / 算力套餐与分区初始化等)。
---
## 附:与既有设计文档的关系
- 本设计是「`三端架构设计.md`(培训三端)」与「`身份体系与端口权限设计方案.md`(云超服七端口)」的**合一演进**:培训业务并入云超服端口体系。