TechTonicShift/CityGuardAI

GitHub: TechTonicShift/CityGuardAI

一个集成了3D数字孪生、AI事件分析和自主响应工作流的智慧城市运营仪表板原型系统。

Stars: 0 | Forks: 0

# 🏙️ CityGuardAI ### 自主自愈型智慧城市运营仪表板 **见证一座城市在众目睽睽之下检测、解释并修复基础设施问题。** [![Node.js](https://img.shields.io/badge/Node.js-18+-339933?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/) [![MapLibre GL](https://img.shields.io/badge/MapLibre_GL-JS-396CB2?style=for-the-badge&logo=maplibre&logoColor=white)](https://maplibre.org/) [![Ollama](https://img.shields.io/badge/Ollama-AI_Copilot-000000?style=for-the-badge&logo=ollama&logoColor=white)](https://ollama.com/) [![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)
*一个零依赖的全栈原型,模拟了一个未来的城市街区,传感器在此检测问题,AI 进行解释,自主机器人进行修复——所有这些都可在实时的数字孪生中看到。*
## 📸 演示 ### 英雄仪表板 — 高管视图 ![Hero Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/266dc6bc1e010236.png) ### 实时数字孪生 — 交互式 3D 地图 ![Live Map with Active Incident](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0d4b0e58af010238.png) ### AI Copilot — 可解释性层 ![AI Copilot Explanation](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/cf8bf7957c010241.png) ### 运营视图 — 响应队列、自主任务与机队 ![Operations View](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e58e614ef8010244.png) ### 事件历史与解决动态 ![Response Queue History](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/14106fb233010246.png) ## ✨ 功能 ### 🧠 AI 驱动的智能 | 功能 | 描述 | |---------|-------------| | **AI Copilot** | 由 Ollama 驱动的自然语言解释,针对每个事件——为何重要、该做什么以及接下来会发生什么 | | **事件分析** | 结构化的 JSON 简报,包含置信度分数、修复步骤和利益相关者更新 | | **城市简报** | 高管级别的城市态势摘要、主要风险及建议的下一步行动 | | **可解释性** | 每一个自主决策都是可追溯且能用通俗易懂的英语解释的 | ### 🗺️ 实时数字孪生 | 功能 | 描述 | |---------|-------------| | **3D 等轴测视图地图** | MapLibre GL 将建筑物、道路、管道、区域和仓库渲染为一个生动的城市模型 | | **实时事件** | 带有严重程度编码光晕的脉动标记显示活跃的问题 | | **维修路线** | 动画路线显示无人机的飞行路径和地面机器人的导航 | | **资产追踪** | 地图上所有自主资产的实时位置 | ### 🤖 自主响应引擎 | 功能 | 描述 | |---------|-------------| | **自动调度** | AI 根据能力将最合适的可用机器人/无人机匹配给每个事件 | | **任务生命周期** | 全周期:检测 → 调度 → 进行中 → 修复 → 验证 → 已解决 | | **机队管理** | 电池监控、充电周期和基于能力的分配 | | **传感器网络** | 跨越水务、道路、空气质量和洪水类别的健康追踪传感器 | ### 🎛️ 多视图仪表板 | 视图 | 受众 | 展示内容 | |------|----------|-------| | **高管** | 市长、投资者 | 城市健康、KPI、实时动态、证据时间线 | | **运营** | 城市运营商 | 事件队列、任务、机队和场景构建器 | | **市民** | 公众 | 关于其社区正在发生的事情的通俗语言通告 | ## 🏗️ 架构 ``` ┌─────────────────────────────────────────────────────────┐ │ Browser (Frontend) │ │ ┌──────────┐ ┌───────────┐ ┌───────────────────────┐ │ │ │ app.js │ │ styles.css│ │ MapLibre GL (vendor) │ │ │ │ SSE ←────│──│───────────│──│── Map Rendering │ │ │ │ UI Logic │ │ Dark Theme│ │ 3D Buildings │ │ │ └────┬─────┘ └───────────┘ │ Route Animation │ │ │ │ └───────────────────────┘ │ └───────│─────────────────────────────────────────────────┘ │ HTTP + SSE ┌───────▼─────────────────────────────────────────────────┐ │ server.js (Backend) │ │ ┌──────────────┐ ┌─────────────┐ ┌────────────────┐ │ │ │ Incident │ │ Mission │ │ city-layout.js │ │ │ │ Engine │ │ Lifecycle │ │ GeoJSON Gen │ │ │ ├──────────────┤ ├─────────────┤ ├────────────────┤ │ │ │ Auto-Dispatch│ │ Fleet Mgmt │ │ Route Planning │ │ │ ├──────────────┤ ├─────────────┤ ├────────────────┤ │ │ │ Sensor Sim │ │ SSE Stream │ │ Map Payload │ │ │ └──────┬───────┘ └─────────────┘ └────────────────┘ │ │ │ │ │ ┌──────▼───────┐ ┌─────────────────────────────────┐ │ │ │ data/ │ │ Ollama AI Integration │ │ │ │ store.json │ │ Incident Analysis + City Briefs │ │ │ │ seed.json │ │ Structured JSON Output │ │ │ └──────────────┘ └─────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ ``` ## 🚀 快速开始 ### 前置条件 - [Node.js](https://nodejs.org/) v18 或更高版本 - [Ollama](https://ollama.com/) (可选 — 用于 AI Copilot 功能) ### 安装 ``` # 克隆 repository git clone https://github.com/TechTonicShift/CityGuardAI.git cd CityGuardAI # 启动 server(零依赖——无需 npm install!) npm start ``` 仪表板将可通过 **http://localhost:3000** 访问 ### 启用 AI Copilot (可选) ``` # 安装并启动 Ollama ollama serve # Pull 推荐的 model ollama pull qwen3-coder:480b-cloud # Server 自动连接到位于 http://127.0.0.1:11434/api 的 Ollama ``` 对于云端托管的 Ollama 端点: ``` OLLAMA_BASE_URL=https://your-ollama-endpoint.com/api \ OLLAMA_API_KEY=your-api-key \ npm start ``` ### 重置演示数据 ``` npm run reset ``` ## 🎮 使用指南 ### 1. **运行演示场景** 点击 **"Run Demo Scenario"** 按钮注入随机的基础设施事件(水管泄漏、道路断裂、空气污染或洪水风险)。系统将: - 通过传感器网络检测异常 - 使用 AI 分类严重程度和类别 - 在数字孪生地图上显示 - 自动调度最匹配的机器人或无人机(如果自动响应开启) ### 2. **探索视图** 使用顶部的模式标签在 **Executive (高管)**、**Operations (运营)** 和 **Citizen (市民)** 视图之间切换。 ### 3. **与事件交互** 点击地图或队列中的任何事件标记以查看: - 完整的事件详情和 AI 评估 - 置信度分数和预测影响 - 带有时间戳操作的工作日志 ### 4. **使用 AI Copilot** - **"Explain Selected Incident"** — 获取详细的 AI 分析,解释系统为何选择特定的响应 - **"Generate City Brief"** — 获取整个城市当前状态的高管级摘要 ### 5. **构建自定义场景** 在运营视图中,使用 **Scenario Builder** 表单创建具有特定类别、严重程度和描述的自定义事件。 ## 📁 项目结构 ``` CityGuardAI/ ├── index.html # Dashboard UI — hero, map, sidebars, operations panels ├── styles.css # Full stylesheet — dark theme, responsive, view modes ├── app.js # Frontend logic — map rendering, SSE, AI copilot, UI state ├── server.js # Backend — HTTP server, incident engine, missions, AI integration ├── city-layout.js # GeoJSON generator — buildings, roads, pipes, zones, routes ├── reset-data.js # Utility to reset store.json back to seed state ├── package.json # Project manifest (zero external dependencies) ├── data/ │ ├── seed.json # Initial city state — sensors, assets, incidents │ └── store.json # Runtime state (auto-managed by server) ├── vendor/ │ ├── maplibre-gl.js # MapLibre GL JS (vendored for zero-dependency setup) │ └── maplibre-gl.css # MapLibre GL styles └── screenshots/ # Demo screenshots for documentation ``` ## 🔧 技术亮点 | 方面 | 详情 | |--------|--------| | **零依赖** | 无需 `npm install` — 整个堆栈运行在 Node.js 内置模块 + 内置的 MapLibre 上 | | **Server-Sent Events** | 从服务器向所有连接的客户端实时流式更新 | | **GeoJSON 管道** | 程序化生成的城市几何结构——建筑物、道路、管道、区域——皆在代码中 | | **结构化 AI 输出** | Ollama 生成符合严格模式的 JSON 响应,以便可靠解析 | | **模拟引擎** | 基于时间片的模拟,包含电池消耗、传感器健康恢复和任务进展 | | **多视图架构** | 单个 HTML 页面通过 CSS 数据属性提供三种不同的体验 | | **有状态持久化** | 所有城市状态保存至 `store.json`,并在服务器重启后保留 | ## 🌐 API 端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/` | 提供仪表板服务 | | `GET` | `/api/overview` | 完整的城市状态快照 | | `GET` | `/api/stream` | 用于实时更新的 SSE 流 | | `POST` | `/api/incident` | 创建新事件 | | `POST` | `/api/simulate` | 运行随机演示场景 | | `POST` | `/api/dispatch/:id` | 调度资产至事件 | | `POST` | `/api/resolve/:id` | 将事件标记为已解决 | | `POST` | `/api/mode` | 切换自动治愈模式 | | `GET` | `/api/ai/status` | 检查 Ollama AI 可用性 | | `GET` | `/api/ai/incident/:id` | AI 对特定事件的分析 | | `GET` | `/api/ai/brief` | AI 生成的城市简报 | | `POST` | `/api/reset` | 重置为种子状态 | ## 🧪 演示场景类型 | 场景 | 类别 | 示例 | |----------|----------|---------| | 💧 **水管泄漏预测** | `water` | 管道应力模型预测公用电网附近的管壁快速疲劳 | | 🛣️ **道路断裂进展** | `roads` | 道路视觉和振动节点在一条过境车道上发现活跃裂缝 | | 🏭 **工业污染羽流** | `air` | 工业带的烟囱排放超过了周边空气基线 | | 🌊 **雨水渠溢流风险** | `flood` | 排水口声纳报告河流边缘滞留池附近流量急剧飙升 | ## 🤖 自主机队 | 资产 | 类型 | 能力 | |-------|------|-------------| | **PipeBot 11** | 地面机器人 | 密封夹具、内部爬行、压力验证 | | **Road Rover 07** | 地面机器人 | 表面扫描、沥青打印修复、交通锥部署 | | **Aerial Drone 03** | 无人机 | 检查、测绘、补丁投递 | | **AirSweep Unit 02** | 地面机器人 | 空气采样、中和、收容、压力分流 | ## 📄 许可证 本项目采用 MIT 许可证授权。
**Built with 🧠 AI + 🗺️ Maps + 🤖 Autonomous Systems** *CityGuardAI — 基础设施自愈之地。*
标签:3D可视化, AIOps, AI风险缓解, DLL 劫持, GNU通用公共许可证, HTTP/HTTPS抓包, LLM评估, MapLibre GL, MITM代理, Node.js, Ollama, 人工智能, 仪表盘, 城市基础设施管理, 大语言模型, 异常检测, 态势感知, 数字孪生, 数字孪生城市, 智慧城市, 智慧市政, 智能运维, 物联网, 用户模式Hook绕过, 自动驾驶, 自定义脚本, 自我修复, 运维自动化