Not just search — real research.
Stanford STORM methodology · Multi-perspective analysis · Simulated expert dialogue · Fact verification
| Traditional Workflow | This Tool |
|---|---|
| Manual Google → copy/paste → write yourself | AI clarifies your needs → deep multi-perspective search → auto-generation |
| Single viewpoint | 🆕 3–5 perspectives (policy/market/tech/social/international) |
| Text-only reports, no visuals | 🆕 ECharts charts + Mermaid diagrams |
| One-shot generation, can't update | 🆕 Dynamic supplement loop: paste links → integrate → regenerate |
| Ugly Word formatting | Typst academic-grade PDF: cover + TOC + pagination + citations |
- 🎯 Smart Requirement Clarification — 4-dimension structured interview. ~10–15 rounds, with a progress bar so users know what to expect.
- 🔍 STORM Multi-Perspective Search — Inspired by the Stanford paper. Discovers 3–5 viewpoints, each explored in depth.
- 💬 Simulated Expert Dialogue — 3 rounds per perspective: initial search → follow-up → deep dive.
- ✅ Fact Verification — AI extracts key claims, cross-references ≥2 independent sources, labels "verified / single-source / disputed".
- 📊 Auto Chart Generation — ECharts for data + Mermaid for flowcharts/timelines.
- 📄 Academic-Grade PDF — Typst engine: cover, TOC, pagination, citations, methodology section, limitations disclosure.
- 🔄 Dynamic Supplement Loop — After generation, paste new links → auto-fetch → merge → regenerate. Repeat as needed.
- 💾 Session Persistence — Save, list, delete, resume research sessions anytime.
Prerequisites: Node.js 16+, Python 3.8+, Typst v0.14+, DeepSeek API Key
git clone https://github.com/Rookage/deep-research-assistant.git
cd deep-research-assistant
npm install
pip install httpx lxml python-docx python-pptx
# Install Typst
choco install typst # Windows
brew install typst # macOS
cp .env.example .env # Add your DeepSeek key
npm start # http://localhost:3001Vague Idea
│
▼
┌──────────────────────────┐
│ Stage 1: Clarify + Views │ ← DeepSeek + STORM
│ Interview → Brief → 3–5 │
│ research perspectives │
└────────┬─────────────────┘
│ ✅ User confirms
▼
┌──────────────────────────┐
│ Stage 2: Deep Search │ ← Baidu + Bing + httpx/lxml
│ Per-perspective 3-round │
│ expert dialogue │
└────────┬─────────────────┘
│ ✅ User confirms
▼
┌──────────────────────────┐
│ Stage 3: Fact Check │
│ AI extracts claims → │
│ cross-verify → label │
└────────┬─────────────────┘
│ ✅ User confirms
▼
┌──────────────────────────┐
│ Stage 4: Report Generation│ ← Typst PDF / DOCX / PPTX
│ Outline → sections+charts │
│ → polish → download │
│ 🔄 Supplement Loop │
└──────────────────────────┘
| Layer | Tech |
|---|---|
| Backend | Node.js + Express |
| AI | DeepSeek API |
| Search | Baidu + Bing |
| Typst v0.14.2 | |
| Office | python-docx + python-pptx |
| Charts | ECharts + Mermaid |
| Content Fetch | httpx + lxml (Python) |
| Frontend | Vanilla HTML/CSS/JS |
| Methodology | Stanford STORM |
MIT
| 传统做法 | 本工具 |
|---|---|
| 手动 Google → 复制粘贴 → 自己写 | AI 自动追问澄清需求 → 多视角深度搜索 → 自动生成 |
| 只看一个角度的信息 | 🆕 3-5 个视角(政策/市场/技术/社会/国际) |
| 报告只有字,没有图 | 🆕 ECharts 图表 + Mermaid 流程图 |
| 生成完就不能改了 | 🆕 动态补充 Loop:贴链接 → 整合 → 再生 |
| Word 排版惨不忍睹 | Typst 学术级 PDF:封面+目录+页码+引用 |
- 🎯 智能需求澄清 — 4 维度结构化访谈,预计 10~15 轮,前端有进度条提示
- 🔍 STORM 多视角搜索 — 借鑑 Stanford 论文,自动发现 3-5 个研究视角
- 💬 模拟专家对话 — 每个视角 3 轮追问:初始搜索 → 追問 → 深入追問
- ✅ 事实交叉验证 — AI 识别关键主张,至少 2 个独立来源确认
- 📊 图表自动生成 — ECharts 数据图表 + Mermaid 流程图/时间线
- 📄 学术级 PDF — Typst 引擎,封面+目录+页码+引用+方法论+局限性声明
- 🔄 动态补充 Loop — 报告生成后贴入链接 → 自动抓取 → 整合进报告 → 重新生成
- 💾 会话持久化 — 支持恢复、列表、删除,随时继续之前的研究
前置要求: Node.js 16+, Python 3.8+, Typst v0.14+, DeepSeek API Key
git clone https://github.com/Rookage/deep-research-assistant.git
cd deep-research-assistant
npm install
pip install httpx lxml python-docx python-pptx
# 安装 Typst
choco install typst # Windows
brew install typst # macOS
cp .env.example .env # 填入 DeepSeek API Key
npm start # http://localhost:3001输入模糊需求 → 视角发现 → 多视角深度搜索 → 事实核查 → 学术级报告
↕
🔄 补充链接 Loop
| 层 | 技术 |
|---|---|
| 后端 | Node.js + Express |
| AI | DeepSeek API |
| 搜索 | 百度 + Bing |
| Typst v0.14.2 | |
| 图表 | ECharts + Mermaid |
| 内容抓取 | httpx + lxml(Python) |
| 方法论 | Stanford STORM |
MIT
Built with ❤️ by Rookage
