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, 医疗物流, 医疗物资运输, 实时数据大屏, 异常检测, 机器学习, 温度预测, 物联网仪表盘, 血液运输, 访问控制, 语音警报, 车队管理, 远程信息处理, 逆向工具