[开源]PaperMate,让读论文看文档再优雅一点点

相信站内不少佬平时都得啃论文,我自己也是。但总得在各种翻译,ai聊天软件里切换来切换去,索性自己动手搞了这个项目。

首先先介绍一下功能

第一:可以转换成md后进行翻译,格式不会丢失,还有中英对照页面
翻译采用ReactAgent架构,搜寻从arxiv,以及网上各种信息,从背景、动机、切入点:

  • 以及强相关论文给出链接和简单描述相关性
  • 最重要的创新点也会详细解析(是什么,为什么重要,与已有方法对比),以及关键模块等等
  • 实验结果,优势和局限性
  • 还有ai推断的可行方向

第二:不熟悉的专业术语,划词后让ai解析
解析完成后会在整个项目全局高亮,鼠标悬停则会出现解析

第三:拥有用户画像功能的就论文对话功能
ai能根据用户的回答实时调整用户画像,给出让用户最能听懂最想要的回答

话不多说,拿一篇论文试试效果,拿最近新出的step-deepresearch举例

1. 解析效果:结构公式啥的都没毛
gif1_2x_2

2. Agent 翻译
gif2_3x_2

类似于沉浸式那样的对照阅读也没问题:
gif3_2x_2

3. 深度解析
gif4_2

4. 划词 & 记忆:遇见不懂的陌生的词?直接划词解析(这些都会进入llm的记忆,可以在对话中用到):
gif5_2

5. 智能问答: llm会根据用户回答自动调整用户画像(beta,可能有bug):
gif6_2x

快速开始

总结

快速开始

方式一:Docker 一键启动(推荐)

使用 Docker 数据库

cp backend/.env.example backend/.env
# 编辑 backend/.env,DATABASE_URL 配置为:
# DATABASE_URL=postgresql+asyncpg://postgres:postgres@db:5432/papermate

docker-compose --profile db --profile dev up -d

使用外部数据库

cp backend/.env.example backend/.env
# 编辑 backend/.env,DATABASE_URL 配置为你的数据库地址

docker-compose --profile dev up -d

访问:

首次使用

  1. 访问前端 http://localhost:5173
  2. 点击注册,创建第一个用户(自动成为管理员)
  3. 注册后,其他用户无法自行注册,需要管理员添加

方式二:本地开发启动

前置条件

  • Python 3.11+
  • Node.js 18+
  • PostgreSQL 数据库(可以是本地安装或 Docker)

步骤

# 1. 启动数据库(可选,如果没有 PostgreSQL)
docker-compose --profile db up -d
# 数据库地址:localhost:5433

# 2. 配置环境变量
cp backend/.env.example backend/.env
# 编辑 backend/.env,配置数据库连接和 API 密钥
# 如果使用上面的 Docker 数据库,DATABASE_URL 配置为:
# DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5433/papermate

# 3. 安装后端依赖
pip install -r backend/requirements.txt

# 4. 安装前端依赖
cd frontend && npm install && cd ..

# 5. 一键启动前后端(自动运行迁移)
./scripts/dev.sh

访问:

首次使用

  1. 访问前端 http://localhost:5173
  2. 点击注册,创建第一个用户(自动成为管理员)
  3. 注册后,其他用户无法自行注册,需要管理员添加

环境变量配置

编辑 backend/.env,配置以下必需项:

# 数据库连接
# Docker 环境(使用 Docker 数据库):DATABASE_URL=postgresql+asyncpg://postgres:postgres@db:5432/papermate
# 本地环境(使用外部数据库):DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5433/papermate
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5433/papermate

# JWT 密钥(生产环境必须修改!)
JWT_SECRET_KEY=your-super-secret-key-change-in-production

# OpenAI API(必需)
OPENAI_API_KEY=your-openai-api-key-here
OPENAI_MODEL=gpt-4o

# MinerU PDF 解析(推荐使用云端 API)
MINERU_USE_CLOUD=true
MINERU_API_URL=https://mineru.net
MINERU_API_KEY=your-mineru-api-key

# Tavily 搜索(可选)
TAVILY_API_KEY=your-tavily-api-key-here

数据库说明

使用 Docker 数据库

# 单独启动数据库
docker-compose --profile db up -d

# 或与其他服务一起启动
docker-compose --profile db --profile dev up -d

数据库地址:

  • Docker 内部:db:5432
  • 宿主机访问:localhost:5433

使用自己的数据库

确保数据库已安装 pgvector 扩展:

CREATE EXTENSION IF NOT EXISTS vector;

然后在 .env 中配置你的数据库连接地址。

to_do_list:
未来想完善的功能:
添加项目级别的记忆,不止是术语和画像,提升llm回答的质量,让llm更懂你,也更懂论文
将整个项目里的所有论文,以及专业术语和记忆,作成rag知识库,在对话、翻译等地方运用上去
优化翻译agent和对话流程


大家在读论文里还有什么需要的可以提,如果好的我都会采纳放进去,还有rag我完全没整过,感觉有点复杂就先放到后边去了

最后,star一下吧 :tieba_087:

79 个赞

感谢分享!

3 个赞

star了,更考上再用

2 个赞

ch4c巨佬太强了:sob:

8 个赞

膜拜膜拜

2 个赞

感谢大佬开源

2 个赞

哇!太强了!

1 个赞

很有用,感谢分享!

1 个赞

催更gb :nerd_face:

2 个赞

解析用的是什么工具,mineru 之类的还是自建的?
感觉现在用得最多的还是全文翻译和用不同 AI 进行论文 QA 比较。需要agent的地方反而很少,最多就丢到 NotebookLM 里生成播客或者多文档 QA

用的mineru,可以用自建的也可以用官方key,做了一点格式处理,后期可能会加上别的进行解析吧
相当于把你说的那些整合起来,且开源可以自己调,个人感觉这样看还是方便了很多的

1 个赞

厉害啊,感谢大佬

2 个赞

感谢佬的分享

2 个赞

厉害大佬

1 个赞

支持大佬

1 个赞

支持佬友,提醒一下,backend 缺少了 readme 文档,但是 pyproject.toml 中要求了

2 个赞

感谢开源:xhs_021:

2 个赞

太强了~佬

1 个赞

晚上回去就改 :tieba_087:cc创建了一堆md,我可能删多了

支持大佬!

2 个赞