项目地址
在线预览
相关截图

核心功能:
- 实时情报聚合:100+ 新闻源(路透社、BBC、半岛电视台、ACLED 冲突数据等)
- AI 驱动威胁分类:使用 Groq Llama 3.1 8B 进行威胁等级评估
- 交互式全球地图:25+ 数据层(冲突区、军事基地、核设施、海底光缆、卫星火点等)
- **国家不稳定指数(CII)**:多源加权算法,实时评估地缘政治风险
- 宏观市场雷达:综合 7 个市场信号判断 BUY/CASH
- 时序异常检测:基于 Welford 算法的流式基线异常检测
技术栈:
- 前端:TypeScript + Vite + React
- 地图渲染:deck.gl (WebGL) + MapLibre GL
- AI/ML:Groq (Llama 3.1 8B) + OpenRouter (fallback) + Transformers.js (浏览器端 NER/嵌入)
- 缓存:Redis (Upstash) + 三层缓存架构(内存 + Redis + 上游)
选择 World Monitor 的原因:
- 零配置可用:即使不填 API keys,基础功能也能正常运行
- 完全开源:MIT License,代码透明可审计
- 技术先进:浏览器端 ML(Transformers.js)+ WebGL 加速渲染
- 可扩展性强:模块化架构,易于增加新数据源
- 生产就绪:内置缓存、异常检测、跨用户 AI 去重
部署环境
选择在VPS(Debian 12)上部署 World Monitor,配置如下:
- 系统:Debian 12 (bookworm)
- 服务管理:systemd
部署步骤
1. 克隆项目
cd /opt
git clone https://github.com/koala73/worldmonitor.git
cd worldmonitor
2. 安装依赖
World Monitor 使用 pnpm 作为包管理器:
# 安装 pnpm(如果没有)
curl -fsSL https://get.pnpm.io/install.sh | sh -
# 安装项目依赖
pnpm install
3. 配置环境变量(可选)
创建 .env.local 文件,填入可选的 API keys:
# AI/ML(可选,不填也能用)
VITE_GROQ_API_KEY=your_groq_key
VITE_OPENROUTER_API_KEY=your_openrouter_key
# 缓存(可选)
VITE_UPSTASH_REDIS_URL=your_redis_url
VITE_UPSTASH_REDIS_TOKEN=your_redis_token
注意:我选择零配置模式,所有 keys 留空,基础功能依然可用。
4. 构建生产版本
pnpm build
这会在 dist/ 目录生成优化后的静态文件。
5. 使用 systemd 管理服务
创建 systemd 服务文件 /etc/systemd/system/worldmonitor.service:
[Unit]
Description=World Monitor - Global Intelligence Dashboard
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/worldmonitor
ExecStart=/usr/bin/pnpm preview --host 0.0.0.0 --port 8888
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
启用并启动服务:
systemctl daemon-reload
systemctl enable worldmonitor
systemctl start worldmonitor
6. 验证部署
在浏览器中访问 http://ip:8888,应该能看到 World Monitor 的仪表板界面。
功能亮点
1. AI 威胁分类
World Monitor 使用双阶段流水线对新闻进行威胁等级评估:
- 第一阶段:关键词匹配(核武器、政变、恐怖袭击等)
- 第二阶段:LLM 精炼(Groq Llama 3.1 8B)
威胁等级分为:
CRITICAL(红色):核威胁、政变、恐怖袭击HIGH(橙色):军事冲突、暴力抗议MEDIUM(黄色):政治紧张、外交争端LOW(绿色):常规新闻
2. 国家不稳定指数(CII)
CII 算法整合多个数据源:
- ACLED 冲突事件(近期暴力程度)
- GDELT 新闻情绪(负面新闻密度)
- 市场波动(货币、股市压力)
- 基础设施中斬(电力、网络)
公式示例:
CII = 0.4 * (冲突死亡数/人口) + 0.3 * 负面新闻比例 + 0.2 * 市场波动 + 0.1 * 基建中断率
3. 时序异常检测
使用 Welford 在线算法 对事件流进行异常检测:
- 维护滑动窗口均值和标准差
- 检测超过 2σ/3σ 的异常峰值
- 识别地理聚合(1°×1° 网格内多事件)
// Welford 增量更新
const delta = value - mean;
mean += delta / count;
M2 += delta * (value - mean);
const variance = M2 / count;
4. 基础设施级联建模
World Monitor 能模拟基础设施故障的级联效应:
- 海底光缆中断 → 区域网络瘫痪
- 核电站事故 → 周边电网崩溃
- 主要港叩封锁 → 供应链中断
使用 BFS(广度优先搜索)传播依赖图。
管理与维护
查看服务状态
systemctl status worldmonitor
查看日志
journalctl -u worldmonitor -f
重启服务
systemctl restart worldmonitor
停止服务
systemctl stop worldmonitor
可扩展性思考
World Monitor 的架构给了我很多启发,特别适合与其他项目整合:
1. 与新闻简报系统整合
我正在运行的 news_brief 项目可以利用 World Monitor 的:
- 威胁分类流水线(关键词 + LLM 双阶段)
- 国家不稳定指数算法
- 时序异常检测(Welford 算法)
2. 与量化交易系统整合
Polymarket 量化交易可以参考:
- 地理聚合检测(识别高风险区域)
- 基础设施级联建模(预测市场连锁反应)
- 市场雷达 7 信号算法(BUY/CASH 判断)
3. 自定义数据源
添加新的 RSS 源非常简单,编辑 src/data/feeds.ts:
export const feeds = [
{
url: 'https://your-custom-feed.com/rss',
category: 'custom',
region: 'global',
language: 'en'
}
];
安全考虑
- 网络隔离:我使用 Tailscale 私有网络,只允许内网访问
- 零 API Key 暴露:所有敏感配置都在
.env.local,不提交到 Git - CORS 策略:生产环境建议配置 Nginx 反向代理
- 定期更新:关注 GitHub repo 的安全补丁
性能优化
World Monitor 已经做了很多优化:
- 三层缓存:内存 → Redis → 上游,减少 API 调用
- 跨用户 AI 去重:相同查询共享 LLM 结果
- WebGL 加速:deck.gl 使用 GPU 渲染大数据集
- 浏览器端 ML:Transformers.js 在客户端运行,减轻服务器压力
总结
World Monitor 是一个生产就绪的全球情报仪表板,兼具技术先进性和实用性。部署过程简单,零配置即可运行,非常适合作为 OSINT 监控平台的起点。
如果你需要:
- 监控地缘政治风险
- 追踪军事动态
- 评估基础设施脆弱性
- 整合多源情报
不妨试试 World Monitor,它可能会成为你的 "全球态势感知中枢"。