SDCofA/world-threat-index

GitHub: SDCofA/world-threat-index

该项目是一个开源的全球地缘政治威胁指数监测平台,通过自动采集公开新闻并运用确定性评分模型,为196个国家和13个阵营提供实时、可审计的1至10级威胁态势评估。

Stars: 0 | Forks: 0

World Threat Index — institutional seal # 世界威胁指数 ### 针对195个国家及13个阵营的常态化地缘政治评估 ![评估](https://img.shields.io/badge/Open--Source-Assessment-0b1f3a?labelColor=6e1f2b) ![覆盖范围](https://img.shields.io/badge/Coverage-196%20states%20%C2%B7%2013%20blocs-b0894f?labelColor=0b1f3a) ![更新频率](https://img.shields.io/badge/Cadence-2%20%2F%206%20%2F%2012h-b0894f?labelColor=0b1f3a) ![规模](https://img.shields.io/badge/Scale-1%E2%80%9310%20Index-b0894f?labelColor=0b1f3a) ![部门](https://img.shields.io/badge/Geopolitical%20Intelligence-SDCofA-6e1f2b?labelColor=0b1f3a) ![许可证](https://img.shields.io/badge/License-Apache%202.0-b0894f?labelColor=0b1f3a)
## 执行摘要 **世界威胁指数 (WTI)** 是由安卡拉战略数据公司维护的一项常态化地缘政治评估。它衡量了**195个联合国成员国(加上台湾,共计196个地区)**和**13个主要地缘政治阵营**的威胁压力,并将每一个评估项映射到单一且可比较的**1-10分级**上。该指数通过接入多语言的开源报告,将每个事件归因于特定国家和标准的威胁类别,并应用确定性的、具备审计准备条件的评分模型,从而为分析师、风险官员和战略团队提供决策级别的态势感知。 该评估每隔几小时重新生成一次,并发布到一个包含完整来源记录的实时公开仪表板。由于在给定固定输入的情况下,评分机制是确定性的,因此仪表板上的每一个主要数据都可以追溯到产生该数据的事件。 **实时评估:** **https://sdcofa.github.io/world-threat-index/** ## 评估说明 该指数将每天的海量国际报告转化为每个国家和每个阵营可比较的单一威胁数值,并全天候刷新。它旨在在全球范围内一致地回答一个问题:*相对于其他所有地方,哪里的威胁压力正在上升,以及上升了多少。* - **全球覆盖。** 包含所有联合国成员国以及台湾(共196个地区)和**13个地缘政治阵营**:OECD、G7、G20、EU、USMCA、NATO、ASEAN、非洲联盟、BRICS、GCC、CIS、MERCOSUR 和 SCO。 - **单一可比标准。** 一个通用的、兼容 BNTI 的加权模型将归因事件映射到 1-10 的指数上,并设有三个明确的状态区间:**STABLE**、**ELEVATED** 和 **CRITICAL**。 - **持续、分级的更新频率。** 国家被划分为 A / B / C 三个层级,并分别按计划每 **2 / 6 / 12 小时**重新评估一次。 - **加权聚合。** 采用人口加权的**全球综合指数**和 GDP 加权的**阵营指数**,因此主要数据反映的是真实的地缘政治权重,而非单纯的事件数量。 - **实时、零后端的展示形式。** 提供交互式的 D3 世界等值线图、阵营网格和国家排名,作为一个无服务器依赖的静态站点提供服务。 ## 方法论与数据出处 本公司坚持一项准则 —— *先有证据,再做断言*。该指数发布的每一个数据都可以从其信息来源中复现,并且每个数据都附有来源、收集背景以及评分方法。 ### 评估流水线 1. **接入。** 按国家提取 Google News RSS 镜像,并可通过 `WTI_INCLUDE_GDELT=true` 启用可选的 GDELT 事件扩充。 2. **归因。** LLM 模型 (`openrouter/free`) 为每个事件分配标准的 ISO-2 国家代码和威胁类别。确定性的启发式模式 (`--dry-run`) 在不依赖 LLM 的情况下执行相同的流程。 3. **评分。** 应用类别权重,并通过饱和曲线(见下文模型)将其进行容量标准化,得出国家范围的 **1-10 指数**。 4. **聚合。** 计算人口加权的**全球综合指数**,同时为所有 13 个集团计算 GDP 加权的**阵营指数**。 5. **发布。** 结果按国家范畴进行分片、合并,在阵营级别进行限制,提交并实现原子化部署。 ### 评分模型 每个归因事件都带有类别权重;该国家的平均权重通过饱和曲线映射到有界的 1-10 指数上。 | 威胁类别 | 权重 | |---|---:| | 军事冲突 | 8.0 | | 恐怖主义 | 7.0 | | 边境安全 | 5.0 | | 政治动荡 | 4.0 | | 人道主义危机 | 3.0 | | 外交紧张局势 | 2.5 | | 贸易协定 | −2.0 | | 中立 | 0.0 | | 状态 | 指数范围 | |---|---| | **STABLE** | 1.0 – 4.0 | | **ELEVATED** | 4.0 – 7.0 | | **CRITICAL** | 7.0 – 10.0 | 该方法论改编自生产环境中的 [边境邻国威胁指数 (BNTI)](https://github.com/akgularda/border-neighbor-threat-index),并在 [`docs/wti-methodology.md`](docs/wti-methodology.md) 中有完整记录。 ### 来源记录规范 - **可审计性。** 在输入相同的情况下,评分机制是完全确定性的。仪表板会显示最后更新的时间戳和实时覆盖范围,因此任何发布的数据都可以追溯到生成它的运行过程及相关事件。 - **仅合法收集。** 本指数仅提取自公开、合法可访问的来源。不获取未经本公司授权的处于身份验证保护下的内容。 ## 覆盖范围 - **196个地区** —— 包含所有195个联合国成员国以及台湾。 - **13个地缘政治阵营** —— OECD、G7、G20、EU、USMCA、NATO、ASEAN、非洲联盟、BRICS、GCC、CIS、MERCOSUR、SCO。 - **分级重新评估** —— A 级约每 2 小时一次,B 级约每 6 小时一次,C 级约每 12 小时一次。 - **并行流水线** —— 国家范畴被划分为 **10 个独立的分片**并发运行,然后合并并作为一个原子数据集发布。 ### 预览 ## 数据与来源 | 元素 | 详情 | |---|---| | **来源** | 公共新闻 RSS 源,按国家进行镜像;可选的 GDELT 事件扩充。 | | **国家注册表** | `config/countries.json` —— 包含 195 个国家及台湾,具备用于加权的地区、子地区、层级、人口和 GDP 字段。 | | **阵营定义** | `config/groups.json` —— 13 个阵营、其成员国以及各阵营的加权策略(GDP 或人口)。 | | **发布的数据集** | `wti_data.json` / `wti_data.js` —— 每次运行重新生成的、各国和各阵营的最新评分指数。 | | **归因模型** | OpenRouter (`openrouter/free`),具备主备密钥轮换机制和确定性的启发式回退方案。 | 本公司仅从开源渠道收集情报问题所需的内容,并保留从信息来源到已发布数据的追溯记录。 ## 复现 该评估可以从干净的检出代码中复现。以下命令与自动化流水线运行的指令完全一致。 ``` # 1. 安装 dependencies pip install -r requirements.txt # 2. Dry-run 少数国家(不使用 LLM,仅使用 Google News) python worldthreatindex.py --dry-run --countries US,GB,SY,UA # 3. 运行生产 shard(与 pipeline 的运行方式相同) python worldthreatindex.py --shard 0 --total-shards 10 --output-shard 0 --tier A # 4. 将所有 shard 合并为已发布的数据集 python scripts/merge_wti_shards.py # 5. 验证全球覆盖范围 python scripts/validate_wti_coverage.py ``` LLM 归因会从环境中读取 `OPENROUTER_API_KEY`(以及 `OPENROUTER_API_KEY_BACKUP`);密钥永远不会被提交。使用 `--dry-run` 可进行完全本地化、无需 LLM 的操作。 ### 自动化与部署 - **`.github/workflows/wti_update.yml`** —— *WTI 情报更新*:计划的分级刷新(A 级约 2 小时,B 级约 6 小时,C 级约 12 小时),10 个并行分片 → 合并 → 提交 → Pages 部署。 - **`.github/workflows/pages.yml`** —— *部署 GitHub Pages*:每次推送到 `main` 分支时发布静态仪表板。 ### 技术栈 - **数据 / ETL** —— Python 3.11:`feedparser`、`pandas`、`numpy`、`requests`、`python-dateutil`、`googletrans`。 - **归因模型** —— OpenRouter (`openrouter/free`),具备密钥轮换和启发式回退功能。 - **前端** —— 原生 JavaScript,结合 **D3.js v7**(世界等值线图)和 **Chart.js**;模块化 CSS(`variables`、`layout`、`components`、`wti`)。 - **自动化** —— GitHub Actions:在分级的 cron 计划上进行 10 路分片矩阵运算,合并并发布,随后进行 Pages 部署。 - **托管** —— GitHub Pages(静态,无后端)。 - **测试** —— 位于 `tests/` 下的 `pytest` 套件。 ### 仓库结构 | 路径 | 用途 | |---|---| | `worldthreatindex.py` | 主分析器 / 流水线入口 | | `wti_core/` | `ingestion`、`feeds`、`llm`、`scoring`、`groups`、`publish` | | `config/countries.json` | 包含层级和权重的 195 个国家及台湾的注册表 | | `config/groups.json` | 13 个阵营定义及加权策略 | | `scripts/` | 分片合并、覆盖范围验证、注册表构建 | | `js/` · `css/` · `index.html` | 静态仪表板(地图、阵营、排名) | | `wti_data.json` / `wti_data.js` | 最新发布的数据集 | | `docs/wti-methodology.md` | 完整的评分方法论 | ## 准则 - **仅限公开来源。** 收集行为仅限于公开、合法可访问的报告。 - **来源与可审计性。** 每一个数据都可以追溯到其来源和时间;确定性的评分机制使得每一个发布的数据都可复现。 - **最小化个人数据。** 本指数评估国家、阵营和事件 —— 而不是个人。 - **防御与分析框架。** 本公司评估威胁压力;不构建用于目标定位或入侵的工具。 - **许可证。** Apache License 2.0 —— 详见 [`LICENSE`](LICENSE)。© 2026 Monarch Castle Holdings · 土耳其安卡拉。
STRATEGIC DATA COMPANY OF ANKARA · ANKARA · TÜRKİYE · MMXXVI
标签:情报分析, 政治地缘, 数据仪表盘, 网络诊断, 自定义脚本, 逆向工具