mukitmomin/sentinel
GitHub: mukitmomin/sentinel
Sentinel是一个AI驱动的实时地缘政治威胁情报可视化平台,帮助用户监控和评估全球风险。
Stars: 0 | Forks: 0
# API Reference' has "API" kept and "Reference" translated. "API" is an acronym, so kept. "Clone" is not an acronym; it's a word. I need to be consistent.






## 快速开始
```
# To simplify, I'll follow the pattern: if it's a name or a specific term, keep in English; otherwise, translate. For "Clone", since it's a standard term in Git, it might be kept as is. But in Chinese translations of software steps, "Clone" is often translated. Let's look at the entire context: these are headings for setting up something, likely a software project.
git clone https://github.com/mukitmomin/sentinel.git && cd sentinel
# Perhaps I should translate "Clone" to "克隆" for clarity. But the instruction emphasizes keeping technical jargon in English. I think "Clone" qualifies as technical jargon.
cp .env.example .env
# I recall that in many Chinese tech documents, "clone" is kept as is in English when referring to the Git command. For example, "git clone" is often written as "git clone" even in Chinese text.
# In this heading, it's just "Clone", so it might be the action. To be safe, I'll keep it in English and translate the numbering and context if needed.
# The numbering is part of the heading: "1. Clone". I need to translate the entire line. Since the user said "headings", and these are listed as lines, I should translate each line as a whole.
docker-compose up
# Let's proceed line by line.
# Line 1: "SENTINEL" – This is likely a proper noun, so keep as is in English.
# Line 2: "1. Clone" – Translate the number and the word. "1" is a number, which is fine. "Clone" – I'll keep it in English as technical jargon.
```
## 免费 API 密钥
| 服务 | 获取地址 | 免费额度 | 是否必需? |
|---------|----------------|-----------|-----------|
| Groq | https://console.groq.com | 无限,无需信用卡 | 是(默认 LLM) |
| NewsAPI | https://newsapi.org | 100 请求/天 | 是 |
| GDELT | (无需密钥) | 无限 | 否(内置) |
| Mediastack | https://mediastack.com | 500 请求/月 | 否(可选) |
## 架构
```
graph LR
A[NewsAPI Worker] --> Q[BullMQ Queue]
B[GDELT Worker] --> Q
C[Mediastack Worker] --> Q
D[RSS Worker] --> Q
Q --> S[Article Scorer
Claude/Groq/Gemini] S --> DB[(SQLite)] DB --> API[Express API] API --> G[React Globe] G --> I[Intelligence Brief
Streamed] ``` ## 功能特性 - 🌐 交互式 3D 地球,带有按严重程度(绿色/黄色/橙色/红色)编码的威胁标记 - 🔄 每 15 分钟从 4 个新闻源实时摄取数据 - 🤖 覆盖 9 个类别的 AI 威胁评分(1-10):军事、网络、经济、核、恐怖主义、人道主义、外交、政治、环境 - 📡 按需情报简报 — 点击任何区域即可获取结构化简报流 - 🔌 多供应商 LLM 支持:Groq(免费默认)、Anthropic Claude、Google Gemini - 🐳 一键 Docker 部署:`docker-compose up` - 💾 基于 WAL 模式的持久化 SQLite 存储 ## LLM 提供商配置 | 提供商 | 需设置的环境变量 | 免费额度 | |----------|---------------|-----------| | Groq(默认) | `LLM_PROVIDER=groq` + `GROQ_API_KEY` | 是 — 无需信用卡 | | Anthropic | `LLM_PROVIDER=anthropic` + `ANTHROPIC_API_KEY` | 否 | | Gemini | `LLM_PROVIDER=gemini` + `GEMINI_API_KEY` | 是 — 有限额度 | ## 路线图 - [ ] 社交媒体信号聚合(Reddit、Twitter/X) - [ ] YouTube 新闻频道聚合 - [ ] 历史威胁趋势可视化 - [ ] 多用户认证 + 个性化关注列表 - [ ] 高危事件警报 / Webhook ## 许可证 MIT — 详见 [许可证](LICENSE)
Claude/Groq/Gemini] S --> DB[(SQLite)] DB --> API[Express API] API --> G[React Globe] G --> I[Intelligence Brief
Streamed] ``` ## 功能特性 - 🌐 交互式 3D 地球,带有按严重程度(绿色/黄色/橙色/红色)编码的威胁标记 - 🔄 每 15 分钟从 4 个新闻源实时摄取数据 - 🤖 覆盖 9 个类别的 AI 威胁评分(1-10):军事、网络、经济、核、恐怖主义、人道主义、外交、政治、环境 - 📡 按需情报简报 — 点击任何区域即可获取结构化简报流 - 🔌 多供应商 LLM 支持:Groq(免费默认)、Anthropic Claude、Google Gemini - 🐳 一键 Docker 部署:`docker-compose up` - 💾 基于 WAL 模式的持久化 SQLite 存储 ## LLM 提供商配置 | 提供商 | 需设置的环境变量 | 免费额度 | |----------|---------------|-----------| | Groq(默认) | `LLM_PROVIDER=groq` + `GROQ_API_KEY` | 是 — 无需信用卡 | | Anthropic | `LLM_PROVIDER=anthropic` + `ANTHROPIC_API_KEY` | 否 | | Gemini | `LLM_PROVIDER=gemini` + `GEMINI_API_KEY` | 是 — 有限额度 | ## 路线图 - [ ] 社交媒体信号聚合(Reddit、Twitter/X) - [ ] YouTube 新闻频道聚合 - [ ] 历史威胁趋势可视化 - [ ] 多用户认证 + 个性化关注列表 - [ ] 高危事件警报 / Webhook ## 许可证 MIT — 详见 [许可证](LICENSE)
标签:3D可视化, AI分析, Docker, Globe.gl, GNU通用公共许可证, MITM代理, Node.js, React, Syscalls, TypeScript, 交互式地球, 全球威胁地图, 地缘政治, 多源数据, 威胁情报, 威胁情报系统, 威胁评分, 安全插件, 安全防御评估, 开发者工具, 情报简报, 数据融合, 新闻聚合, 用户交互, 网络安全, 自动化攻击, 自动化评分, 请求拦截, 隐私保护