# SATRIA：基于微服务架构的水产养殖水质预警系统

> 一个使用FastAPI、MLflow、React和Docker构建的机器学习水质预警系统，采用微服务架构实现水质分类预测与实时监控。

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-06-09T11:16:03.000Z
- 最近活动: 2026-06-09T11:22:05.988Z
- 热度: 154.9
- 关键词: machine learning, aquaculture, water quality, microservices, FastAPI, MLflow, React, Supabase, early warning system, MLOps
- 页面链接: https://www.zingnex.cn/forum/thread/satria
- Canonical: https://www.zingnex.cn/forum/thread/satria
- Markdown 来源: ingested_event

---

## 原作者与来源

- 原作者/维护者：SoviaLearner
- 来源平台：github
- 原始标题：satria-water-quality-ews
- 原始链接：https://github.com/SoviaLearner/satria-water-quality-ews
- 来源发布时间/更新时间：2026-06-09T11:16:03Z

## 原作者与来源\n\n- **原作者/维护者**: SoviaLearner\n- **来源平台**: GitHub\n- **原始标题**: satria-water-quality-ews\n- **原始链接**: https://github.com/SoviaLearner/satria-water-quality-ews\n- **发布时间**: 2026年6月9日\n\n## 项目背景与意义\n\n水产养殖业是全球食品供应链的重要组成部分，而水质管理直接关系到养殖效益和生态安全。传统的水质监测依赖人工采样和实验室分析，存在时效性差、成本高昂、难以实现大规模实时监控等问题。随着物联网传感器和机器学习技术的发展，构建自动化、智能化的水质预警系统成为可能。\n\nSATRIA项目应运而生，它是一个专门针对水产养殖场景设计的早期预警系统（Early Warning System），通过机器学习模型对水质参数进行实时分类预测，帮助养殖者及时发现问题并采取应对措施，从而降低养殖风险、提高产量。\n\n## 系统架构设计\n\nSATRIA采用现代化的微服务架构，将系统拆分为四个核心服务模块，每个模块独立部署、独立扩展，通过API Gateway统一对外提供服务。\n\n### API Gateway（端口8000）\n\nAPI Gateway是整个系统的单一入口点，负责接收前端应用的所有请求。它采用JWT令牌进行身份验证，使用Supabase的非对称密钥方案确保安全性。验证通过后，Gateway根据请求路径将流量路由到相应的后端服务（ML服务或数据服务），实现了请求的统一管理和负载分发。\n\n### 机器学习服务（端口8001）\n\n这是系统的核心预测引擎，基于FastAPI构建。服务内置了完整的MLOps流程，使用MLflow进行模型版本管理、超参数调优和训练跟踪。模型训练完成后被打包为`.pkl`文件，以"离线烘焙"的方式部署，确保推理延迟接近于零。这种设计使得模型更新和推理服务可以独立进行，互不影响。\n\n### 数据服务（端口8002）\n\n数据服务作为数据库的"守门人"，直接与Supabase PostgreSQL交互。它封装了所有数据操作逻辑，包括用户档案的CRUD操作、预测历史记录、以及探索性数据分析（EDA）的数据聚合。通过服务角色权限控制，确保数据访问的安全性，同时避免前端直接操作数据库带来的风险。\n\n### 前端仪表板（端口5173）\n\n前端基于React和Vite构建，使用TypeScript提供类型安全。界面提供实时水质指标监控、历史数据可视化、手动预测输入、以及完整的用户认证流程。图表组件采用原生SVG/CSS实现，轻量且可定制。\n\n## 技术栈详解\n\n### 前端技术选型\n\n- **Vite**: 现代化的构建工具，提供极速的开发体验和优化的生产构建\n- **React + TypeScript**: 组件化开发配合静态类型检查，提高代码质量和可维护性\n- **Supabase JS Client**: 与后端Auth和数据库的无缝集成\n- **原生HTML/CSS渲染**: 避免重量级UI框架，保持应用轻量\n- **SVG/CSS图表组件**: 自定义可视化方案，灵活控制图表样式和交互\n\n### 后端技术选型\n\n- **FastAPI + Uvicorn**: 高性能异步Web框架，自动生成OpenAPI文档\n- **HTTPX**: 用于微服务间通信的异步HTTP客户端\n- **Pydantic**: 数据验证和序列化，确保API输入输出的类型安全\n- **Pandas**: 数据处理和分析的核心工具\n- **LightGBM + Scikit-learn**: 梯度提升决策树算法，适合处理表格型水质数据\n- **MLflow**: 机器学习生命周期管理平台，跟踪实验、注册模型\n\n### 数据库与认证\n\n- **Supabase Auth**: 基于ECC P-256的JWT认证，支持多种登录方式\n- **Supabase PostgreSQL**: 托管的关系型数据库，内置行级安全策略（RLS）\n- **数据表设计**: `profiles`（用户档案）、`prediction_results`（预测结果）、`water_quality_clean`（水质数据）\n\n## 数据集与预测模型\n\n### 数据集概况\n\n项目使用Kaggle上的"Refined Aquaculture Water Suitability Signals"数据集，包含4300条记录和17个特征列。该数据集专门针对水产养殖场景，涵盖了影响水质的各类关键指标。\n\n### 输入特征参数\n\n模型接收以下13个水质参数作为输入：\n\n- **基础物理指标**: 温度（Temperature）、浊度（Turbidity）\n- **溶解气体**: 溶解氧（Dissolved Oxygen）、生化需氧量（Biochemical Oxygen Demand）、二氧化碳（Carbon Dioxide）\n- **化学指标**: pH值、总碱度（Total Alkalinity）、总硬度（Total Hardness）、钙（Calcium）\n- **营养物质**: 氨氮（Ammonia）、硝酸盐（Nitrate）、磷酸盐（Phosphate）\n- **其他**: 硫化氢（Hydrogen Sulfide）、浮游生物计数（Plankton Count）\n\n### 预测输出\n\n模型输出包括：\n- `predicted_class_id`: 预测的水质类别ID\n- `predicted_suitability_tier`: 适宜性等级（如"适宜"、"临界"、"不适宜"）\n- 各类别的概率分布，支持决策置信度评估\n\n## 部署方案\n\n### 本地开发\n\n项目提供了`run.bat`脚本，支持一键启动所有微服务。开发者也可以选择使用Docker Compose在本地构建完整的技术栈，确保开发环境与生产环境的一致性。\n\n### Vercel部署\n\n前端配置了`vercel.json`，可以直接从Git仓库部署到Vercel平台。需要配置的环境变量包括Supabase连接信息和后端API地址。\n\n### 生产环境检查清单\n\n项目在`docs/DEPLOYMENT_CHECKLIST.md`中提供了详细的生产部署检查项，涵盖用户认证测试、预测功能验证、仪表板数据可视化检查、API健康状态监控等关键环节。\n\n## 项目特色与创新点\n\n1. **微服务架构**: 从单体应用演进而来，提高了系统的可维护性和可扩展性\n2. **MLOps集成**: 完整的机器学习工程化实践，包括模型版本管理、超参数优化、A/B测试支持\n3. **零延迟推理**: 预训练模型离线打包，推理时无需实时计算\n4. **实时数据分析**: 内置EDA功能，支持分布分析和异常值检测\n5. **安全设计**: 多层权限控制，从JWT认证到行级安全策略\n\n## 应用场景与价值\n\nSATRIA系统可广泛应用于：\n\n- **淡水养殖场**: 对虾、鱼类等高密度养殖的水质监控\n- **海水养殖区**: 贝类、藻类等对水质敏感的物种养殖\n- **水产科研**: 水质变化规律研究和模型验证\n- **环境监测**: 养殖区周边水体的生态健康评估\n\n通过提前预警水质恶化趋势，系统可以帮助养殖者及时调整增氧、换水、投喂等操作，减少因水质问题导致的养殖损失，实现经济效益和环境效益的双赢。\n\n## 总结\n\nSATRIA项目展示了如何将现代软件工程最佳实践（微服务、MLOps、DevOps）应用于传统农业领域的实际问题。它不仅是一个技术演示，更是一个具备实际应用价值的解决方案原型。对于希望学习全栈开发、机器学习工程化、或者关注智慧农业技术的开发者来说，这是一个值得深入研究的优质开源项目。
