Files
YG_FT/docs/team-development-plan.md
2026-07-27 09:12:47 +08:00

209 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 多人并行开发分工计划
> 本文基于 `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 治理闭环 | 审批、审计、留存、导出、部署文档完善 | 高风险动作审批,审计可检索,应用/算力分离部署可复现 |