sujalmakwana200/Frostgaurd-AI-Final-Repo-Team-Red-Dragon

GitHub: sujalmakwana200/Frostgaurd-AI-Final-Repo-Team-Red-Dragon

基于 Streamlit 和机器学习构建的实时冷链物流监控仪表板,用于追踪医疗车队状态、预测温度异常并提供智能重路由建议。

Stars: 0 | Forks: 0

# FrostGuard AI - 冷链指挥中心 FrostGuard AI 是一个用于实时冷链车队监控的 Streamlit 仪表板。它追踪医疗货运卡车,预测温度风险,展示 KNN 重路由决策,并在每次告警事件中播报一次语音警报。 ## 当前状态 该项目在本地演示和提交时表现稳定,使用: ``` streamlit run main_dashboard.py ``` `main_dashboard.py` 仍然是入口点。如果本地的 Flask 桥接处于离线状态,仪表板会自动启动它,因此用户无需手动运行 `Bridge.py`。 ## 主要功能 - 黑色 FrostGuard 仪表板主题,带有蓝色调的车队详情卡片。 - 实时 Streamlit 片段,取代了阻塞式刷新循环。 - 从 `config/frostguard_config.json` 加载 13 辆卡车。 - 多条城市路线,包括古吉拉特本地路线和长途路线。 - 公路风格的车队进度条,带有小型卡车标记。 - 每张卡车卡片中显示真实的医疗 IoT 数据集字段: - 袋子 ID (bag ID) - 产品类型 - 血液类型 - 医院路线 - 实时温度 - 温度范围 - 湿度 - 处理压力 - 健康指数 - 违规概率 - 预测温度 - 使用 `frostguard_knn.joblib` 提供 KNN 重路由支持。 - 通过 `frost_ml.py` 提供 ML 洞察支持。 - 语音警报在可用时优先使用女性英语浏览器语音。 - 语音警报在每次卡车/状态警报事件中仅播报一次。 - 通过环境变量可选同步 Supabase。 ## 架构 ``` streamlit run main_dashboard.py | v main_dashboard.py | |-- auto-starts Bridge.py if /health is offline |-- reads live fleet from /fleet and /latest |-- renders Streamlit dashboard fragments |-- shows map, metrics, alerts, truck cards, charts | v Bridge.py | |-- GET /health |-- GET /fleet |-- GET /latest |-- POST /telemetry |-- GET /ml_insight |-- GET /predictions |-- GET /summary |-- POST /command |-- POST /reset | v frost_ml.py + knn_adapter.py + model artifacts | v local CSV/data storage and optional Supabase sync ``` ## 项目目录树 ``` frostgaurd_final_v2/ |-- main_dashboard.py |-- Bridge.py |-- api.py |-- frost_ml.py |-- knn_adapter.py |-- config.py |-- requirements.txt |-- README.md |-- frostguard_knn.joblib |-- frostguard_ml.joblib |-- frostguard_ml.pkl |-- config/ | `-- frostguard_config.json |-- data/ | `-- healthcare_iot_target_dataset.csv |-- logs/ | |-- bridge_stdout.log | `-- bridge_stderr.log `-- __pycache__/ ``` ## 本地设置 创建并激活虚拟环境: ``` python -m venv .venv .venv\Scripts\activate ``` 安装依赖: ``` pip install -r requirements.txt ``` 运行仪表板: ``` streamlit run main_dashboard.py ``` 打开 Streamlit 打印的 URL,通常为: ``` http://localhost:8501 ``` ## 部署说明 为了部署,请将以下文件保留在部署项目中: - `main_dashboard.py` - `Bridge.py` - `frost_ml.py` - `knn_adapter.py` - `requirements.txt` - `config/frostguard_config.json` - `data/healthcare_iot_target_dataset.csv` - `frostguard_knn.joblib` - `frostguard_ml.joblib` 或 `frostguard_ml.pkl` 本地 OneDrive 路径仅作为备用路径。该项目现在也在本地包含了配置文件和医疗数据集,因此部署不应依赖于您的计算机路径。 推荐的启动命令: ``` streamlit run main_dashboard.py ``` 仪表板将自动启动桥接。如果桥接不可用,仪表板应继续使用备用数据进行渲染,而不是崩溃。 ## 可选的云环境变量 Supabase 是可选的。应用程序在没有它的情况下也可以在本地运行。 ``` SUPABASE_URL=your_supabase_project_url SUPABASE_SERVICE_ROLE_KEY=your_service_role_key ``` 备用键名: ``` SUPABASE_KEY=your_supabase_key ``` 可选的数据集覆盖: ``` DATASET_PATH=data/healthcare_iot_target_dataset.csv ``` 可选的车队日志路径: ``` FLEET_CSV=fleet_logs.csv ``` ## 验证 编译检查: ``` python -m py_compile main_dashboard.py Bridge.py frost_ml.py knn_adapter.py config.py ``` 桥接冒烟测试: ``` python -c "import Bridge; fleet=Bridge._simulate_fleet(); print(len(fleet), fleet[0]['truck_id'])" ``` 预期结果: ``` 13 TRK-RD-001 ``` ## 提交演示流程 1. 运行 `streamlit run main_dashboard.py`。 2. 确认桥接自动连接。 3. 使用卡车选择器在卡车之间进行切换。 4. 向下滚动到地图下方以显示蓝色车队详情卡片。 5. 按下 `Inject Failure` 以演示警告或严重状态行为。 6. 在卡车卡片中显示 KNN 重路由文本。 7. 确认语音警报仅播报一次,而不是每次仪表板更新时都播报。
标签:Apex, Flask, FrostGuard, GPS追踪, IoT数据集, KNN重路由, Kubernetes, Streamlit, Supabase, 冷链监控, 医疗保健IoT, 医疗物流, 医疗物资运输, 实时数据大屏, 异常检测, 机器学习, 温度预测, 物联网仪表盘, 血液运输, 访问控制, 语音警报, 车队管理, 远程信息处理, 逆向工具