itsme188/Shabbos-Situation-Monitor
GitHub: itsme188/Shabbos-Situation-Monitor
一款AI驱动的地缘政治态势监控仪表盘,将多源OSINT情报聚合与Claude智能摘要结合,实现免值守的自动化情报监控。
Stars: 1 | Forks: 0
# Shabbos 态势监控器
一款专为 Shabbos 和 Yom Tov 期间监控伊朗/以色列/中东局势而设计的免提、自动刷新本地仪表盘。设计理念是启动后无需任何交互——按计划为您提供 AI 驱动的摘要、战略分析和预测市场背景。
## 仪表盘
带有自动滚动列的 5 列布局:
| 战略分析 | 中东 | 《以色列时报》 | 原始订阅源 | AI 摘要 |
|---|---|---|---|---|
| FDD、CSIS、ISW 文章及 AI 生成的摘要 | Google 新闻 + BBC 备用 | 实时博客 + RSS | OSINT 账号 + 特朗普 (合并) | 每小时要点 + 晨间长文 + 市场信号 |
## 功能
- **战略分析** — 来自 FDD (RSS)、CSIS 和 ISW (直接抓取) 的智库文章,通过 Claude Haiku 为每篇文章生成 AI 摘要
- **AI 摘要** — 根据时间表感知生成:晨间摘要 (Opus,长文)、2 小时要点摘要 (Haiku)、点灯摘要 (Opus,在点灯时间自动触发)
- **油价信号** — 获取 WTI 原油价格作为隐藏的背景信号,帮助 AI 评估事件重要性(价格变动 = 市场反应 vs 噪音)。绝不向读者显示。
- **预测市场** — 将伊朗风险场景(核协议、美军、地面入侵、停火)的 Polymarket 赔率输入到 AI 提示词中
- **OSINT 订阅源** — 通过 5 级回退机制(syndication、TwStalker、BlueSky、Nitter、Google 新闻)抓取 11 个 Twitter/X 账号
- **Yom Tov 检测** — Hebcal API 自动检测节日日期,延长 AI 摘要保留时间,禁用自动暂停,调整刷新间隔(15 分钟 vs 10 分钟)
- **可靠性** — 速率限制的指数退避、崩溃循环保护、caffeinate 阻止睡眠、跨重启的 AI 开关持久化、ThreadPoolExecutor 超时处理
## 快速开始 (Mac)
```
cd ~/Desktop
git clone https://github.com/itsme188/Shabbos-Situation-Monitor.git
cd Shabbos-Situation-Monitor
./start.sh
```
在 Safari 中打开 **http://127.0.0.1:8080**。通过仪表盘上的开关开启 AI 摘要。
包含一个 AppleScript 启动器应用程序,可从桌面一键启动。
## 架构
- **Flask** 运行在 Python 3 上,端口 8080,绑定 0.0.0.0
- **APScheduler** 每 10 分钟(Yom Tov 期间为 15 分钟)刷新一次订阅源;AI 摘要每小时在 :05 分生成;每天下午 4-8 点检查点灯时间
- 通过 ThreadPoolExecutor 实现 **6 个并发抓取器**:OSINT、特朗普、Reuters/BBC、TOI、智库、预测市场
- **feed_cache.json** 跨重启持久化(原子写入、模式版本控制、退避状态、AI 开关状态)
- **start.sh** 管理 venv、带有崩溃循环检测的自动重启(10 分钟内最多 10 次)、用于 macOS 阻止睡眠的 caffeinate
## 核心文件
| 文件 | 用途 |
|------|---------|
| `server.py` | 主应用程序(约 2500 行)— 路由、调度器、所有抓取器、AI 摘要、Hebcal 集成 |
| `config.py` | 所有配置 — 订阅源 URL、账号、AI 提示词、Polymarket 市场、Yom Tov 设置 |
| `start.sh` | 带有崩溃恢复、睡眠阻止、端口守卫的生产启动器 |
| `templates/index.html` | 仪表盘模板 — 5 列网格、自动滚动、日期分隔符 |
| `launcher.applescript` | macOS 一键启动器(在桌面上编译为 .app)|
## AI 摘要时间表 (ET)
| 时间 | 类型 | 模型 | 内容 |
|------|------|-------|---------|
| 凌晨 1-7 点 | 静默时段 | — | 不生成 |
| 上午 8 点 | 晨间摘要 | Opus | 涵盖夜间的多段落长文 |
| 上午 10 点 - 午夜 12 点 | 2 小时摘要 | Haiku | 最多 8 个要点 |
| 点灯时间 | Shabbos/Yom Tov 摘要 | Opus | “进入 Shabbos”状态检查 |
有效类别:军事、外交、政治、突发、战略
## 配置
编辑 `config.py` 进行自定义:
- `TWITTER_ACCOUNTS` — OSINT 账号列表(11 个账号)
- `THINK_TANK_FEEDS` — 用于战略分析的 RSS 和抓取源
- `PREDICTION_MARKETS` — 用于风险监控的 Polymarket 事件 slug
- `REFRESH_INTERVAL` / `REFRESH_INTERVAL_YOM_TOV` — 订阅源更新频率
- `AI_SUMMARY_RETENTION_DAYS` — 要保留的 AI 摘要天数(在 Yom Tov 期间通过 Hebcal 自动延长)
- `YOM_TOV_END` — 使用手动 ISO 日期时间覆盖自动检测,或设为 `None` 以通过 Hebcal 自动检测
- `AI_SUMMARY_*_PROMPT` — 自定义 AI 摘要提示词(晨间、常规、点灯)
## 诊断
- **`/health`** — 所有订阅源的 JSON 状态(条目数、上次更新、错误)
- **`/api/refresh-ai`** — 强制立即生成 AI 摘要
- **`/api/toggle-ai`** — 开启/关闭 AI
- **`server.log`** — 轮转日志(最大 50MB,5 个备份)
## 技术栈
- Python 3 / Flask / Jinja2
- APScheduler 用于后台抓取
- Claude API (Anthropic) 用于 AI 摘要
- BeautifulSoup 用于 HTML 抓取
- feedparser 用于 RSS
- Hebcal API 用于犹太历法
- Polymarket Gamma API 用于预测市场
## 许可证
MIT
标签:API集成, BlueSky, Claude AI, CSIS, DLL 劫持, ESC4, FDD, Hebcal, ISW, OSINT, Polymarket, Python, RSS, Splunk, ThreadPoolExecutor, Twitter, URL抓取, Web爬虫, X, 中东局势, 人工智能, 仪表盘, 免提界面, 可观测性, 地缘政治, 备用机制, 大语言模型, 安息日, 实时处理, 情报监控, 战略分析, 数据抓取, 新闻聚合, 无后门, 无障碍操作, 本地部署, 油价监控, 犹太节日, 用户模式Hook绕过, 网络信息收集, 自动刷新, 预测市场