12 KiB
12 KiB
后续工作计划
完成状态(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)
- 5. 新建
ai-service/(骨架完成:FastAPI + ONNX Runtime,POST /detect、GET /health、/stream-detect、/metrics;mock 模式运行于开发服务器 :8000;真实模型待训练恢复后MODEL_MODE=onnx) - 6. Go 后端对接(完成:AI client +
inspection_records+/api/v1/inspections,Idempotency-Key幂等) - 7. 蚕房/蚕匾/批次管理(完成蚕匾/批次/饲养记录;消毒记录 P1、蚕种来源全链 P2 未做)
- 8. 农户小程序拍照巡检(完成:拍照→上传→AI 结果→风险分级→记录;端侧推理为后续优化)
- 9. 风险评分引擎(完成:0.5×AI + 0.2×环境 + 0.15×阶段 + 0.15×整齐度;整齐度暂无数据源恒为 0)
- 10. 知识库初始版(完成:4 类核心 + 扩展病种、AI 结果解读、LAMP/SERS 教程、四季提醒、图谱图片上传;图谱素材待三个方向导入)
- 11. 推送(骨架完成:WebSocket 保留 + 微信订阅消息绑定/授权/巡检触发;真实推送待 AppID/Secret/模板 ID)
三、环境监测 + LAMP 检测(规格书阶段二)
- 12. 天气数据接入与高发病天气预警规则(完成:和风天气 +
weather_alerts+ 定时评估;真实数据待QWEATHER_API_KEY/LOCATION) - 13. 饲养阶段风险提示(完成:
/knowledge/stage-hints+ 小程序选择器) - 14. LAMP 检测管理(完成:任务单/5 步流程/照片/结果录入;AI 辅助判读待模型)
- 15. 交叉验证(完成:一致→确认诊断,不一致→建议会诊)
- 16. 耗材管理(完成:库存/低库存/临期预警/采购建议)
- 17. 技术员 Web 后台(完成:检测任务/耗材/巡检复查)
四、专家诊断 + 多检测方式 + 疫病溯源(规格书阶段三)
- 18. 专家会诊(完成:病例快照/意见/防控方案/归档;在线会诊为表单版,实时音视频未做)
- 19. qPCR/SERS/高光谱接入(完成:Ct 自动判读、SERS 光谱 + 光谱库、高光谱预留)
- 20. 多检测方式推荐引擎(完成:设备/紧急/操作者/成本偏好加权)
- 21. 疫病溯源(完成:三级溯源;区域关联 v1 用同房间历史)
- 22. 区域发病热力图(完成统计图表版(柱状/饼图);GeoJSON 乡镇/县级地图后续按需接入)
- 23. 摄像头流 AI 巡检(骨架完成:
/stream-detect拉流抽帧检测;正式巡检编排二期,需摄像头视角数据)
五、数据分析与运维
- 24. 蚕房健康画像、防控效果评估、年度发病规律(健康画像与年度规律完成;防控效果评估 P2 未做)
- 25. 时序存储决策:MVP 沿用 IoTDB(现状);TDengine 作为生产规模化候选,在出现聚合报表/性能瓶颈或上云规划时先做基准测试再定(2026-08-13 决策)
- 26. AI 服务部署与 GPU 监控(骨架完成:
/metrics含 nvidia-smi,开发服务器可读到 940MX;生产 T4 接入时复用) - 27. 测试基建(完成:Go 各模块单测 + Web Vitest +
npm test)
依赖关系
数据/环境(1-4) → AI 服务(5) → 拍照巡检(6-11) [阶段一]
↓
环境+LAMP(12-17) → 专家会诊(18) → 疫病溯源(21) [阶段二→三]
↓
摄像头流巡检(23) + 数据分析(24) [阶段三→四]
待决策事项
- 时序数据库:MVP 沿用 IoTDB;TDengine 留作生产规模化候选(基准测试后再定)
- 数据集病种扩展:由二分类(healthy/sick)扩展为 7 类病种标注(影响 AI 巡检与溯源联动)
- AI 服务部署形态:已定——云 GPU 主机(T4 16G),容器化部署
- 对象存储:已定——云 OSS/COS,替代 Ceph