6 tables (source/schedule/fetch_log/item/analysis/alert) 3 fetch modes (API + Browser + Crawler) 5-dimension analysis + auto status classification 7 stat cards + 6 tab dashboard
93 lines
3.0 KiB
Markdown
93 lines
3.0 KiB
Markdown
# 热点雷达 (Hotspot Radar)
|
||
|
||
Sage 框架模块 — 指定来源的热点聚合分析平台,支持动态添加来源。
|
||
|
||
## 功能
|
||
|
||
- **多类型来源**:API / RSS / Browser (HTML抓取) / Crawler (递归爬虫)
|
||
- **调度管理**:cron 定时 + 间隔模式,retry 策略
|
||
- **抓取日志**:每次执行一条审计记录(耗时/成功数/错误/HTTP状态码)
|
||
- **热点分类**:5级状态 — emerging → rising → hot → cooling → expired
|
||
- **五维分析**:时效 / 热度 / 内容 / 传播 / 受众,每维度 0-100 分
|
||
- **预警规则**:热度阈值 / 加速度 / 情感触发,email/webhook/sms 通知
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
hotspot/
|
||
├── json/ # Sage 表定义(放入 Sage 的 json/ 目录)
|
||
│ ├── hotspot_source.json
|
||
│ ├── hotspot_schedule.json
|
||
│ ├── hotspot_fetch_log.json
|
||
│ ├── hotspot_item.json
|
||
│ ├── hotspot_analysis.json
|
||
│ └── hotspot_alert.json
|
||
├── wwwroot/hotspot/ # Web UI + 后端端点(放入 Sage 的 wwwroot/hotspot/)
|
||
│ ├── index.ui # 仪表盘(7 统计卡片 + 6 标签页)
|
||
│ ├── stats.dspy # 统计 API
|
||
│ ├── fetch_now.dspy # 抓取引擎(3种模式)
|
||
│ └── analyze.dspy # 分析引擎(5维 + 状态分类)
|
||
├── ddl/mysql.sql # 建表 SQL
|
||
├── install/ # 安装片段
|
||
│ ├── load_path_append.txt # 追加到 load_path.py
|
||
│ └── menu_append.json # 追加到 menu.ui
|
||
└── README.md
|
||
```
|
||
|
||
## 安装
|
||
|
||
### 1. 复制文件到 Sage 部署目录
|
||
|
||
```bash
|
||
SAGE_ROOT=/path/to/sage
|
||
cp json/hotspot_*.json $SAGE_ROOT/json/
|
||
cp -r wwwroot/hotspot $SAGE_ROOT/wwwroot/
|
||
```
|
||
|
||
### 2. 建表
|
||
|
||
```bash
|
||
mysql -u user -p sage < ddl/mysql.sql
|
||
```
|
||
|
||
### 3. 注册权限
|
||
|
||
在 `load_path.py` 的 `"""` 结束符前追加 `install/load_path_append.txt` 的内容,然后运行:
|
||
|
||
```bash
|
||
cd $SAGE_ROOT && python load_path.py
|
||
```
|
||
|
||
### 4. 添加菜单
|
||
|
||
在 `wwwroot/menu.ui` 的 `items` 数组中追加 `install/menu_append.json` 的内容。
|
||
|
||
### 5. 重启 Sage
|
||
|
||
访问 `/hotspot` 即可看到仪表盘。
|
||
|
||
## 使用流程
|
||
|
||
1. **来源管理** 标签页 → 添加来源(选择 type: api/rss/browser/crawler)
|
||
2. **调度配置** 标签页 → 为来源配置抓取频率
|
||
3. 仪表盘点击「立即抓取全部来源」
|
||
4. **抓取日志** 标签页 → 检查执行结果
|
||
5. 点击「执行分析」→ 自动计算五维评分和状态分类
|
||
6. **热点条目** 标签页 → 按状态筛选浏览
|
||
7. **预警规则** 标签页 → 设置自动告警
|
||
|
||
## 来源类型说明
|
||
|
||
| type | 适用场景 | 配置要点 |
|
||
|------|---------|---------|
|
||
| `rss` | RSS/Atom feed | url 指向 feed 地址 |
|
||
| `api` | REST API | url + api_key + headers + fetch_method |
|
||
| `browser` | 网页热点列表 | url + browser_wait_selector |
|
||
| `crawler` | 递归抓取 | url + crawler_depth + crawler_rules |
|
||
|
||
## 依赖
|
||
|
||
- Sage >= 0.0.1
|
||
- aiohttp (Python)
|
||
- MySQL / MariaDB
|