Skip to content

Repository files navigation

Paper Reader · 读论文

一个运行在浏览器中的 PDF 论文阅读器,支持划词翻译、流式输出、图表解读、多模型配置和用量统计。

PDF 文件在浏览器中由 pdf.js 解析,不会上传到 Paper Reader 服务端。阅读记录、译文和模型配置默认保存在当前浏览器中。

功能

  • 本地打开 PDF,支持大文件懒加载和阅读进度保存
  • 自动或手动划词翻译,支持上下文提取和流式输出
  • 支持 OpenAI 兼容接口和 Anthropic 接口
  • 支持多个模型配置、独立图片解读模型和 Prompt 模板
  • 支持图表自动识别与手动框选解读
  • 保存译文、生词和调用用量统计
  • 数据导入、导出和浏览器持久化存储

Docker 启动

环境要求

  • Docker Engine
  • Docker Compose v2,能够使用 docker compose 命令

构建并启动

从项目源码构建并启动:

docker compose up -d --build

默认访问地址:

http://localhost:8080

检查容器和健康状态:

docker compose ps
curl http://localhost:8080/healthz

健康检查正常时会返回 ok

修改端口

通过 PAPER_READER_PORT 修改宿主机端口:

PAPER_READER_PORT=3000 docker compose up -d --build

此时访问 http://localhost:3000

常用命令

docker compose logs -f             # 查看实时日志
docker compose restart            # 重启容器
docker compose up -d --build       # 修改代码后重新构建
docker compose down                # 停止并删除容器

Docker 使用 Node.js 多阶段构建前端,最终由 Nginx 提供静态文件。宿主机不需要安装 Node.js,也不需要提前生成 node_modulesdist

数据与安全

内容 存储位置
PDF 文件、译文、阅读进度、用量明细 IndexedDB
模型配置、API Key、生词和界面设置 localStorage
  • Docker 容器不保存用户 PDF、阅读记录或 API Key,因此不需要挂载数据卷。
  • 清理浏览器站点数据会删除本地记录,可以在设置中定期导出备份。
  • API Key 由浏览器直接发送给所配置的模型服务,不会写入 Docker 镜像或项目仓库。
  • 如果公开部署并希望所有用户共用同一个服务端 API Key,必须增加后端代理,并把密钥保存在服务端环境变量中。
  • 公网部署建议在容器前配置 HTTPS 反向代理。

项目结构

.
├── Dockerfile                 
├── docker-compose.yml         
├── docker/nginx.conf          Nginx 静态站点与健康检查
├── src/
│   ├── components/            阅读器、设置、翻译和统计组件
│   ├── hooks/                 划词选择逻辑
│   ├── lib/                   存储、模型接口、文本和图片处理
│   ├── App.jsx                应用状态与页面编排
│   └── main.jsx               React 入口
├── index.html
├── package.json
└── vite.config.js

About

浏览器端 AI PDF 论文阅读器,支持划词翻译、图表解读和多模型配置。A browser-based AI PDF reader for academic papers.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages