eshanth23/sentinel
GitHub: eshanth23/sentinel
融合五路开源情报信号的 AI 驱动全球冲突预警系统,通过多源数据实时评分实现提前数小时至数天的局势升级预测。
Stars: 0 | Forks: 0
# SENTINEL — AI 驱动的全球威胁情报系统




**实时冲突预测系统,能够提前 72 小时检测到乌克兰战争的爆发。**
为 **SCSP 国家安全黑客马拉松 2026**(兵棋推演赛道)而构建
## 🚨 **问题背景**
情报机构总是在冲突**发生之后**才做出反应。2022 年的乌克兰战争让全世界措手不及——并非因为没有相关信号,而是因为没有人将这些信号实时融合在一起。
决策者需要能够在局势升级**之前**检测到威胁的预警系统。
## 💡 **解决方案**
SENTINEL 将 **5 个独立的数据源**融合为一个 0-100 的单一威胁分数,每 30 分钟更新一次:
| 信号 | 来源 | 检测内容 |
|--------|--------|-----------------|
| 📰 **新闻** | GDELT (65,000 个来源) | 媒体报道激增,外交紧张局势 |
| ✈️ **航班** | OpenSky Network | 军事飞行,部队运输,撤离行动 |
| 🌍 **地震** | USGS | 核试验,炮击,地下活动 |
| 📈 **股票** | Yahoo Finance | 国防承包商的内幕交易模式 |
| ⚔️ **冲突** | ACLED | 战斗、爆炸和领土控制权的真实情况 |
**结果:** 当多个信号对齐时 → 在局势升级前发出预警
## ✅ **历史验证**
SENTINEL 针对 4 场重大冲突进行了测试:
| 冲突事件 | 警报触发时间 | 实际事件时间 | 预警时间窗口 |
|----------|------------------|--------------|----------------|
| 🇺🇦 **乌克兰 2022** | 2022 年 2 月 21 日 | 2022 年 2 月 24 日 | **72 小时** |
| 🇮🇳 **卡吉尔战争 1999** | 1999 年 5 月 | 1999 年 6 月 | **30 天** |
| 🇮🇶 **海湾战争 1990** | 1990 年 7 月 31 日 | 1990 年 8 月 2 日 | **48 小时** |
| 🇮🇱 **以色列-伊朗 2024** | 实时追踪局势升级 | 2024 年 10 月 | **实时** |
## 🎯 **核心功能**
### 🗺️ **实时威胁监控**
- 包含 10 个以上监控区域的交互式世界地图
- 颜色编码的威胁级别(NORMAL → ELEVATED → HIGH → CRITICAL)
- 每 30 分钟实时更新
### 🤖 **AI 驱动的分析**
- **冲突简报生成器** — 在 5 秒内生成 CIA 风格的情报评估(Groq + Llama 3)
- **AI 顾问聊天机器人** — 提出战略性问题,获取带有实时威胁上下文的答案
- **声明核查引擎** — 通过交叉比对 5 个数据源来核查军事声明的真实性
### 🎮 **兵棋推演场景**
- 三种基于概率的未来路径:升级 / 外交 / 僵局
- 基于当前信号的百分比概率
- 为决策者提供推荐的行动方案
### 📊 **历史回放**
- 逐步可视化过去的冲突是如何升级的
- 4 个场景:2022 年乌克兰、1999 年卡吉尔、1990 年海湾战争、2024 年以色列-伊朗
- 见证 SENTINEL 发出警报的确切时刻
### 🛰️ **实时情报推送**
- 带有航向可视化的飞机追踪
- 来自 65,000 个数据源的新闻聚合
- 显示每个数据源贡献的信号分解
## 🌍 **谁可以使用这个系统**
| 目标受众 | 应用场景 |
|----------|----------|
| 🏛️ **国防与情报机构** | 为危机响应团队提供早期预警 |
| 🤝 **人道主义组织** | 在流离失所事件发生前 72 小时预先部署资源 |
| 📰 **记者与 OSINT** | 实时核查声明,追踪冲突发展 |
| 🎓 **冲突问题研究员** | 验证预测模型,研究升级模式 |
| 🏢 **企业** | 供应链中断预测,地缘政治风险评估 |
## 🛠️ **技术栈**
**后端:** Python 3.11 • Flask • APScheduler
**前端:** React 18 • Leaflet.js • Recharts • Axios
**AI:** Groq API (Llama 3 - 70B 参数)
**数据:** GDELT • OpenSky • USGS • Yahoo Finance • ACLED
**总成本:** $0.00(全部为免费 API)
## ⚙️ **快速开始**
### 前置条件
- Python 3.11+
- Node.js 18+
- Git
### 安装说明
```
# 克隆 repository
git clone https://github.com/eshanth23/sentinel.git
cd sentinel
# Backend 设置
cd backend
python -m venv venv
venv\Scripts\activate # Windows | source venv/bin/activate (Mac/Linux)
pip install -r requirements.txt
# Frontend 设置
cd ../frontend
npm install
```
### 运行 SENTINEL
**终端 1 - 后端:**
```
cd backend
venv\Scripts\activate
python api.py
```
→ 运行在 `http://localhost:5000`
**终端 2 - 前端:**
```
cd frontend
npm start
```
→ 打开 `http://localhost:3000`
**可选 - 拉取最新数据:**
```
cd backend
python scheduler.py
```
→ 使用实时数据更新缓存(2-3 分钟)
## 📊 **当前实时威胁**
| 地区 | 分数 | 等级 | 顶级信号 |
|--------|-------|-------|-------------|
| 🔴 以色列-加沙-伊朗 | 80/100 | CRITICAL | 新闻:28/30,ACLED:17/20 |
| 🔴 缅甸 | 75/100 | CRITICAL | ACLED:20/20,航班:20/20 |
| 🟠 乌克兰-俄罗斯 | 72/100 | HIGH | 新闻:27/30,ACLED:18/20 |
| 🟠 台湾-中国 | 68/100 | HIGH | 航班:20/20,新闻:22/30 |
*更新于:2026 年 5 月*
## 🎯 **系统架构**
SENTINEL 遵循三层设计架构:
### 📊 **第 1 层:数据收集 (scheduler.py)**
每 30 分钟或按需运行。针对 10 个全球区域调用 5 个 API,计算威胁分数(0-100),并将结果保存到 `threat_cache.json`。
**目的:** 收集并处理原始情报信号
### 🔌 **第 2 层:API 服务器 (api.py)**
运行在 `localhost:5000` 上的 Flask 服务器。加载缓存数据并将其提供给前端。为冲突简报、聊天机器人和声明核查提供 AI 端点。
**目的:** 通过 REST API 暴露数据和 AI 功能
### 🖥️ **第 3 层:控制面板 (App.js)**
运行在 `localhost:3000` 上的 React 应用程序。显示交互式地图、可视化图表、AI 工具和历史回放。从后端 API 读取所有数据。
**目的:** 用于威胁监控和分析的用户界面
**数据流向:** 外部 API → 调度器 → 缓存 → 后端 → 前端
**设计优势:**
- ✅ 高弹性(缓存可防止演示期间发生故障)
- ✅ 速度快(无实时 API 延迟)
- ✅ 成本低(保持在免费额度内)
- ✅ 可扩展(各层可独立部署)
**数据流向:**
外部 API → 调度器 → 缓存 → 后端 → 前端
**为什么这样设计?**
## ✅ **高弹性** — 缓存可防止演示期间发生 API 故障
✅ **速度快** — UI 交互零延迟
✅ **成本低** — 尽量减少 API 调用,保持在免费额度内
✅ **可扩展** — 每一层都可以独立部署
## 📊 **数据源**
| API | 覆盖范围 | 更新频率 | 成本 |
|-----|----------|------------------|------|
| **GDELT** | 65,000 个新闻源,100 多种语言 | 实时 | 免费 |
| **OpenSky** | 全球 4,000 多个 ADS-B 接收器 | 实时 | 免费 |
| **USGS** | 全球地震传感器(2.5 级以上) | 实时 | 免费 |
| **Yahoo Finance** | 前 5 大国防承包商 | 每日 | 免费 |
| **ACLED** | 200 多名研究员,50 多个国家 | 每周 | 免费 |
| **Groq** | Llama 3(700 亿参数) | 按需调用 | 免费(每天 14.4K 次) |
## 🎓 **构建故事**
- **时间线:** 7 天(2026 年 4 月 17-24 日)
- **先前经验:** 零编程知识
- **学习过程:** 在构建过程中通过文档学习 React + Flask
- **团队:** 个人参赛
- **黑客马拉松:** SCSP 国家安全黑客马拉松 2026(兵棋推演赛道)
## 🏆 **SENTINEL 的独特之处**
| 现有系统 | SENTINEL |
|------------------|----------|
| ❌ 单一信号(新闻或卫星) | ✅ 多信号融合(5 个数据源) |
| ❌ 成本高昂(数百万美元) | ✅ 永久免费($0.00) |
| ❌ 黑盒 AI | ✅ 可解释(显示信号分解) |
| ❌ 被动反应(事后响应) | ✅ 主动预测(72 小时预警窗口) |
| ❌ 专有封闭 | ✅ 开源 |
## 🚀 **未来路线图**
- [ ] 集成卫星图像(Sentinel Hub API)
- [ ] 用于阈值越限的短信/电子邮件警报
- [ ] 扩展到 50 个以上的监控区域
- [ ] 历史数据库(20 年以上的冲突数据)
- [ ] 移动应用(iOS/Android)
- [ ] 通过机器学习优化权重
- [ ] 变化检测算法(部队集结可视化)
## 📜 **许可证**
可免费用于任何目的的使用、修改和部署。
## 📧 **联系与合作**
**Eshanth Kumar Lal Das**
- GitHub: [@eshanth23](https://github.com/eshanth23)
- 仓库: [github.com/eshanth23/sentinel](https://github.com/eshanth23/sentinel)
- 电子邮件: [Your email here]
**寻求:**
- ✅ 关于方法论的专家反馈
- ✅ 学术验证合作
- ✅ 非政府组织/智库合作
- ✅ 实际部署机会
**由一名学生构建。免费运行。为所有人而建。**
### 🌍 *"为防止下一场战争而构建。"*
**如果您觉得这个项目有价值,请给仓库点个 ⭐ 星标,帮助更多人发现它。**
[](https://github.com/eshanth23/sentinel/stargazers)
标签:ACLED, Apex, API集成, GDELT, OpenSky, SCSP 2026, Sysdig, USGS, Yahoo Finance, 人工智能, 代码示例, 兵棋推演, 军事航空, 冲突预测, 可观测性, 国家安全, 地缘政治, 多源数据融合, 威胁情报, 开发者工具, 数据分析, 早期预警系统, 机器学习, 用户模式Hook绕过, 经济情报