Files
silk/后续工作计划.md
T

109 lines
9.4 KiB
Markdown
Raw 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.
# 后续工作计划
> **完成状态(2026-08-14 更新)**#5-#24、#27 已完成,Task 0/1/2/4/5/6/8/9/10/11/12/13 整改代码完成(详见 `开发交接记录.md`);#1-4 因物理机问题挂起;#23/#26 骨架完成;Task 3/7 延后到最后处理;微信/天气真实数据待凭证。
## 整改实施计划 Wave 0-42026-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 建立规格追踪、端到端验收与发布门禁 | 未开始 | 无 |
## 技术选型决策(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、DockerWVP/ZLM/MySQL/Redis)、recorder-go、前端 |
| GPU 云主机 | NVIDIA T4 16G8 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 + PyTorchcu121/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