feat: 重构前端 dist 构建产物,更新 Docker 配置及文档
- 重新构建 frontend/dist(新版 hash 替换旧版) - 更新 docker 前端 Dockerfile 及 docker-compose 配置 - 新增 docs/team-development-plan.md 团队开发计划文档 - 更新 README、系统开发计划等文档 - 更新 LoginView 组件 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
208
docs/team-development-plan.md
Normal file
208
docs/team-development-plan.md
Normal file
@@ -0,0 +1,208 @@
|
||||
# 多人并行开发分工计划
|
||||
|
||||
> 本文基于 `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 治理闭环 | 审批、审计、留存、导出、部署文档完善 | 高风险动作审批,审计可检索,应用/算力分离部署可复现 |
|
||||
|
||||
Reference in New Issue
Block a user