SVGnanavardhan/AI-Relief-Command-Center
GitHub: SVGnanavardhan/AI-Relief-Command-Center
一个基于FastAPI和React构建的AI驱动灾害应急响应指挥中心平台,覆盖从事件上报、AI智能分析、团队调度到任务跟踪的全流程。
Stars: 0 | Forks: 0
# AI 救灾指挥中心
AI 救灾指挥中心(AI Relief Command Center)是一个全栈应急行动平台,旨在模拟并支持现代灾害响应工作流。它结合了 FastAPI 后端、React + TypeScript 前端以及 AI 辅助的事件分析,帮助应急团队接收报告、对事件进行分类、分配团队、监控任务进度,并在一个完善的指挥中心体验中可视化正在进行的行动。
本项目旨在作为一个可直接演示的应急行动系统,适用于黑客松、利益相关者演示以及危机协调工作流的快速原型设计。
## 项目概述
该平台涵盖了从初始报告接收到最终行动解决的整个事件生命周期:
- 提交支持文本、图像和音频的事件报告
- 利用 AI 对传入事件进行分析,实现分类、紧急度评分和资源推荐
- 利用地理环境信息(如区县、州、地标和精度估算)丰富报告内容
- 将团队分配给事件并跟踪响应准备情况
- 通过生命周期的各个阶段更新事件状态,例如已报告、已分配、出勤中、救援已启动和已关闭
- 展示用于进行中行动和团队可用性的仪表板 KPI
- 在交互式地图上可视化事件
- 模拟灾害场景以进行现场演示
- 呈现救援通知、调度更新和活动流事件,以便于协调
## 应用功能
### 1. 事件接收
应用程序允许用户通过 Web 界面或后端 API 提交新的事件报告。每份报告可以包括:
- 描述
- 位置
- 可选的图片上传
- 可选的音频上传
- 自动 AI 分析结果
后端对事件进行处理并将其存储在数据库中,以供后续操作使用。
### 2. AI 辅助事件分析
每个提交的事件都会经过分析以提供操作背景信息,包括:
- 摘要文本
- 类别分类,例如医疗、救援、避难所、食物、火灾、洪水、道路或其他
- 紧急度评分
- 优先级标签
- 推荐资源
- 推理说明
- 置信度得分
如果 AI 服务不可用,系统将使用确定性的回退方案,确保应用仍能正常工作。
### 3. 操作仪表板
仪表板呈现了实时的指挥中心视图,包括:
- 事件总数
- 待处理事件数
- AI 已审核事件
- 已分配团队
- 出勤中团队
- 救援进行中的事件
- 已解决和已关闭的事件
- 已救援人数和等待救援人数
- 医疗请求、火灾紧急情况和洪水紧急情况
- 响应时间和救援时间指标
- 活跃、可用和繁忙的团队
- 任务成功率和资源使用情况
- 近期事件和趋势数据
- 通知和实时活动流
### 4. 团队协调与分配
平台支持响应团队管理,允许用户:
- 创建团队
- 存储团队属性,如成员、车辆、装备、可用性、预计到达时间 (ETA) 和运力
- 将团队分配给事件
- 为已分配的行动生成救援通知
- 通过事件工作流跟踪分配进度
### 5. 事件生命周期跟踪
每个事件都可以经历多个操作阶段。系统会存储生命周期历史记录并公开状态更新,以便用户可以审查:
- 报告创建
- AI 审核
- 分配
- 团队通知
- 调度进度
- 救援活动
- 完成与关闭
### 6. 交互式地图与可视化
前端包含一个交互式地图视图,帮助操作员了解事件集中在何处以及可能需要将资源部署到何处。它与仪表板和事件页面协同工作,提供空间感知能力。
### 7. 灾害模拟模式
该应用包含一个模拟引擎,可以为演示目的生成逼真的事件场景。这允许团队展示平台在现场紧急响应模拟期间的行为表现,包括调度、优先级升级和状态推进。
### 8. 通知与活动流
系统为已分配的救援工作提供操作通知,并跟踪活动流事件以提供态势感知。这些更新有助于创建更加真实的应急协调体验。
## 核心功能区域
### 事件接收与分析
- 通过 UI 和 API 提交报告
- 支持图像和音频
- AI 驱动的分类和优先级排序
- 当 Gemini 不可用时使用确定性回退方案
- 丰富的报告元数据,如位置上下文和置信度
### 指挥中心体验
- 带有 KPI 卡片的高管仪表板
- 按优先级和类别对事件进行搜索和筛选
- 带有生命周期进度的事件详情视图
- 用于团队分配的操作工作区
- 用于空间感知的交互式地图
- 活动流和通知面板
### 响应协调
- 团队创建与管理
- 将团队分配给事件
- 救援通知
- 状态更新和任务跟踪
- 用于衡量准备情况和完成情况的操作指标
### 模拟与演示功能
- 逼真的灾害场景生成
- 仪表板和地图状态的实时更新
- 易于演示的任务进度可视化
## 技术栈
### 后端
- Python 3.11+
- FastAPI
- SQLAlchemy ORM
- Pydantic models
- SQLite database (默认)
- Google Generative AI 集成
- 用于地理编码的 Geopy
### 前端
- React
- TypeScript
- Vite
- Tailwind CSS
- Recharts
- Leaflet
- Lucide React icons
## 项目结构
```
app/ # FastAPI backend, CRUD logic, schemas, services, and DB models
__init__.py
config.py
crud.py # Report, dashboard, team, notification, and simulation logic
database.py # SQLAlchemy models and schema initialization
main.py # API routes and application entrypoint
schemas.py # Request and response schemas
schemas_dashboard.py # Dashboard response schema
services/ # Gemini, geocoder, storage, and simulation helpers
frontend-main/ # React + TypeScript frontend application
src/ # App pages, components, hooks, api, types, and styles
tests/ # Backend regression tests
uploads/ # Local upload storage
Dockerfile # Container build definition
render.yaml # Render deployment configuration
requirements.txt # Python dependencies
```
## 后端 API 概述
后端公开了以下 API 路由:
- POST /api/report - 创建新的事件报告
- GET /api/reports - 列出所有报告
- GET /api/reports/{report_id} - 获取单个报告
- POST /api/reports/{report_id}/assign-team/{team_id} - 将团队分配给事件
- POST /api/reports/{report_id}/status - 更新事件状态
- GET /api/reports/{report_id}/history - 检索事件状态历史记录
- GET /api/dashboard - 获取仪表板 KPI 和事件摘要
- GET /api/operations - 获取包含事件、团队、库存和通知的操作负载数据
- GET /api/teams - 列出响应团队
- POST /api/teams - 创建团队
- GET /api/notifications - 列出救援通知
- POST /api/notifications - 创建救援通知
- POST /api/inventory - 添加库存物品
## 前端页面与体验
前端包含了针对不同操作用例的几个页面:
- 仪表板 - 概览实时事件、任务指标、警报和响应状态
- 提交报告 - 用于创建新事件报告的接收表单
- 事件详情 - 审查事件数据、分配历史、状态进展和操作背景
- 操作 - 调度和团队分配工作区
- 优先级队列 - 审查已划分优先级的事件
- 交互式地图 - 基于地图的事件可视化
- 未找到 - 针对无效路由的回退页面
## 项目访问
该应用程序旨在通过其 Web 界面和 API 端点使用。后端提供交互式 API 文档,前端通过浏览器提供完整的应急操作体验。
## 环境变量
应用程序使用以下环境变量:
| 变量 | 是否必需 | 描述 |
| --- | --- | --- |
| GEMINI_API_KEY | 否 | 用于基于 Gemini 的 AI 分析的 API key。如果未提供,应用将使用回退分析路径。 |
| CORS_ORIGINS | 否 | 逗号分隔的允许的前端来源。 |
| DATABASE_URL | 否 | 可选的数据库 URL。默认为 sqlite:///./reports.db。 |
## 典型用户工作流
应用程序中的典型流程如下:
1. 用户通过 UI 或 API 提交新的事件报告。
2. 后端对位置进行地理编码并运行 AI 分析。
3. 事件及其类别、优先级和紧急度详情出现在仪表板中。
4. 从操作工作区分配响应团队。
5. 状态更新推动事件贯穿其生命周期。
6. 仪表板和地图进行更新以反映正在进行的操作。
7. 可以使用模拟模式来演示逼真的紧急响应场景。
## 测试与质量
该项目包含自动化的后端回归测试和前端构建流水线,以帮助保持体验的可靠性。
## 部署
该项目提供了以下部署支持:
- 通过包含的 Dockerfile 支持 Docker
- 通过 render.yaml 支持 Render
## 贡献
欢迎贡献。请查阅 [CONTRIBUTING.md](CONTRIBUTING.md) 以获取开发指南和工作流规范。
## 许可证
本项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。
标签:AI辅助分析, AV绕过, FastAPI, React, Syscalls, 任务调度, 可视化大屏, 应急管理, 灾害响应, 自动化攻击, 请求拦截, 逆向工具