# 多人并行开发分工计划

> 本文基于 `docs/menu-functional-requirements.md`、`docs/backend-api-design.md`、`docs/postgres-schema.sql`、`docs/system-development-plan.md` 和当前前端路由整理，用于 3-4 人并行开发。开发口径以正式系统演进为准，不以临时演示或静态 Mock 作为交付标准。

## 1. 分工原则

- 每位开发尽量独立负责一组页面、后端模块、数据库表和联调脚本，避免多人同时改同一个业务文件。
- 公共接口契约先在 `docs/backend-api-design.md` 更新，再进入代码实现。
- 前端 API 模块按业务域维护：`system.ts`、`model.ts`、`dataset.ts`、`fineTune.ts`、`compute.ts`、`eval.ts`、`log.ts`。
- 后端业务代码按 `backend/app/modules/<domain>/` 拆分，路由统一挂载 `/modelTF`。
- 数据库按迁移脚本推进，目标模型以 `docs/postgres-schema.sql` 为准，当前运行库脚本以 `backend/app/db/sql/` 为准。
- 所有写操作必须预留审计；涉及删除、导出、发布、停止他人任务等高风险动作必须预留审批入口。

## 2. 4 人开发拆分

### A. 平台基础与企业治理

负责人边界：

- 前端目录：`frontend/src/views/login/`、`frontend/src/views/system/`，后续新增 `tenants`、`projects`、`approvals`、`audit` 页面目录。
- 前端 API：`frontend/src/api/modules/system.ts`、`frontend/src/api/modules/log.ts`。
- 后端模块：`auth`、`tenant`、`project`、`approval`、`audit`、`retention`、`system`。
- 数据库表：`users`、`permissions`、`roles`、`role_permissions`、`user_permission_overrides`、`tenants`、`tenant_users`、`projects`、`project_members`、`resource_acl`、`approval_templates`、`approval_instances`、`approval_steps`、`audit_logs`、`retention_policies`。

对应页面和功能：

| 页面/模块 | 路由 | 功能点 | 接口 |
| --- | --- | --- | --- |
| 登录 | `/login` | 登录、Token 写入、登录失败提示、会话恢复 | `POST /modelTF/login`、`GET /modelTF/me` |
| 用户设置 | `/user-settings`、`/user-settings/create`、`/user-settings/:id/permission` | 用户列表、创建、启停、重置密码、页面权限 | `/modelTF/users/*`、`/modelTF/permissions` |
| 平台性能 | `/hardware` | 系统资源、进程、GPU 摘要 | `/modelTF/system-info`、`/modelTF/compute/gpus` |
| 查看日志 | `/logs`、`/training-log/:id` | 后端日志、error 日志、训练日志索引和内容 | `/modelTF/log-files`、`/modelTF/log-content`、`/modelTF/training-log-*` |
| 租户管理 | `/tenants`、`/tenants/:id` | 租户、配额、留存策略 | `/modelTF/tenants/*`、`/modelTF/retention-policies/*` |
| 项目空间 | `/projects`、`/projects/:id`、`/projects/:id/members` | 项目、成员、项目角色 | `/modelTF/projects/*` |
| 资源授权 | `/resources/:type/:id/acl` 或弹窗 | 模型/数据集/任务 ACL | `/modelTF/resources/{type}/{id}/acl` |
| 审批中心 | `/approvals`、`/approval-settings` | 审批待办、审批历史、审批模板 | `/modelTF/approvals/*`、`/modelTF/approval-templates/*` |
| 审计中心 | `/audit-logs` | 操作审计、登录审计、导出 | `/modelTF/audit-logs` |

开发计划：

| 阶段 | 交付内容 |
| --- | --- |
| 第 1 周 | 完成登录、当前用户、用户列表、权限码、日志查询接口；完善当前运行 SQL。 |
| 第 2 周 | 完成租户、项目、项目成员、资源 ACL 后端和基础页面。 |
| 第 3 周 | 完成审批实例、审批模板、审计日志查询和导出。 |
| 第 4 周 | 接入其他模块写操作审计和审批拦截，补充权限测试。 |

验收标准：

- 所有业务列表按租户、项目、资源 ACL 过滤。
- 普通用户无法访问未授权项目、模型和数据集。
- 高风险动作有审批或管理员旁路规则。
- 日志文件和审计日志可按时间、用户、动作、资源筛选。

### B. 模型资产、训练与 LLaMA-Factory 任务

负责人边界：

- 前端目录：`frontend/src/views/model/`、`frontend/src/views/fine-tune/`。
- 前端 API：`frontend/src/api/modules/model.ts`、`frontend/src/api/modules/fineTune.ts`。
- 后端模块：`model`、`fine_tune`、`engine_registry`、`compute_gateway` 中的训练编排部分。
- 数据库表：`models`、`trained_models`、`fine_tune_tasks`、`fine_tune_metrics`、`fine_tune_checkpoints`、`training_engines`、`training_engine_capabilities`、`compute_jobs`、`gpu_allocations`。

对应页面和功能：

| 页面/模块 | 路由 | 功能点 | 接口 |
| --- | --- | --- | --- |
| 模型管理 | `/model-manage` | 基座模型、API 模型、训练产物列表、筛选、删除审批入口 | `/modelTF/model-manage`、`/modelTF/model-manage/trained-models` |
| 添加/编辑模型 | `/model-manage/create`、`/model-manage/:id/edit` | 模型登记、本地路径/API 配置、能力标签 | `/modelTF/model-manage`、`/modelTF/model-manage/{id}` |
| 合并权重 | `/model-manage/merge` | LoRA/Adapter 合并、产物登记 | `/modelTF/model-manage/merge` |
| 模型训练 | `/fine-tune` | 训练任务列表、状态、启动、停止、删除审批入口 | `/modelTF/fine-tune`、`/modelTF/fine-tune/{id}/start`、`/stop` |
| 创建训练任务 | `/fine-tune/create` | 选择模型、数据集、超参、GPU、节点策略 | `/modelTF/fine-tune`、`/modelTF/model-manage`、`/modelTF/dataset-manage`、`/modelTF/compute/*` |
| 训练日志 | `/training-log/:id` | 实时日志、loss 曲线、checkpoint、产物 | `/modelTF/fine-tune/{id}/progress`、`/metrics`、`/checkpoints`、`/modelTF/training-log-*` |

开发计划：

| 阶段 | 交付内容 |
| --- | --- |
| 第 1 周 | 完成模型 CRUD、训练任务 CRUD、训练参数校验和接口联调。 |
| 第 2 周 | 完成训练启动、停止、状态轮询、日志和指标落库。 |
| 第 3 周 | 完成 LLaMA-Factory 参数映射、checkpoint 列表、训练产物登记。 |
| 第 4 周 | 完成权重合并、失败恢复、权限隔离和审计接入。 |

验收标准：

- 训练任务不能绕过项目、模型、数据集权限。
- 训练任务状态以应用侧轮询 Compute API 为主。
- 训练命令只能由训练引擎适配层生成，不在页面或应用 API 中拼命令。
- checkpoint、日志、产物均可追溯到任务、节点、GPU 和项目。

### C. 数据集、数据处理、评测与推理

负责人边界：

- 前端目录：`frontend/src/views/dataset/`、`frontend/src/views/data-process/`、`frontend/src/views/data-convert/`、`frontend/src/views/eval/`、`frontend/src/views/inference/`、`frontend/src/views/compare/`、`frontend/src/views/tools/`。
- 前端 API：`dataset.ts`、`eval.ts`、`compare.ts`，必要时新增 `dataProcess.ts`、`dataConvert.ts`、`inference.ts`。
- 后端模块：`dataset`、`data_process`、`eval`、`inference`、`file_gateway` 中的数据资产登记部分。
- 数据库表：`datasets`、`dataset_files`、`dataset_file_versions`、`dataset_records`、`data_process_tasks`、`data_process_source_files`、`data_process_preview_items`、`data_process_results`、`data_convert_jobs`、`eval_tasks`、`eval_dimensions`、`eval_sample_results`、`inference_tasks`、`chat_sessions`、`chat_messages`、`custom_tools`。

对应页面和功能：

| 页面/模块 | 路由 | 功能点 | 接口 |
| --- | --- | --- | --- |
| 数据集管理 | `/dataset` | 数据集列表、搜索、版本、下载、删除审批入口 | `/modelTF/dataset-manage` |
| 数据集创建/编辑 | `/dataset/create`、`/dataset/:id/edit` | 元数据、文件上传、格式识别、项目归属 | `/modelTF/dataset-manage`、`/upload/{id}` |
| 数据集预览 | `/dataset/:id/preview` | 分页预览、在线编辑、版本对比 | `/modelTF/dataset-manage/{id}/preview`、`/versions` |
| 数据处理 | `/data-process`、`/data-process/create`、`/data-process/:id` | 文档上传、切片、脱敏、质量评分、发布数据集 | `/modelTF/data-process/*` |
| 数据类型转换 | `/data-convert` | JSON/JSONL/Markdown 转换任务 | `/modelTF/data-convert/jobs/*` |
| 模型评测 | `/model-eval`、`/model-eval/create`、`/model-eval/:id` | 评测任务、维度、样本级结果、人工复核预留 | `/modelTF/model-eval/*`、`/modelTF/dimension/*` |
| 模型推理/对比 | `/model-inference/*`、`/model-compare/*` | 模型加载、对话、对比、结果沉淀 | `/modelTF/model-chat/*`、`/modelTF/model-compare/*` |
| 自定义工具 | `/tools`、`/tools/create`、`/tools/:id/edit` | 工具登记、参数 schema、启停 | `/modelTF/tools/*` |

开发计划：

| 阶段 | 交付内容 |
| --- | --- |
| 第 1 周 | 完成数据集 CRUD、上传、预览、版本接口和页面联调。 |
| 第 2 周 | 完成数据处理任务、切片预览、质量评分和发布数据集。 |
| 第 3 周 | 完成评测任务、评测维度、样本结果查询。 |
| 第 4 周 | 完成推理会话、模型对比、数据转换、自定义工具基础能力。 |

验收标准：

- 数据文件必须登记存储对象、checksum、版本和项目归属。
- 数据处理产物发布为数据集时保留来源链路。
- 评测和推理必须记录使用的模型版本、数据集版本和参数快照。
- 下载、删除、导出等动作必须接入审计和审批策略。

### D. 算力平台、部署与运维

负责人边界：

- 前端目录：`frontend/src/views/compute/`，协助 `system/HardwareView.vue`。
- 前端 API：`frontend/src/api/modules/compute.ts`。
- 后端模块：`compute_gateway`、`engine_registry`、`file_gateway`、`system` 中的资源采集部分。
- 算力目录：`compute/api/`、`compute/agent/`、`compute/engines/llama_factory/`、`compute/file_gateway/`。
- 部署目录：`docker/app/`、`docker/compute/`、`docker/README.md`、`docs/deployment-plan.md`。
- 数据库表：`compute_nodes`、`gpu_devices`、`compute_node_engines`、`compute_jobs`、`gpu_allocations`、`resource_replicas`、`resource_sync_jobs`、`system_metric_snapshots`、`storage_objects`。

对应页面和功能：

| 页面/模块 | 路由 | 功能点 | 接口 |
| --- | --- | --- | --- |
| 算力节点 | `/compute`、`/compute?tab=nodes` | 节点地址、File Gateway 地址、权重、标签、启用状态、连接测试 | `/modelTF/compute/nodes/*` |
| GPU 资源 | `/compute?tab=gpus`、`/hardware` | GPU 显存、利用率、温度、分配状态、节点归属 | `/modelTF/compute/gpus`、`/modelTF/system-info` |
| 任务队列 | `/compute?tab=queue` | 队列、优先级、占用 GPU、任务状态 | `/modelTF/compute/queue` |
| 资源副本 | `/compute` 节点详情 | 模型/数据集在算力节点上的同步状态 | `/modelTF/compute/nodes/{id}/replicas` |
| 文件网关 | 无独立页面，供模型/数据/训练调用 | 上传、下载、离线导入、产物归档 | 应用侧 `/modelTF/*` 编排，算力侧内部 File Gateway API |
| 部署运维 | 文档和 Compose | 应用/算力分离部署、端口、镜像、日志、健康检查 | Docker Compose、健康检查接口 |

开发计划：

| 阶段 | 交付内容 |
| --- | --- |
| 第 1 周 | 完成 Compute API 健康检查、GPU 发现、节点登记和连接测试。 |
| 第 2 周 | 完成任务状态查询、应用侧轮询、资源副本状态同步。 |
| 第 3 周 | 完成 LLaMA-Factory 容器/宿主机路径适配、日志采集、训练进程管理。 |
| 第 4 周 | 完成应用/算力两套 Docker Compose、部署文档、故障排查脚本。 |

验收标准：

- 多算力节点阶段仍按“每台算力服务器 = 单机多 GPU 节点”设计。
- 每台算力服务器都部署 Compute API、Agent、File Gateway 和 LLaMA-Factory。
- 应用服务器只需主动访问所有算力节点，不要求算力节点反向访问应用服务器。
- 节点地址、权重、标签、启用状态必须可动态维护。

## 3. 3 人开发合并方案

如果团队只有 3 人，建议合并为：

| 开发人员 | 合并内容 | 不建议合并的原因 |
| --- | --- | --- |
| A | 平台基础与企业治理 | 该部分是所有模块的权限和隔离底座，不宜再叠加训练或数据主链路。 |
| B | 模型资产、训练与 LLaMA-Factory 任务 | 模型和训练强耦合，适合一人端到端打通。 |
| C | 数据集、数据处理、评测、推理、算力部署协同 | 数据链路和评测推理使用相同数据/模型资产；算力底层可先由 C 搭骨架，后续扩人拆出 D。 |

若进入真实 GPU 联调阶段，必须优先把 D 独立出来，否则训练问题、部署问题和业务问题会混在一起，排障效率会明显下降。

## 4. 公共契约和协作节奏

公共契约负责人建议由 A 兼任，所有人遵守：

| 契约 | 文件 | 变更规则 |
| --- | --- | --- |
| 路由前缀 | `backend/app/core/config.py`、`backend/app/api/v1/router.py`、接口文档 | 统一 `/modelTF`，不得新增 `/api` 前缀 |
| 响应结构 | `frontend/src/api/request.ts`、后端 schema | 统一 `{ code, message, data }` |
| 权限码 | `frontend/src/types/index.ts`、`permissions` 表、接口文档 | 新菜单先登记权限码再开发 |
| 项目隔离 | `project_id`、`tenant_id`、`resource_acl` | 所有模型、数据集、任务必须带项目归属 |
| 审计动作 | `audit_logs`、后端审计中间件/服务 | 写操作默认审计 |
| 异步状态 | 任务表、`compute_jobs` | 统一 `pending/running/completed/failed/stopped` |
| 文件存储 | `storage_objects`、File Gateway | 不暴露宿主机绝对路径给前端 |

建议节奏：

- 每周一上午同步接口契约和数据库迁移计划。
- 每天下午固定一次跨模块联调窗口，优先处理阻塞其他人的接口。
- 每个模块 PR 必须包含页面入口、接口说明、SQL/迁移、最小验证步骤。
- 公共文件如 `frontend/src/types/index.ts`、`backend/app/core/*`、`docs/backend-api-design.md` 由对应 owner 统一合并，其他人通过小 PR 提交变更。

## 5. 里程碑

| 里程碑 | 目标 | 必须完成 |
| --- | --- | --- |
| M1 基础可用 | 用户登录、模型/数据集/训练主链路可运行 | A 登录权限，B 模型训练，C 数据集，D 单节点 GPU 状态 |
| M2 企业隔离 | 多租户、项目、资源 ACL 接入主链路 | 所有资源按租户/项目过滤，审计落库 |
| M3 训练闭环 | LLaMA-Factory 真实训练、日志、checkpoint、产物登记 | 应用侧轮询 Compute API，训练产物可在模型管理查看 |
| M4 治理闭环 | 审批、审计、留存、导出、部署文档完善 | 高风险动作审批，审计可检索，应用/算力分离部署可复现 |

