diff --git a/AGENTS.md b/AGENTS.md index 5a7981d..8fc315b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,7 +19,7 @@ 4. `miniapp/` — 微信小程序(Taro 4 + React + TypeScript + Sass);`project.config.json` 的 `miniprogramRoot` 指向 `dist/`,该目录是 Taro 构建产物,不得手改。 5. `wvp/` — WVP-PRO + ZLMediaKit 视频平台(`docker-compose.yml` 包含 WVP、ZLMediaKit、MySQL、Redis),并含 `recorder-go`(Go 连续录制服务,默认 :9090)与 Dockerfile。 6. 根目录文档 — `README.md`、`部署指南(物理机).md`、`变更记录.md`、`故障排查处理记录.md`、`物联网设备接口和数据格式.md`、`后续工作计划.md`(规格书 V2.1 的工作清单与技术选型决策)等为项目说明、规划与部署运维依据。 -7. `ai-service/`(规划中)— Python FastAPI + ONNX Runtime AI 推理微服务(YOLO 蚕病检测、图像/光谱分析),生产部署于云 GPU 主机(NVIDIA T4 16G),与 Go 后端通过 HTTP/gRPC 通信;模型训练在本地 fnOS/P4 物理机完成。技术方向为「现有 Go 底座 + Python AI 微服务」混合架构,生产环境全部上云(业务云主机 + GPU 云主机 + 云对象存储),本地仅用于开发/训练/测试,详细规划见 `后续工作计划.md`。 +7. `ai-service/`(已建骨架,训练挂起期间 mock 模式)— Python FastAPI + ONNX Runtime AI 推理微服务(YOLO 蚕病检测、图像/光谱分析),生产部署于云 GPU 主机(NVIDIA T4 16G),与 Go 后端通过 HTTP 通信;模型训练在本地 fnOS/P4 物理机完成(当前物理机问题,训练挂起)。技术方向为「现有 Go 底座 + Python AI 微服务」混合架构,生产环境全部上云(业务云主机 + GPU 云主机 + 云对象存储),本地仅用于开发/训练/测试,详细规划见 `后续工作计划.md`。 生成文件及其来源命令: @@ -28,6 +28,51 @@ 3. `app/android/app/build/outputs/apk/release/app-release.apk` — 由 `cd android && gradlew assembleRelease` 生成。 4. `server-go/server-go-linux` — 由 `go build -o server-go-linux ./cmd/server` 交叉编译生成。 +## 已完成功能(截至 2026-08-13) + +按《后续工作计划》推进(YOLO 训练相关 #1-4 因物理机问题挂起)。详细设计、验证与回滚点见根目录 `变更记录.md`、`开发交接记录.md` 及服务器 `/home/pan/backups/rollback-20260812/README.md`。 + +### 阶段一:AI 巡检闭环(#5-#11) + +- `ai-service`:FastAPI + ONNX Runtime 骨架——`GET /health`、`POST /detect`(返回框/类别/置信度);默认 `MODEL_MODE=mock`,`ONNXDetector` 已实现 YOLOv8 后处理,训练恢复后放 `models/best.onnx` 即切真实推理(接口不变)。 +- Go 对接(#6):`inspection_records` 表;`POST/GET /api/v1/inspections`(图片→S3 `silk-images/inspections/`→AI→记录;`Idempotency-Key` 幂等);权限 `inspection:create/read`;配置 `AI_SERVICE_BASE`。 +- 蚕匾/批次/饲养记录(#7):`trays`/`batches`/`rearing_records` 三表 + CRUD;Web「批次管理」页(批次+蚕匾+饲养记录);小程序蚕房详情展示蚕匾与当前批次。 +- 拍照巡检(#8):小程序「拍照巡检」页——拍照→上传→AI 结果(类别/置信度/风险提示)→巡检历史。 +- 风险评分引擎(#9):`ComputeRiskScore`(0.5/0.2/0.15/0.15 权重)+ 分级(绿 0-30/黄 31-60/橙 61-80/红 81-100)+ 阶段/环境系数;巡检创建时自动评分落库。 +- 知识库(#10):蚕病百科(9 病种 + 「其它/未知」)、AI 风险分级解读、LAMP/SERS 教程、四季防控提醒、症状图谱图片上传(S3 `silk-images`,公开读);`knowledge:read/write` 权限;Web「知识库」页 + 小程序知识库(列表/详情/阶段风险提示)。 +- 微信订阅消息(#11,骨架):`wechat_bindings` 表 + `/wechat/binding|bind|subscribe`;巡检风险非绿异步触发;配置 `WECHAT_APPID/SECRET/TEMPLATE_*` 占位(待凭证联调真实推送)。 + +### 阶段二:环境监测 + LAMP(#12-#17) + +- 和风天气与高发病天气预警(#12):`weather_alerts` 表、`GET /weather/now`、`GET /weather/alerts`、30 分钟定时评估;规则取自规格书 3.2.3(白僵病/核型多角体病/软化病);配置 `QWEATHER_API_KEY/LOCATION` 占位。 +- 饲养阶段风险提示(#13):`GET /knowledge/stage-hints`(young/grown/late5/pupa)+ 小程序选择器。 +- LAMP 检测管理(#14):`lamp_tests`/`lamp_test_steps`(标准 5 步自动生成)+ 结果照片上传 + 结果录入;Web「分子检测」页 + 小程序录入。 +- 交叉验证(#15):LAMP 结果自动与同房间最近巡检比对(一致→确认诊断,不一致→建议会诊),`cross_status/cross_reason` 落库。 +- 耗材管理(#16):`consumables` 表 + CRUD + 低库存/临期预警 + 采购建议;Web「耗材管理」页。 +- 技术员 Web 后台(#17):「巡检记录」页(列表 + 详情抽屉,含 roomName 联查);检测任务处理/耗材在 #14/#16 已落地。 + +### 阶段三:专家诊断 + 多检测 + 溯源(#18-#22) + +- 专家会诊(#18):`consultations` 表 + 病例快照打包(房间/巡检/LAMP/批次/天气)+ 状态机(受理/出方案/归档)+ 专家意见/防控方案;Web「专家会诊」页。 +- 分子检测扩展(#19):检测任务支持 lamp/qpcr/sers/hyperspectral;qPCR Ct 自动判读(`judge-qpcr`,阈值可配);SERS 光谱上传(S3 `spectrum/`)+ `spectrum_entries` 光谱库;高光谱预留。 +- 多检测方式推荐引擎(#20):`GET /detection-methods/recommend`(设备/紧急/操作者/成本偏好加权);Web 新建任务弹窗内置推荐工具。 +- 疫病溯源(#21):`trace_records` 三级溯源——一级自动(环境回溯/历史关联/传播推断→初报)、二级分病种排查清单(→分析报告)、三级专家/实验室备注;Web「疫病溯源」页。 +- 区域发病统计(#22):`rooms.region` 字段 + `GET /trace-records/region-stats`(柱状图/饼图表达热力趋势;GeoJSON 地图后续按需接入)。 + +### 数据分析与运维(#24、#27) + +- 蚕房健康画像与年度发病规律(#24):`GET /health-profiles/:roomId`(健康分+评级)、`GET /trace-records/monthly-stats`;Web 蚕房「健康画像」抽屉 + 年度折线图。 +- 测试基建(#27):Web 引入 Vitest + jsdom(`npm test`),`utils/format.ts` 公共函数与首批单测;Go 各模块已有单测。 + +### 待办与外部依赖 + +- #23 摄像头流 AI 巡检:计划标注二期、需摄像头视角数据,暂缓。 +- #25 时序存储决策:沿用 IoTDB(现状)或引入 TDengine(待用户决策,不阻塞 MVP)。 +- #26 GPU 监控:依赖 GPU 主机 / P4 物理机恢复;开发环境 ai-service 以 mock 模式运行于开发服务器 :8000。 +- 微信订阅真实推送:需小程序 AppID/Secret 与订阅消息模板 ID。 +- 和风天气真实数据:需 `QWEATHER_API_KEY` 与位置。 +- YOLO 训练(#1-4):物理机问题修复后恢复(数据集修复→训练→`best.onnx` 接入 ai-service)。 + ## 编码规则 1. 遵循现有命名、分层、错误处理和格式化约定。