martin-minghetti/rivalsight
GitHub: martin-minghetti/rivalsight
一款竞争情报监控工具,利用 AI 提取与比对页面变更,自动评分并告警以减少响应滞后。
Stars: 0 | Forks: 0
RivalSight
竞争情报监控工具,跟踪竞争对手页面,通过 Claude 提取结构化数据,评估威胁等级并显示警报。
快速开始 ·
工作原理 ·
演示模式 ·
贡献
## 问题
产品团队每周花费大量时间手动检查竞争对手网站的价格变化、新功能和定位调整。等到有人注意到变化时,响应已经滞后。使用电子表格和截图无法扩展,而通用的网页监控工具会在不了解真正重要性的情况下标记每一个微小的 CSS 调整。
## 解决方案
RivalSight 自动化整个流程:捕获竞争对手页面,使用 AI 提取结构化数据,与之前的快照进行比对,并根据业务影响对每次变化进行评分。只有当变化真正重要时才发出警报——例如价格下调、新功能发布或定位调整,而不是有人更新了页脚。
**核心原则:**
- **确定性评分** — 威胁等级由规则计算得出,而非主观感受。你可以检查并调整逻辑。
- **结构化提取** — Claude 将价格、功能、定位和内容提取为类型化的字段,无需使用脆弱的正则表达式。
- **自带密钥(BYOK)** — 使用你自己的 Anthropic API 密钥。不经过中间服务,也不会在 API 调用之外泄露数据。
- **演示优先** — 开箱即用,内置示例数据。无需 API 密钥即可探索完整 UI 和管道。
## 快速开始
```
git clone https://github.com/martin-minghetti/rivalsight.git
cd rivalsight
npm install
npm run db:seed
npm run dev
```
无需 API 密钥 — 演示模式会展示包含所有管道路径的示例数据。
### 实时监控
1. 从 [console.anthropic.com](https://console.anthropic.com) 获取 Anthropic API 密钥
2. 在设置中输入密钥,或在 `.env` 中设置 `ANTHROPIC_API_KEY`
3. 安装 Playwright:`npx playwright install chromium`
4. 点击仪表板上的 **“立即运行监控”**
## 工作原理
RivalSight 在每个监控周期中运行一个六阶段管道:
| 阶段 | 作用 |
|-------|-------------|
| **快照** | 通过 Playwright(示例数据回退)捕获页面 HTML |
| **标准化** | 移除导航、页脚和脚本,提取主要内容并去除样式干扰 |
| **提取** | 将干净 HTML 发送给 Claude 进行结构化数据提取(价格、功能、定位、内容) |
| **比对** | 将当前提取结果与同一目标的上一份快照进行比较 |
| **评分** | 应用确定性威胁评分规则 — `critical` / `high` / `medium` / `low` |
| **告警** | 对中高级别威胁生成警报,并触发 Webhook |
```
Page URL → Playwright → Normalize → Claude Extract → Diff → Score → Alert → SQLite
```
## 演示模式
在没有 API 密钥的情况下,应用将以演示模式运行,使用预计算的示例数据覆盖 4 个虚构竞争对手和 7 个监控目标。所有管道路径均被测试:
- 基准抑制
- 关键 / 高 / 中 / 低威胁
- 机会
- 哈希跳过优化
## 技术栈
| 层 | 技术 |
|-------|-----------|
| 框架 | Next.js 16(App Router,全栈) |
| 语言 | TypeScript |
| 样式 | Tailwind CSS 4 |
| 数据库 | 通过 Drizzle ORM 和 better-sqlite3 使用的 SQLite |
| AI | Anthropic Claude API(BYOK) |
| 浏览器 | Playwright |
| 验证 | Zod |
| 测试 | Vitest |
## Webhook 格式
配置后,警报会以以下负载发起 POST Webhook:
```
{
"title": "ProjectFlow: Starter price",
"threatLevel": "critical",
"impactType": "threat",
"competitorName": "ProjectFlow",
"field": "Starter price",
"oldValue": "29",
"newValue": "22",
"timestamp": "2026-04-12T..."
}
```
## 测试
```
npm test
```
## 许可证
[MIT](LICENSE) — Martin Minghetti
标签:AI提取, AI结构化数据, BYOK, Claude API, Demo模式, Playwright, Redis利用, SEO监测, SQLite, TypeScript, 业务影响评估, 产品情报, 功能发布监测, 变更检测, 威胁评分, 安全插件, 定价监控, 市场预警, 带外密钥, 快速启动, 数据差异, 时间线生成, 特征检测, 监控, 竞争情报, 竞品追踪, 结构化提取, 网页捕获, 自动化攻击, 自动化监控