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, 任务调度, 可视化大屏, 应急管理, 灾害响应, 自动化攻击, 请求拦截, 逆向工具