文献发现、课题组织与证据可追溯的论文阅读。

Paper Atlas 把一个 PDF 文件夹变成科研工作空间的工具,检索 arXiv 和期刊论文,以科研课题为单位组织文献,用结构化 AI 分析辅助阅读,并在左右分栏的 PDF 阅读器中把结论、证据、页码和原文对应起来。

所有数据都保存在本机。论文、笔记、批注、分析结果和设置都在本地 data/ 目录,不需要账号、云同步或外部数据库。

开源地址在文章末尾。


为什么是 Paper Atlas

多数文献工具停在"下载 + 预览"。真正的研究工作还需要回答:

  • 这篇论文属于哪个课题?
  • 它在回答什么科学问题?
  • 哪一句原文支撑了这个结论?
  • 我读过什么、标记了什么、写了什么?
  • 能否在不上传整个文献库的情况下向 AI 提问?

Paper Atlas 以科研课题 组织工作流,把 PDF 与 AI 分析并排展示 ,并保存带页码和原文引用的证据。


文献发现

  • arXiv 检索:关键词或 AI 生成检索式。
  • 期刊检索:Elsevier 优先,OpenAlex / Crossref 回退。
  • 相关性筛选、处理队列、持久化任务状态。
  • PDF 下载:断点续传、镜像回退、大小校验、可选 Playwright 兜底。
  • 需要验证码/登录/订阅的出版商页面:打开真实 Firefox 由用户人工完成,不绕过访问控制。
  • 本地论文库:搜索、筛选、收藏、分析历史。

科研课题工作空间

  • 多个课题,各自拥有简介、研究背景、研究目标、研究方向和关键词。
  • 课题文献集合:重点/待读标记、阅读状态、个人评价、评分、标签。
  • 研究问题:问题描述、研究假设、关键词、关联文献、状态。
  • 研究笔记、进展日志、里程碑、综述/报告。
  • 课题维度的相关性与文献筛选(年份、标签、角色、阅读状态、是否已分析)。
  • 同一篇论文可关联多个课题,但底层论文与 PDF 只存一份。

AI 辅助 PDF 阅读器

  • 左右分栏:左侧 PDF,右侧结构化分析。
  • PDF.js 渲染、文本选择、缩放、适宽/整页、单页/连续模式。
  • PDF 目录导航、页面搜索。
  • 12 个分析模块:基本信息、研究背景、研究目标、科学问题、研究方法、数据来源、技术路线、实验设计、主要结果、创新点、研究局限、未来研究方向。
  • 证据包含 PDF 物理页码、章节、引文和校验状态。
  • 点击结论/证据跳转到对应页;文本层可匹配时高亮原文。
  • 选中文本:解释、总结、翻译、解释公式/方法、说明与研究目标的关系。
  • 高亮、下划线、批注、书签、重点证据。
  • 阅读笔记、选中文本保存为课题笔记、阅读状态恢复。
  • AI 只提供建议,不会覆盖用户手动编辑;只有用户确认后才保存。

本地优先工程

  • 单 Python 进程、单个 SQLite 数据库,无外部服务依赖。
  • DeepSeek、Ollama 或任意 OpenAI 兼容端点。
  • 本地 PDF.js 资源,阅读器可离线使用。
  • 增量 schema 迁移,配套备份与数据校验脚本。
  • Windows / Ubuntu / macOS 启动器与打包脚本。
  • 干净的源码分发:不包含数据、PDF、密钥、虚拟环境或测试夹具。

技术栈

层 技术
Web 服务 FastAPI + Starlette + Uvicorn
模板 Jinja2,单页视图
前端 原生 JavaScript/CSS,无框架、无 CDN
PDF 渲染 PDF.js 4.10.38(本地 vendored)
PDF 解析 PyMuPDF
AI OpenAI 兼容 SDK(DeepSeek / Ollama / 自定义端点)
存储 SQLite(WAL)+ 本地文件
打包 PyInstaller(可选)

架构一览

浏览器 UI 原生 JS + PDF.js

FastAPI 本地服务

SQLite data/review.db

本地 PDF data/

DeepSeek / Ollama / OpenAI 兼容

PDF.js 本地 vendored,离线可用


快速开始

Windows

复制代码
start.bat

Linux / macOS

复制代码
chmod +x start.sh
./start.sh

启动器会创建私有 .venv、安装依赖并启动本地服务。首次启动还会创建 data/ 和固定访问码。

打开:

复制代码
http://127.0.0.1:8765

输入启动器控制台显示的访问码。之后可在 设置 → 网络 中修改。

只检查环境,不启动

复制代码
python launcher.py --check

环境要求

  • 源码运行需要 Python 3.10+。
  • Windows 10/11、Ubuntu 20.04+、macOS。
  • 不需要管理员权限。
  • 只有在检索/下载和远程 AI API 时需要联网;已有本地文件可离线阅读。

目录结构

复制代码
Paper_Atlas1.5/
├── README.md / README.zh-CN.md
├── app.py                     # FastAPI 组合根(arXiv + 系统路由)
├── auth.py                    # 访问码、会话 Cookie、登录页
├── config.py                  # 兼容 shim -> atlas.core.config
├── launcher.py                # uv/venv 自举、启动、诊断、快捷方式
├── paper_atlas.py             # 冻结构建入口
├── build.py / build.sh / build.bat
├── start.sh / start.bat
├── install.sh
├── requirements.txt
├── requirements-optional.txt
├── .env.example
├── .github/workflows/build.yml
├── packaging/paper_atlas.spec
├── atlas/
│   ├── core/                  # 配置、路径、日志、异常、ID
│   ├── api/                   # 课题/Dashboard/阅读器/助手路由
│   ├── db/                    # schema、迁移、repository
│   ├── integrations/          # LLM 客户端
│   ├── jobs/                  # 持久化下载任务
│   └── services/              # 课题助手、阅读器服务
├── review/                    # 期刊获取与分析管线
├── templates/index.html
├── static/
│   ├── app.js / review.js / local.js
│   ├── dashboard.js / projects.js / project-workspace.js
│   ├── reader.js
│   ├── style.css
│   └── vendor/pdfjs/          # PDF.js + cmaps + fonts
├── scripts/                   # 备份、校验、迁移
└── docs/

data/ 在运行时创建。


配置

推荐在网页中配置:

  • AI:DeepSeek、Ollama 或 OpenAI 兼容的 Base URL/模型/Key。
  • 网络:监听地址、端口、访问码。
  • 下载:大小上限、并发、断点续传、浏览器兜底。
  • 界面:语言、主题。
  • 期刊流程:研究目标、期刊、分析提示词、Elsevier/Firefox 设置。

设置保存在 data/config.json。环境变量优先于文件,示例见 .env.example。

不要提交 data/config.json 或 .env。 它们可能包含 API Key 和访问码;本仓库不包含这些文件。


数据与隐私

用户数据默认都在 data/:

复制代码
data/
├── config.json          # 设置(可能含 API Key)
├── library.json         # arXiv 下载索引
├── pdfs/                # arXiv PDF
├── jobs.db              # 持久化下载任务
├── logs/                # 轮转日志
└── review/
    ├── review.db        # 论文、课题、分析、笔记、批注
    ├── pdfs/            # 期刊 PDF
    ├── analysis/        # 分析 JSON 副本
    ├── downloads/       # 人工下载收件箱
    └── firefox-profile/ # 人工接管 Firefox 配置(敏感)
  • 备份:python scripts/backup_data.py
  • 校验:python scripts/verify_data.py
  • 迁移:python scripts/migrate_schema.py
  • 不要把 firefox-profile/ 复制到共享位置。
  • 应用不会上传文献库;AI 请求只发送到你配置的服务商。

环境验证

安装后建议手动验证:

复制代码
python launcher.py --check
./start.sh          # 或 start.bat

然后打开工作台,创建课题,打开一篇本地论文,确认 PDF 阅读器、AI 面板和批注按钮可用。

发布构建可检查:

复制代码
./dist/PaperAtlas --check

数据完整性校验:

复制代码
python scripts/verify_data.py

打包为独立程序

复制代码
# Linux / macOS
./build.sh --clean --zip

# Windows
build.bat --clean --zip

产物在 dist/,包含 Python、依赖、模板、静态资源和 PDF.js。构建必须在目标操作系统上进行。


问题排查

先运行:

复制代码
python launcher.py --check

常见问题:

  • 端口被占用 → 修改设置或 --port。
  • 忘记访问码 → 查看控制台或 data/config.json。
  • Ollama 不可达 → 运行 ollama serve,检查设置中的 AI 配置。
  • PDF 不存在 → 可能尚未下载,使用下载或导入。
  • 扫描版 PDF → 不支持文本提取,应用会明确提示。
  • AI 报错 → 检查服务商/模型/Key 和日志。

已知限制

  • 印刷页码不能可靠识别;阅读器使用 PDF 物理页码,并明确标注"印刷页码未识别",不猜测。
  • 证据高亮依赖 PDF 文本层;匹配失败时只跳转到页并显示引文,不伪造高亮。
  • 扫描版 PDF 需要 OCR,当前未实现。
  • 旧版本生成的分析可能缺少背景/目标/数据来源/未来方向,阅读器不会推断缺失内容。
  • arXiv 下载任务与期刊队列使用两套状态存储。
  • 期刊全文获取受出版商访问权限限制;应用不会绕过验证码或付费墙。

语言: 简体中文 · English · 中文文档

开源代码

LNN0212/Paper_Atlas - AtomGit

相关推荐
西柚小萌新1 小时前
【论文阅读】--可信LLM智能体的威胁与对策 综述
论文阅读
Rocky Ding*3 小时前
【三年面试五年模拟】2026-11-05_月之暗面大模型算法岗一面、二面面经全解析
论文阅读·人工智能·深度学习·机器学习·aigc·强化学习·ai-native
flyingonpine20 小时前
PowerShell脚本数字签名实战:自签名证书、代码签名与信任链验证
windows·信任链
goehou1 天前
让 AI 替我操作这台电脑,先把手能伸多远定下来
windows·自动化·权限管理·ai agent
公子小六1 天前
基于.NET的Windows窗体编程之WinForms数据持久化(1)
windows·microsoft·c#·.net·winforms
2601_967987372 天前
安装 Redis 或 Redis Stack
linux·windows·redis·macos·安装
Rocky Ding*2 天前
REPA-E技术深度解析:解冻 VAE 之后,扩散模型为什么需要选择梯度
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·repa-e
xbzb2 天前
自定义 yum 软件源:Linux 上 createrepo,Windows 上纯 Python 也能造
linux·运维·windows·python·yum·createrepo
武雄(小星Ai)2 天前
Ollama报llama-server binary not found排坑实录:服务活着引擎没了
人工智能·windows·大模型·ollama·排坑