# PaperMind
**AI 驱动的学术论文研究工作流平台**
*从「搜索论文」进化为「理解领域」*
[](https://python.org)
[](https://fastapi.tiangolo.com)
[](https://react.dev)
[](https://typescriptlang.org)
[](https://tailwindcss.com)
[](https://sqlite.org)
[](LICENSE)
[]()
> 让 AI 成为你的研究助理 —— 自动追踪、智能分析、知识图谱、学术写作,一站式搞定!
---
## 🚀 快速开始
### Docker 部署(生产推荐)
```bash
# 1️⃣ 克隆项目
git clone https://github.com/Color2333/PaperMind.git && cd PaperMind
# 2️⃣ 配置环境变量
cp .env.example .env
vim .env # 至少填写 LLM API Key
# 3️⃣ 一键部署
docker compose up -d --build
# 4️⃣ 访问服务
# 🌐 前端:http://localhost:3002
# 📡 后端 API: http://localhost:8002
# 📚 API 文档:http://localhost:8002/docs
```
### 本地开发
```bash
# 1️⃣ 克隆项目
git clone https://github.com/Color2333/PaperMind.git && cd PaperMind
# 2️⃣ 一键初始化(推荐)
python scripts/dev_setup.py
# 或手动初始化:
python -m venv .venv && source .venv/bin/activate
pip install -e ".[llm,pdf]"
cp .env.example .env
vim .env # 填入 LLM API Key
python scripts/local_bootstrap.py
# 3️⃣ 启动后端
uvicorn apps.api.main:app --reload --port 8000
# 4️⃣ 启动前端
cd frontend && npm install && npm run dev
# 🌐 打开 http://localhost:5173
```
### 站点认证(可选)
```bash
# 在 .env 中设置密码即可启用全站认证
AUTH_PASSWORD=your_password_here
AUTH_SECRET_KEY=your_random_secret_key
```
---
## 🎯 这是什么?
PaperMind 是一个面向科研工作者的 AI 增强平台,帮你从「搜索论文」进化为「理解领域」。
| 😫 以前 | 😎 现在 |
|:--------|:--------|
| 每天手动刷 arXiv,怕错过重要论文 | 自动订阅主题,新论文推送到邮箱 |
| 读论文从摘要开始,不知道值不值得精读 | AI 粗读打分,快速筛选高价值论文 |
| 想了解领域发展,不知道从哪篇读起 | 知识图谱可视化,一眼看清引用脉络 |
| 写论文卡壳,不知道怎么表达 | 学术写作助手,润色/翻译/去 AI 味 |
| 文献综述耗时耗力,整理几百篇头大 | Wiki 自动生成,一键产出领域综述 |
---
## ✨ 核心能力
### 🧠 认知重构工作流 (PaperSenseMaking)
「阅读→理解→重构」的完整论文工作流:
- 📝 **Act 1 理解** —— 摘要 + 关键发现,厘清论文核心
- ⚡ **Act 2 碰撞** —— 冲突 + 疑问,与已有知识对话
- 🔄 **Act 3 重构** —— 前后对比 + 认知变化,形成新认知
- 📖 **全文对照翻译** —— 段落级中英对照,支持两种模式,结果持久化(二次打开免重译)
- ⚡ **快速翻译**:1-2 分钟,PyMuPDF 分段 + 并发翻译
- 📐 **布局保留**:3-5 分钟,PDFMathTranslate 完整排版(公式/图表保留)
> 💡 布局保留模式依赖 pdf2zh(`pip install ".[pdf]"` 已含),首次使用会联网下载翻译模型。
### 🤖 AI Agent 对话
你的智能研究助理,自然语言交互搞定一切:
- 💬 **SSE 流式对话** —— Claude 风格,实时响应
- 🔧 **工具链** —— 搜索/入库/分析/生成/写作自动调度
- ✅ **用户确认机制** —— 重要操作等你点头再执行
- 📜 **对话历史持久化** —— 切页面不丢上下文
- 🎯 **AI 关键词建议** —— 描述研究方向 → 自动生成搜索词
### 📄 智能论文管理
从收录到精读,全流程自动化:
- 🔄 **多源订阅** —— ArXiv 关键词 + CSFeeds 论文源双重抓取
- 🚫 **论文去重检测** —— 避免重复处理浪费 token
- 📦 **递归抓取** —— 自动延伸更早期论文
- ⚡ **并行处理** —— 粗读/精读/嵌入三管齐下
- 💾 **按需下载 PDF** —— 入库不下载,精读才拉取
### 🕸️ 引用图谱
可视化你的研究领域:
- 🌳 **引用树** —— 单篇论文引用网络
- 🌐 **主题图谱** —— 跨主题引用关系
- 🌉 **桥接论文** —— 发现跨领域的核心工作
- 🔬 **研究前沿** —— 高被引 + 高引用的热点
- 📊 **共引聚类** —— 相关研究自动分组
### 📚 Wiki 自动生成
一键生成领域综述:
- 📖 **主题 Wiki** —— 输入关键词,输出完整综述
- 📄 **论文 Wiki** —— 单篇论文深度解读
- 📊 **实时进度条** —— 异步生成,自动刷新
- 📜 **历史版本** —— 所有生成内容可追溯
### 🔍 论文订阅源(CSFeeds)
发现你研究领域最重要的论文来源:
- 🎯 **关键词订阅** —— arXiv 关键词自动追踪
- 📡 **论文源订阅** —— 直接订阅 CSFeeds 热门论文
- 📬 **邮件推送** —— 新论文自动发送到邮箱
- ⏰ **按主题独立调度** —— 每个主题独立抓取频率
### ✍️ 学术写作助手
来自顶尖研究机构的写作工具:
- 🌏 **中转英 / 英转中** —— 学术级翻译
- ✨ **润色(中/英)** —— 更地道的学术表达
- 🤖 **去 AI 味** —— 降低 AI 检测率
- 📊 **图表推荐 / 标题生成** —— 实验数据可视化建议
### 📖 沉浸式 PDF 阅读器
专注阅读,AI 随叫随到:
- 📜 **连续滚动** —— IntersectionObserver 页码追踪
- 🔍 **缩放/全屏/跳转** —— 键盘快捷键支持
- 🌐 **arXiv 在线代理** —— 无本地 PDF 也能读
- ✨ **选中即问** —— AI 解释/翻译/总结
### 🔐 站点安全认证
保护你的研究资产:
- 🔑 **站点密码** —— 简单可靠,适合个人/小团队
- 🎫 **JWT Token** —— 7 天有效期,自动续期
- 🛡️ **全站保护** —— 所有 API 都需要认证
### ⚙️ LLM 模型管理
灵活控制成本,按场景分配模型:
- 📊 **多配置管理** —— 支持多个 LLM 提供商配置,默认使用小米 MiMo(文本)+ MiMo(视觉)
- 🔄 **一键切换** —— 在设置页面随时激活不同配置
- 🎯 **场景映射** —— 粗读/精读/视觉/嵌入各有独立模型配置
- 💰 **成本优化** —— 每日预算守卫,自动降级控制成本
- 📈 **Token 追踪** —— 所有 API 调用自动记录成本和用量
**默认模型配置**(小米 MiMo):
- 文本任务(粗读/精读/翻译/写作):mimo-v2-omni / mimo-v2.5-pro
- 视觉任务(图表分析/OCR):mimo-v2.5
- 降级备用:mimo-v2.5-pro
- 嵌入向量:text-embedding-v4(阿里百炼 DashScope)
---
## 🏗️ 架构总览
```
┌─────────────────────────────────────────────────────────────┐
│ Frontend (React 18) │
│ Agent │ Papers │ Wiki │ Graph │ Brief │ Collect │ Writing │
│ 路由懒加载 · Vite 代码分割 · SSE 跨页保活 │
└─────────────────────────┬───────────────────────────────────┘
│ REST + SSE (JWT Auth)
┌─────────────────────────┴───────────────────────────────────┐
│ FastAPI Backend │
├─────────────┬─────────────┬─────────────┬───────────────────┤
│ Agent │ Pipeline │ RAG │ Graph / Wiki / │
│ Service │ Engine │ Service │ Brief / Write │
├─────────────┴─────────────┴─────────────┴───────────────────┤
│ Global TaskTracker (异步任务 + 实时进度) │
│ 右下角悬浮面板 · 分类图标 · 完成历史 │
├─────────────────────────────────────────────────────────────┤
│ Unified LLM Client (连接复用 + TTL 缓存) │
│ Xiaomi(MiMo) │ Zhipu │ OpenAI │ Anthropic │
├─────────────────────────────────────────────────────────────┤
│ SQLite (WAL) │ ArXiv API │ Semantic Scholar API │
└─────────────────────────────────────────────────────────────┘
│
┌────────────┴────────────┐
│ APScheduler Worker │
│ 按主题独立调度 │
│ 每日简报 / 每周图谱 │
└─────────────────────────┘
```
---
## ⚙️ 环境变量
| 变量 | 说明 | 默认值 |
|:-----|:-----|:------:|
| `LLM_PROVIDER` | LLM 提供商 (xiaomi/zhipu/openai/anthropic) | `xiaomi` |
| `XIAOMI_API_KEY` | 小米 MiMo API Key | — |
| `ZHIPU_API_KEY` | 智谱 API Key | — |
| `OPENAI_API_KEY` | OpenAI API Key | — |
| `ANTHROPIC_API_KEY` | Anthropic API Key | — |
| `LLM_MODEL_SKIM` | 粗读模型 | `mimo-v2-omni` |
| `LLM_MODEL_DEEP` | 精读模型 | `mimo-v2.5-pro` |
| `LLM_MODEL_VISION` | 视觉模型 | `mimo-v2.5` |
| `LLM_MODEL_FALLBACK` | 降级备用模型 | `mimo-v2.5-pro` |
| `EMBEDDING_MODEL` | Embedding 模型 | `text-embedding-v4` |
| `EMBEDDING_API_KEY` | Embedding API Key(阿里百炼 DashScope) | — |
| `EMBEDDING_BASE_URL` | Embedding 服务地址 | `https://dashscope.aliyuncs.com/compatible-mode/v1` |
| `EMBEDDING_DIMENSIONS` | Embedding 向量维度 | `1024` |
| `SITE_URL` | 生产域名 | `http://localhost:3002` |
| `AUTH_PASSWORD` | 站点密码(留空禁用认证) | — |
| `AUTH_SECRET_KEY` | JWT 密钥 | — |
| `COST_GUARD_ENABLED` | 成本守卫 | `true` |
| `DAILY_BUDGET_USD` | 每日预算 | `2.0` |
| `OPENALEX_EMAIL` | OpenAlex 邮箱(用于 API) | — |
| `IEEE_API_ENABLED` | 启用 IEEE 搜索 | `false` |
| `IEEE_API_KEY` | IEEE API Key | — |
| `SEMANTIC_SCHOLAR_API_KEY` | Semantic Scholar API Key | — |
> 完整配置见 `.env.example`
---
## 📡 API 速览
🔐 认证
| 方法 | 路径 | 说明 |
|:----:|:-----|:-----|
| POST | `/auth/login` | 登录获取 JWT Token |
| GET | `/auth/status` | 查询认证状态 |
🤖 AI Agent
| 方法 | 路径 | 说明 |
|:----:|:-----|:-----|
| POST | `/agent/chat` | Agent 对话(SSE 流式) |
| POST | `/agent/confirm/{id}` | 确认工具执行 |
| POST | `/agent/reject/{id}` | 拒绝工具执行 |
📄 论文管理
| 方法 | 路径 | 说明 |
|:----:|:-----|:-----|
| GET | `/papers/latest` | 论文列表(分页) |
| GET | `/papers/{id}` | 论文详情 |
| POST | `/pipelines/skim/{id}` | 粗读 |
| POST | `/pipelines/deep/{id}` | 精读 |
| POST | `/pipelines/embed/{id}` | 生成嵌入向量 |
🕸️ 知识图谱
| 方法 | 路径 | 说明 |
|:----:|:-----|:-----|
| GET | `/graph/citation-tree/{paper_id}` | 引文树 |
| GET | `/graph/citation-detail/{paper_id}` | 引用详情 |
| GET | `/graph/overview` | 全局概览 |
| GET | `/graph/bridges` | 桥接论文 |
| GET | `/graph/frontier` | 研究前沿 |
| GET | `/graph/cocitation-clusters` | 共引聚类 |
| GET | `/graph/timeline` | 时间线 + seminal |
| GET | `/graph/survey` | 领域综述 |
📚 Wiki
| 方法 | 路径 | 说明 |
|:----:|:-----|:-----|
| GET | `/wiki/paper/{paper_id}` | 论文深度解读 |
| GET | `/wiki/topic` | 获取主题 Wiki |
| POST | `/tasks/wiki/topic` | 生成主题综述 |
| GET | `/generated/list` | 已生成内容列表 |
📡 订阅源(CSFeeds)
| 方法 | 路径 | 说明 |
|:----:|:-----|:-----|
| GET | `/cs/categories` | arXiv CS 分类列表 |
| GET | `/cs/feeds` | 列表订阅源 |
| POST | `/cs/feeds` | 订阅论文源 |
| POST | `/cs/feeds/{category_code}/fetch` | 手动触发抓取 |
查看历史版本
### v3.0 (2026-02-28) — 稳定性全面升级
### v2.8 — 后端重构 + Agent 智能化
### v2.7 — 多源引用 + 相似度地图
### v2.5 — 知识图谱可视化
### v2.0 — Agent 对话系统
### v1.0 — 基础论文管理