docs: 补充 server-core 四层架构与算力通信规范
- 设计文档 §十三:FastAPI 四层架构(接口/业务/领域/基础设施),禁止反向依赖 - 算力通信:server-core 与算力调度经内部 IP,对外算力调用走 /api/v1 - 参考 PineSoundServer(serverdata/serverrun/ops)工程化 - CLAUDE.md 关键约定 #10 同步该标准
This commit is contained in:
@@ -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`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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 算力通信规范
|
||||
|
||||
- **内部**:FastAPI(server-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`(云超服七端口)」的**合一演进**:培训业务并入云超服端口体系。
|
||||
|
||||
Reference in New Issue
Block a user