n3rmix/pulse
GitHub: n3rmix/pulse
Pulse 是一个基于 Next.js 构建的 AI 驱动的威胁情报平台,利用大语言模型将 OSINT 报告自动转化为结构化的交互式可视化分析。
Stars: 0 | Forks: 0
# Pulse
一个使用 Next.js 构建并通过 OpenRouter 由 AI 驱动的威胁情报和安全监控仪表板。Pulse 将安全数据发送给 LLM,LLM 返回结构化分析(严重程度、IOC、攻击链、时间线、地理数据),并渲染为交互式可视化效果。
默认模型:**`z-ai/glm-5.2`**(可通过 `OPENROUTER_MODEL` 环境变量覆盖)。
## 功能
- **AI 驱动的分析** — 调用 OpenRouter API,通过 tool calling 生成结构化的威胁情报
- **导出为 PDF 或 Markdown** — 将完整的分析内容(所有标签页)下载为多页 PDF 或 Kova 风格的 Markdown 幻灯片
- **交互式可视化** — 图表、网络图、地理地图和时间线,用于全面探索威胁数据
- **网络图视图** — 力导向图,用于可视化威胁行为者、基础设施和目标之间的关系
- **地理分布** — 世界地图叠加层,显示威胁来源和目标位置
- **时间线视图** — 使用 React Chrono 进行按时间顺序的威胁活动跟踪
- **图表渲染** — 基于 Mermaid 的流程图,用于攻击链可视化
- **多来源输入** — 粘贴原始威胁数据、从 URL 获取或从 PDF 中提取文本
## 技术栈
| 类别 | 技术 |
|---|---|
| 框架 | Next.js 16 (App Router) |
| 语言 | TypeScript 5 |
| UI | React 19, Tailwind CSS 4, Lucide React |
| AI | OpenAI SDK (`openai`) → OpenRouter (`z-ai/glm-5.2`) |
| 图表 | Recharts, D3.js |
| 网络图 | React Force Graph 2D |
| 地图 | React Simple Maps |
| 时间线 | React Chrono |
| 图表 | Mermaid |
## 快速开始
### 前置条件
- Node.js 18+
- 一个 [OpenRouter API key](https://openrouter.ai/keys),并有权访问 `z-ai/glm-5.2`(或您配置的任何模型)
### 安装说明
```
git clone https://github.com/n3rmix/pulse.git
cd pulse
npm install
```
### 环境变量
API key 在 UI 中输入,并仅存储在浏览器的 session storage 中。(可选)在项目根目录创建一个 `.env.local` 文件来覆盖默认模型:
```
# 可选:覆盖默认 model (z-ai/glm-5.2)
# OPENROUTER_MODEL=z-ai/glm-5.2
```
### 开发
```
npm run dev
```
在浏览器中打开 [http://localhost:3000](http://localhost:3000)。
### 其他命令
```
npm run build # Production build
npm run start # Start production server
npm run lint # Run ESLint
```
## 项目结构
```
pulse/
├── app/ # Next.js App Router pages and API routes
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Input view + dashboard entry
│ ├── globals.css # Tailwind styles
│ ├── types/ # Shared TypeScript types
│ └── api/
│ ├── analyze/ # Calls OpenRouter with the analysis tool
│ ├── scrape/ # Fetches text from a URL
│ └── extract-pdf/ # Extracts text from uploaded PDFs
├── components/ # Reusable React components
├── public/ # Static assets
├── next.config.ts # Next.js configuration
└── tsconfig.json # TypeScript configuration
```
## 工作原理
1. 在 UI 中输入您的 OpenRouter API key(仅存储在 session storage 中)。
2. 提供威胁数据 —— 粘贴文本、获取 URL 或上传 PDF。
3. `/api/analyze` 路由将数据转发给 OpenRouter 上的 `z-ai/glm-5.2`,强制执行 `report_threat_analysis` tool call,返回结构化的 JSON。
4. 仪表板将结构化结果渲染为图表、网络图、世界地图、时间线和 Mermaid 攻击链图。
## 依赖说明
`react-simple-maps` 声明了 React 16-18 的 peer dependencies。本项目使用 React 19,并通过 `package.json` 中的 npm `overrides` 解决了冲突 —— 您无需进行任何操作。
标签:DLL 劫持, TypeScript, 大语言模型, 威胁情报, 安全插件, 开发者工具, 自动化攻击