第一次提交

This commit is contained in:
wangjiming
2026-07-27 09:12:47 +08:00
commit b4ff5db17b
579 changed files with 48768 additions and 0 deletions

View 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 治理闭环 | 审批、审计、留存、导出、部署文档完善 | 高风险动作审批,审计可检索,应用/算力分离部署可复现 |