tanaysingh0312/SkyWatch-AI-Drone-Threat-Intelligence-System
GitHub: tanaysingh0312/SkyWatch-AI-Drone-Threat-Intelligence-System
一个基于AI视觉与智能体推理的实时无人机安全监控系统,将被动录像升级为主动威胁识别与分析。
Stars: 1 | Forks: 0
# SkyWatch-AI — 实时无人机威胁智能系统
**2. 事件历史 — 带有威胁分类的安全事件日志**
**3. 分析面板 — 威胁时间线、告警分布和会话指标**
**4. 问答智能体 — 自然语言监控历史查询界面**
## ✨ 功能特性
- 🎥 **实时帧处理** — 以可配置的速率处理模拟无人机摄像头画面
- 🤖 **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 许可证 — 可自由使用、修改和分发。






**一个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 实时帧分析的实时画面**
**2. 事件历史 — 带有威胁分类的安全事件日志**
**3. 分析面板 — 威胁时间线、告警分布和会话指标**
**4. 问答智能体 — 自然语言监控历史查询界面**
## ✨ 功能特性
- 🎥 **实时帧处理** — 以可配置的速率处理模拟无人机摄像头画面
- 🤖 **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系统*
[](https://github.com/tanaysingh0312)
[](https://linkedin.com/in/stanay657)
[](mailto:stanay657@gmail.com)
*如果你觉得这个项目有用,请点个 ⭐ — 这能帮助其他人发现它。*
### Tanay Singh
**AI/ML工程师 | B.Tech 计算机科学工程(AI/ML)— SPSU Udaipur**
*使用 LangChain、FastAPI 和视觉语言模型构建生产级AI系统*
[](https://github.com/tanaysingh0312)
[](https://linkedin.com/in/stanay657)
[](mailto:stanay657@gmail.com)
*如果你觉得这个项目有用,请点个 ⭐ — 这能帮助其他人发现它。*
标签:AI安全, AI风险缓解, AI驱动监控, AMSI绕过, Apex, Chat Copilot, ChromaDB向量数据库, FastAPI服务, LangChain推理, LLaVA-7B, Ollama模型, React仪表板, WebSocket实时流, 多步推理, 威胁响应, 威胁检测, 安防技术, 实时威胁情报, 实时数据流, 无人机安全系统, 智能监控, 机器学习, 确定性警报, 自主安全系统, 视觉语言模型, 视频分析, 语义帧索引, 逆向工具