tanaysingh0312/SkyWatch-AI-Drone-Threat-Intelligence-System

GitHub: tanaysingh0312/SkyWatch-AI-Drone-Threat-Intelligence-System

一个基于AI视觉与智能体推理的实时无人机安全监控系统,将被动录像升级为主动威胁识别与分析。

Stars: 1 | Forks: 0

# SkyWatch-AI — 实时无人机威胁智能系统
![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=for-the-badge&logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688?style=for-the-badge&logo=fastapi&logoColor=white) ![React](https://img.shields.io/badge/React-18-61DAFB?style=for-the-badge&logo=react&logoColor=black) ![LangChain](https://img.shields.io/badge/LangChain-0.3-1C3C3C?style=for-the-badge&logo=chainlink&logoColor=white) ![ChromaDB](https://img.shields.io/badge/ChromaDB-0.5-FF6B35?style=for-the-badge) ![Ollama](https://img.shields.io/badge/Ollama-LLaVA--7B-black?style=for-the-badge) **一个AI驱动的实时无人机监控系统,集成了视觉语言模型、语义帧索引、确定性告警和智能体安全推理。** [功能特性](#-features) • [系统架构](#-architecture) • [快速开始](#-quick-start) • [演示](#-demo) • [技术栈](#-tech-stack) • [测试](#-testing)
## 🔍 什么是 SkyWatch AI? SkyWatch AI 是一个生产级自主无人机安全分析原型。它用一个主动式AI管线取代了被动的CCTV系统: - 👁️ **观察** — 通过 LLaVA-7B(视觉语言模型)处理无人机视频帧,生成自然语言描述 - 🧠 **推理** — LangChain ReAct 智能体分析模式、交叉引用历史记录,并确定威胁等级 - ⚡ **告警** — 确定性规则引擎无需等待LLM延迟即可触发即时告警(CRITICAL → LOW) - 🗃️ **记忆** — 每个帧都在 ChromaDB 中建立语义索引,支持自然语言查询 - 📡 **传输** — FastAPI WebSocket 服务器将实时事件推送到 React 仪表盘 ## 🚀 快速开始 **1. 仪表盘 — 带有 LLaVA-7B 实时帧分析的实时画面** Screenshot 2026-05-14 140038 **2. 事件历史 — 带有威胁分类的安全事件日志** Screenshot 2026-05-14 140155 **3. 分析面板 — 威胁时间线、告警分布和会话指标** Screenshot 2026-05-14 140230 **4. 问答智能体 — 自然语言监控历史查询界面** Screenshot 2026-05-14 140456 ## ✨ 功能特性 - 🎥 **实时帧处理** — 以可配置的速率处理模拟无人机摄像头画面 - 🤖 **VLM感知层** — LLaVA-7B 将视觉帧转换为结构化的安全观测 - 🚨 **8条确定性告警规则** — 从 `NONE` → `LOW` → `MEDIUM` → `HIGH` → `CRITICAL` 的即时分类 - 🧩 **LangChain ReAct 智能体** — 4个自定义工具用于模式检测、历史搜索和事件记录 - 🗂️ **语义帧索引** — ChromaDB 将每个帧与丰富的元数据存储为向量,支持语义搜索 - 💬 **自然语言问答** — 询问“今天在主入口看到了什么车辆?”并获得带引用的答案 - 📊 **分析仪表盘** — 威胁时间线、目标频率图表、告警分布仪表盘 - ⚡ **WebSocket实时信息流** — 从后端到React UI的亚秒级事件流 - 🧪 **18个Pytest用例** — 完整的测试套件,可通过文本回退模式无需GPU运行 ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 7-LAYER PIPELINE │ │ │ │ 1. SIMULATOR ──► 2. VLM (LLaVA) ──► 3. CHROMADB INDEX │ │ │ │ │ 7. REACT UI ◄── 6. FASTAPI/WS ◄── 5. LANGCHAIN AGENT │ │ │ │ │ 4. ALERT ENGINE (Rule-Based) │ └─────────────────────────────────────────────────────────────────┘ ``` | 层级 | 组件 | 角色 | |---|---|---| | 模拟器 | `backend/simulator.py` | 以可配置的时间间隔发射模拟遥测数据和帧描述 | | VLM | Ollama LLaVA-7B | 将帧转换为结构化的自然语言观测 | | 索引 | ChromaDB | 将每个帧作为向量存储,并附带用于语义搜索的遥测元数据 | | 告警引擎 | `backend/alert_engine.py` | 8条确定性规则,即时产生 NONE → CRITICAL 告警 | | 智能体 | LangChain ReAct + Qwen3:8b | 慢速路径推理,使用4个自定义工具进行模式检测 | | API | FastAPI + WebSocket | 将实时事件流式传输到UI;暴露REST端点用于历史记录和问答 | | UI | React + Vite | 实时画面、告警面板、事件日志、分析和AI问答界面 | ### 设计决策 - **解耦的快速/慢速路径** — 规则引擎提供即时的确定性告警,而LLM智能体异步执行更深入的模式分析,避免关键事件的延迟。 - **可替换的VLM层** — LLaVA 可以被 Claude Vision 或 GPT-4V 替换,而无需触及索引或推理层。 - **完全可审计性** — 每个帧都存储在 ChromaDB 中,使得整个会话历史可搜索和审计。 ### 前置条件 **1. Ollama** — 从 [ollama.com](https://ollama.com) 安装,然后拉取模型: ``` ollama pull llava ollama pull qwen3:8b ``` **2. Python 3.10+** **3. Node.js 18+** ### 安装 ``` # 克隆 repo git clone https://github.com/tanaysingh0312/SkyWatch-AI-Drone-Threat-Intelligence-System.git cd sentinel-ai-drone-security # 复制环境配置 cp .env.example .env ``` ### 后端 ``` pip install -r requirements.txt python -m uvicorn backend.main:app --reload # → http://localhost:8000 ``` ### 前端 ``` cd frontend npm install npm run dev # → http://localhost:5173 ``` ### 一键启动(Windows) ``` start_drone_system.bat ``` 打开仪表盘 → 点击 **开始任务** → 模拟器开始发射帧,智能体开始实时处理。 ## 📂 项目结构 ``` sentinel-ai-drone-security/ ├── backend/ │ ├── main.py # FastAPI app, WebSocket server │ ├── agent.py # LangChain ReAct agent + 4 custom tools │ ├── alert_engine.py # 8 deterministic security rules │ ├── simulator.py # Synthetic telemetry + frame generator │ ├── indexer.py # ChromaDB ingestion pipeline │ └── qa.py # Q&A retrieval chain ├── frontend/ │ ├── src/ │ │ ├── components/ # LiveFeed, AlertPanel, EventLog, Analytics, QAAgent │ │ └── App.jsx │ └── package.json ├── tests/ │ └── test_*.py # 18 pytest cases ├── docs/ │ ├── architecture_diagram.png │ └── feature_spec.md ├── chroma_db/ # Persisted vector store (auto-created, gitignored) ├── events.jsonl # Sample simulated event data ├── requirements.txt ├── .env.example ├── start_drone_system.bat └── README.md ``` ## 🧪 测试 覆盖所有核心模块的18个pytest用例。在 `text_fallback` 模式下运行 — 无需GPU或Ollama。 ``` pytest tests/ -v ``` | 模块 | 测试用例 | |---|---| | 模拟器 | 帧生成、遥测发射、时间间隔 | | 告警引擎 | 全部8条规则(午夜触发、周边区域入侵、重复车辆) | | 索引器 | ChromaDB数据导入、元数据过滤、查询结果 | | 智能体工具 | 模式检测、事件记录、异常搜索 | | API端点 | REST路由、WebSocket握手、问答响应格式 | ## 🔍 示例输出 **帧观测 (LLaVA)** ``` [01:00:05Z | WAREHOUSE_ENTRANCE | Alt: 8.0m] A person in dark clothing is standing near the main gate. No visible ID. Loitering for over 3 minutes. ``` **安全告警** ``` [CRITICAL] Person loitering at main gate at midnight. — RULE_MIDNIGHT_MOTION [HIGH] Unknown vehicle — 3rd entry today. — RULE_REPEAT_VEHICLE [MEDIUM] Unexpected thermal signature detected. — RULE_THERMAL_ANOMALY ``` **问答智能体** ``` User: How many vehicles today? Agent: 9 vehicle events detected this session. Notable: frame_001 (Ford F150, 3 visits) and frame_006 (Delivery Van). Sources: frame_session001_001, frame_session001_006, frame_session001_086 ``` ## 📊 技术栈 | 类别 | 技术 | |---|---| | 后端 | Python 3.10+, FastAPI, Pydantic, Uvicorn | | AI / 推理 | LangChain ReAct, Ollama (LLaVA-7B, Qwen3:8b) | | 向量存储 | ChromaDB | | 前端 | React 18, Vite, Vanilla CSS, Lucide Icons, Recharts | | 测试 | Pytest (18个测试用例) | ## 🔮 未来改进 - **更高分辨率的VLM** — 用 LLaVA-34B 或 Claude Vision 替换 LLaVA-7B,以提高低光照准确性 - **持久化会话存储** — 从内存状态迁移到 PostgreSQL,支持多天会话回顾 - **视频摘要** — 在每次任务结束时自动生成值班报告 - **多无人机支持** — 扩展WebSocket层以支持带独立智能体实例的并发无人机画面 - **主动学习循环** — 将操作员对误报的反馈用于微调告警阈值 ## 📄 许可证 MIT 许可证 — 可自由使用、修改和分发。
## 👨‍💻 作者 ### Tanay Singh **AI/ML工程师 | B.Tech 计算机科学工程(AI/ML)— SPSU Udaipur** *使用 LangChain、FastAPI 和视觉语言模型构建生产级AI系统* [![GitHub](https://img.shields.io/badge/GitHub-tanaysingh0312-181717?style=for-the-badge&logo=github&logoColor=white)](https://github.com/tanaysingh0312) [![LinkedIn](https://img.shields.io/badge/LinkedIn-stanay657-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://linkedin.com/in/stanay657) [![Email](https://img.shields.io/badge/Email-stanay657@gmail.com-EA4335?style=for-the-badge&logo=gmail&logoColor=white)](mailto:stanay657@gmail.com) *如果你觉得这个项目有用,请点个 ⭐ — 这能帮助其他人发现它。*
标签:AI安全, AI风险缓解, AI驱动监控, AMSI绕过, Apex, Chat Copilot, ChromaDB向量数据库, FastAPI服务, LangChain推理, LLaVA-7B, Ollama模型, React仪表板, WebSocket实时流, 多步推理, 威胁响应, 威胁检测, 安防技术, 实时威胁情报, 实时数据流, 无人机安全系统, 智能监控, 机器学习, 确定性警报, 自主安全系统, 视觉语言模型, 视频分析, 语义帧索引, 逆向工具