130 lines
12 KiB
Markdown
130 lines
12 KiB
Markdown
# 后续工作计划
|
||
|
||
> **完成状态(2026-08-17 更新)**:#5-#24、#27 已完成,Task 0/1/2/4/5/6/8/9/10/11/12/13/14 整改代码/验收文档完成(详见 `开发交接记录.md`);#1-4 因物理机问题挂起;#23/#26 骨架完成;Task 3/7 延后到最后处理;微信/天气真实数据待凭证;本地新增 v9 对象授权/运营能力/组织管理,尚未部署开发服务器。
|
||
|
||
## 整改实施计划 Wave 0-4(2026-08-13 启动)
|
||
|
||
能力状态使用七态:未开始、方案确定、骨架、Mock、手工录入、部分可用、可验收、已验证。
|
||
|
||
| Wave | 范围 | 任务 | 状态 | 阻塞 |
|
||
|---|---|---|---|---|
|
||
| Wave 0 | 决策与基线 | Task 0 固化开放决策与整改基线 | 方案确定 | 无,决策记录已生成 |
|
||
| Wave 0 | 决策与基线 | Task 1 恢复可复现的多端质量基线 | 部分可用 | CI 待 Task 0 平台落地 |
|
||
| Wave 1 | P0 安全与正确性 | Task 2 版本化数据库迁移与 Schema 启动门禁 | 部分可用 | 开发库升级已验证,真实 down 回滚演练待后续 |
|
||
| Wave 1 | P0 安全与正确性 | Task 3 移除默认密钥与默认管理员密码 | 延后到最后(跳过) | 用户 2026-08-13 明确要求跳过并留到最后 |
|
||
| Wave 1 | P0 安全与正确性 | Task 4 收口视频访问与摄像头密钥输出 | 部分可用 | 待开发服务器部署联调 |
|
||
| Wave 1 | P0 安全与正确性 | Task 5 修复 WebSocket 越权与 AI 流 SSRF | 部分可用 | 待开发服务器部署与真实 WS/AI 联调 |
|
||
| Wave 1 | P0 安全与正确性 | Task 6 修复 AI 风险语义并隔离 Mock 数据 | 部分可用 | 待开发服务器迁移部署与真实模型接入;历史数据待人工审阅 |
|
||
| Wave 1 | P0 安全与正确性 | Task 7 修订 qPCR 判读与检测质控 | 延后到最后(跳过) | 用户 2026-08-14 明确要求跳过并留到最后;恢复前需领域专家确认 |
|
||
| Wave 2 | 工程可靠性 | Task 8 建立可靠通知、吊销与跨实例状态 | 部分可用 | 待开发服务器迁移部署与 Redis/微信真实联调 |
|
||
| Wave 2 | 工程可靠性 | Task 9 建立统一检测任务、样本链与发病事件 | 部分可用 | 待开发服务器迁移部署与端到端联调 |
|
||
| Wave 3 | 业务闭环 | Task 10 补齐消毒、种源与二维码身份链 | 部分可用 | 待开发服务器迁移部署与真实二维码/现场扫码联调 |
|
||
| Wave 3 | 业务闭环 | Task 11 实现小程序离线巡检与可靠同步 | 部分可用 | 待开发服务器迁移部署与开发者工具离线/重启联调 |
|
||
| Wave 3 | 业务闭环 | Task 12 完善环境规则、会诊治理、知识审核与效果评估 | 部分可用 | 待开发服务器迁移部署与专家/试点联调 |
|
||
| Wave 4 | 验收与发布 | Task 13 建立可观测性、容量与恢复验证 | 部分可用 | 待真实环境负载/备份恢复演练与告警通道联调 |
|
||
| Wave 4 | 验收与发布 | Task 14 建立规格追踪、端到端验收与发布门禁 | 部分可用 | 已部署并完成 E2E/负载/恢复冒烟;待 30 分钟 WS、AI T4、正式发布 |
|
||
|
||
## 下一步工作计划(2026-08-14 交接版)
|
||
|
||
当前基线:`dev_wjs`;开发服务器仍为已部署的 Go schema v8,本地 v9 迁移与对象授权代码未提交、未部署。以下事项按优先级交接给后续同事。
|
||
|
||
| 优先级 | 事项 | 负责人 | 阻塞 | 完成标准/证据 |
|
||
|---|---|---|---|---|
|
||
| P0 | E2E-02 真实模型“sick → 橙色 → 仅一个待确认任务” | AI + 后端 | YOLO 二分类训练 #1-4 | 真实 `best.onnx` 接入后,上传 sick 图片仅产生 1 个 pending 检测任务 |
|
||
| P0 | IAM-003 组织/区域/房间级对象授权 | 后端 + Web | 代码、单测与 Web 组织管理已完成;待开发服务器越权联调 | 无权用户访问房间/设备/业务记录返回 403,越权测试通过 |
|
||
| P1 | E2E-07 微信开发者工具离线取证 | 小程序 | 微信开发者工具/真机环境 | 离线→重启→联网→仅同步一次,截图+日志存档 |
|
||
| P1 | 1000 WebSocket 持续 30 分钟 | 运维 + 后端 | 无 | 掉线率、消息 P95、CPU/内存曲线达标并记录 |
|
||
| P1 | AI T4 峰值测试 | AI + 运维 | T4 主机、真实模型 | p50/p95、失败率、GPU 显存记录 |
|
||
| P1 | Task 3 默认密钥/管理员初始化 | 后端 + 运维 | 最后阶段窗口 | 生产缺关键配置拒绝启动;历史密钥轮换完成 |
|
||
| P1 | Task 7 qPCR 判读质控 | 后端 + 领域专家 | 专家签字确认 protocolVersion/阈值 | 四态结果和对照质控实现并测试 |
|
||
| P2 | ENV-006 设备校准/故障/维护/固件 | 后端 + Web | 后端 CRUD 与 Web 维护编辑/删除已补;待现场联调 | 设备资产与维护记录 CRUD |
|
||
| P2 | FARM-006 产量/死亡/淘汰/损失/成本 | 后端 + Web | 记录、统计接口与 Web 编辑/删除已补;待现场联调 | 记录字段和统计接口 |
|
||
| P2 | KB-003 脱敏案例沉淀 | 后端 + Web | 后端审核发布与 Web 案例库已补;待目标环境验收 | 已脱敏病例审核发布流程 |
|
||
| P2 | TRACE-004 实验室结构化数据 | 后端 + Web | 结构化 CRUD 与 Web 录入已补;设备导入待做 | 实验室结果/分型结构化关联 |
|
||
| P2 | CI/OpenAPI/制品仓库 | 运维 + 测试 | CI 平台决策 | 自动门禁、OpenAPI、制品保留 |
|
||
| P2 | 数据保留与审计策略 | 运维 + 产品 | 业务确认 | 保留期限、删除/导出/匿名化流程 |
|
||
| P2 | 推送远端并接入发布流程 | 运维 | Git 远端地址 | 提交推送到远端,正式发布门禁执行 |
|
||
|
||
## 技术选型决策(2026-08-11 确定)
|
||
|
||
**采用混合架构:现有 Go 底座 + Python AI 微服务**
|
||
|
||
- 平台/业务:沿用 `server-go`(Go/Gin/GORM、PostgreSQL、IoTDB、Valkey/Redis、VerneMQ、Ceph S3、WVP+ZLM 等现有能力)
|
||
- AI 能力:新建独立 Python 服务 `ai-service/`(FastAPI + ONNX Runtime),承载 YOLO 检测、图像/光谱分析
|
||
- 通信:Go 后端 ↔ AI 服务通过 HTTP/gRPC;摄像头流巡检由 AI 服务直接消费 ZLMediaKit 流
|
||
- 端侧:农户端微信小程序沿用现有 Taro miniapp;端侧 ONNX 推理作为后续优化项
|
||
|
||
**部署决策(2026-08-11 确定):生产环境全部上云,本地仅用于开发/训练/测试**
|
||
|
||
- 生产:业务云主机 + GPU 云主机(NVIDIA T4 16G)+ 云对象存储(OSS/COS),同地域同 VPC 内网互通
|
||
- 本地(开发 VM + fnOS/i7-8700T/Tesla P4 物理机):仅做代码开发、YOLO 模型训练、数据集处理与功能测试;训练产物(`best.onnx` 等)上传云端部署
|
||
|
||
## 云部署配置(2026-08-11 确定)
|
||
|
||
| 资源 | 推荐配置 | 用途 |
|
||
|---|---|---|
|
||
| 业务云主机 | 8 vCPU / 32GB / 100GB SSD 系统盘 + 500GB SSD 数据盘,10Mbps 起步(视频多则按量),Debian 12 / Ubuntu 22.04,华南或华东 | Go 后端、PostgreSQL、IoTDB、VerneMQ、Valkey、Docker(WVP/ZLM/MySQL/Redis)、recorder-go、前端 |
|
||
| GPU 云主机 | NVIDIA T4 16G,8 vCPU / 32GB / 100GB SSD,与业务主机同 VPC | `ai-service`(ONNX Runtime 推理),不承担训练 |
|
||
| 云对象存储 | OSS/COS:录像 bucket + 图片 bucket,配置生命周期(录像按保留期转低频/删除) | 替代 Ceph(现有 loop 100GB 容量/性能受限) |
|
||
| 网络与入口 | 域名 + HTTPS 证书(小程序合法域名需 ICP 备案)、负载均衡(可选)、CDN(模型/静态资源分发) | 对外访问与端侧模型更新 |
|
||
| 数据库 | 优先云 RDS(高可用+自动备份);成本敏感则业务主机自装 + 每日备份 + 云盘快照 | PostgreSQL 业务数据 |
|
||
|
||
## 一、前置准备(P0)
|
||
|
||
- [ ] 1. 修复数据集:按原始图重新划分 train/valid/test(消除 Roboflow 增强副本导致的跨集泄漏);修正 `data.yaml`(`heathly` → `healthy`、绝对路径);删除空标签(**挂起:物理机问题**)
|
||
- [ ] 2. 远程训练服务器(fnOS / i7-8700T / 62G / Tesla P4 8G)搭建环境:venv + PyTorch(cu121/cu124,兼容 P4)+ ultralytics(**挂起:物理机问题**)
|
||
- [ ] 3. 数据集上传服务器 `/vol1/ai/datasets`(**挂起:物理机问题**)
|
||
- [ ] 4. YOLOv8s 二分类基线训练(healthy/sick),产出 `best.pt` / `best.onnx` + 指标报告(mAP、混淆矩阵)(**挂起:物理机问题;ai-service 已预留 `MODEL_MODE=onnx` + `best.onnx` 接入**)
|
||
|
||
## 二、AI 巡检闭环(规格书阶段一,MVP)
|
||
|
||
- [x] 5. 新建 `ai-service/`(**骨架完成**:FastAPI + ONNX Runtime,`POST /detect`、`GET /health`、`/stream-detect`、`/metrics`;mock 模式运行于开发服务器 :8000;真实模型待训练恢复后 `MODEL_MODE=onnx`)
|
||
- [x] 6. Go 后端对接(**完成**:AI client + `inspection_records` + `/api/v1/inspections`,`Idempotency-Key` 幂等)
|
||
- [x] 7. 蚕房/蚕匾/批次管理(**完成蚕匾/批次/饲养记录**;消毒记录 P1、蚕种来源全链 P2 未做)
|
||
- [x] 8. 农户小程序拍照巡检(**完成**:拍照→上传→AI 结果→风险分级→记录;端侧推理为后续优化)
|
||
- [x] 9. 风险评分引擎(**完成**:0.5×AI + 0.2×环境 + 0.15×阶段 + 0.15×整齐度;整齐度暂无数据源恒为 0)
|
||
- [x] 10. 知识库初始版(**完成**:4 类核心 + 扩展病种、AI 结果解读、LAMP/SERS 教程、四季提醒、图谱图片上传;图谱素材待三个方向导入)
|
||
- [x] 11. 推送(**骨架完成**:WebSocket 保留 + 微信订阅消息绑定/授权/巡检触发;真实推送待 AppID/Secret/模板 ID)
|
||
|
||
## 三、环境监测 + LAMP 检测(规格书阶段二)
|
||
|
||
- [x] 12. 天气数据接入与高发病天气预警规则(**完成**:和风天气 + `weather_alerts` + 定时评估;真实数据待 `QWEATHER_API_KEY/LOCATION`)
|
||
- [x] 13. 饲养阶段风险提示(**完成**:`/knowledge/stage-hints` + 小程序选择器)
|
||
- [x] 14. LAMP 检测管理(**完成**:任务单/5 步流程/照片/结果录入;AI 辅助判读待模型)
|
||
- [x] 15. 交叉验证(**完成**:一致→确认诊断,不一致→建议会诊)
|
||
- [x] 16. 耗材管理(**完成**:库存/低库存/临期预警/采购建议)
|
||
- [x] 17. 技术员 Web 后台(**完成**:检测任务/耗材/巡检复查)
|
||
|
||
## 四、专家诊断 + 多检测方式 + 疫病溯源(规格书阶段三)
|
||
|
||
- [x] 18. 专家会诊(**完成**:病例快照/意见/防控方案/归档;在线会诊为表单版,实时音视频未做)
|
||
- [x] 19. qPCR/SERS/高光谱接入(**完成**:Ct 自动判读、SERS 光谱 + 光谱库、高光谱预留)
|
||
- [x] 20. 多检测方式推荐引擎(**完成**:设备/紧急/操作者/成本偏好加权)
|
||
- [x] 21. 疫病溯源(**完成**:三级溯源;区域关联 v1 用同房间历史)
|
||
- [x] 22. 区域发病热力图(**完成统计图表版**(柱状/饼图);GeoJSON 乡镇/县级地图后续按需接入)
|
||
- [x] 23. 摄像头流 AI 巡检(**骨架完成**:`/stream-detect` 拉流抽帧检测;正式巡检编排二期,需摄像头视角数据)
|
||
|
||
## 五、数据分析与运维
|
||
|
||
- [x] 24. 蚕房健康画像、防控效果评估、年度发病规律(**健康画像与年度规律完成**;防控效果评估 P2 未做)
|
||
- [x] 25. 时序存储决策:**MVP 沿用 IoTDB(现状)**;TDengine 作为生产规模化候选,在出现聚合报表/性能瓶颈或上云规划时先做基准测试再定(2026-08-13 决策)
|
||
- [x] 26. AI 服务部署与 GPU 监控(**骨架完成**:`/metrics` 含 nvidia-smi,开发服务器可读到 940MX;生产 T4 接入时复用)
|
||
- [x] 27. 测试基建(**完成**:Go 各模块单测 + Web Vitest + `npm test`)
|
||
|
||
## 依赖关系
|
||
|
||
```text
|
||
数据/环境(1-4) → AI 服务(5) → 拍照巡检(6-11) [阶段一]
|
||
↓
|
||
环境+LAMP(12-17) → 专家会诊(18) → 疫病溯源(21) [阶段二→三]
|
||
↓
|
||
摄像头流巡检(23) + 数据分析(24) [阶段三→四]
|
||
```
|
||
|
||
## 待决策事项
|
||
|
||
- [x] 时序数据库:MVP 沿用 IoTDB;TDengine 留作生产规模化候选(基准测试后再定)
|
||
- [ ] 数据集病种扩展:由二分类(healthy/sick)扩展为 7 类病种标注(影响 AI 巡检与溯源联动)
|
||
- [x] AI 服务部署形态:已定——云 GPU 主机(T4 16G),容器化部署
|
||
- [x] 对象存储:已定——云 OSS/COS,替代 Ceph
|