Skip to content

通过扫描huggingface和arxiv直接添加最新文献到Notion、Wolai、以及论文阅读神器Zotero!同时,可以通过大模型api直接越过Notion AI,使用大模型总结文献主要内容传递到Notion页面的关键字中,建议使用deepseek,按需使用,妈妈再也不用担心涨价的Notion AI了!

License

Notifications You must be signed in to change notification settings

sheldon123z/Zotero-Notion-Paper-Flow

Repository files navigation

Zotero-Notion-Paper-Flow

Release CI Python License

自动化论文收集和管理工具,从 HuggingFace Daily Papers 和 arXiv 获取论文,使用 LLM 服务进行中文翻译和分析,并同步到 Notion、Zotero 和 Wolai。

✨ 特性

  • 📚 多数据源: 支持 HuggingFace Daily Papers 和 arXiv 搜索
  • 🤖 LLM 智能分析: 使用 Moonshot/DeepSeek 进行论文摘要翻译和分类
  • 🔄 多服务同步: 自动同步到 Notion、Zotero、Wolai
  • 📥 PDF 下载: 自动下载论文 PDF 文件
  • 🎯 智能分类: 基于内容自动分类和标签
  • 🖥️ 桌面应用: Electron GUI 配置管理工具
  • 现代架构: 接口驱动设计,易于扩展和测试

📦 安装

从 PyPI 安装(推荐)

pip install paper-flow

从源码安装

git clone https://github.com/sheldon123z/Zotero-Notion-Paper-Flow.git
cd Zotero-Notion-Paper-Flow
pip install -e .

下载桌面应用

Releases 页面下载适合你系统的版本:

  • macOS: PaperFlow-{version}.dmg.zip
  • Windows: PaperFlow-Setup-{version}.exe 或便携版
  • Linux: PaperFlow-{version}.AppImage.deb

🚀 快速开始

基本使用

# 使用关键词搜索论文
paper-flow --keywords "reinforcement learning" "LLM" --limit 10

# 指定日期和分类
paper-flow --keywords "diffusion" --date 2025-01-01 --categories cs.LG

# 下载 PDF
paper-flow --keywords "transformer" --download-pdf --pdf-dir ./papers

配置文件

创建 config.json

{
  "keywords": ["reinforcement learning"],
  "categories": ["cs.LG", "cs.AI"],
  "services": {
    "notion": true,
    "zotero": true,
    "wolai": false
  },
  "download_pdf": true,
  "pdf_dir": "papers",
  "search_limit": 10
}

然后运行:

paper-flow --config config.json

概述

本项目可以扫描HuggingFace的Daily Papers页面,解析页面,获取相关论文标题、截图、ID等,调用Arxiv库获取论文更完善的信息,调用LLM API(目前是调用的是Moonshot API)对摘要进行分析,首先翻译成中文,然后解析摘要中提到的论文的动机、方法、结果,并尝试对论文打标签,最后将解析结果,原始论文的链接,使用Notion API,发送到Notion和Zotero API。

最终的效果如下图所示:

Zotero展示:

Notion 论文主列表:

详情页:

快速上手

准备工作

  • 申请Moonshot API:如果使用其他LLM的话,在src/service/llm_service.py中,替换为其他LLM的相关配置
  • Notion配置(可选),这步不申请的话,后续过程论文可以正常获取、解析,但结果无法正常插入Notion
    • 此页面点击Create new integration,创建一个token,创建好之后,记录下Internal Integration Secret,供后续认证使用
    • 在要写入的页面,点击右上角的三个点,在弹出的菜单中,点击Connect to,选择刚才生成的Integration名称
    • 同样点击要写入的页面右上角的三个点,在弹出的菜单中,点击Copy link to view,可以得到类似 https://sheldon123z.notion.site/d7fe8ee7761c4a1fb82dc8f0a07d8fe1?v=bf26f727808c47b4be34536f5e800362&pvs=4 的地址,其中的d7fe8ee7761c4a1fb82dc8f0a07d8fe1 就是要拷贝的Notion DB ID
  • Slack API申请(可选),这一步主要是配置定时调度后,将每次程序运行结果发送到Slack,如果不需要的话,这步置空或者随意填写一个字符串即可
  • Zotero API申请(可选),这一步主要是配置定时调度后,将每次程序运行结果发送到Zotero,如果不需要的话,这步置空或者随意填写一个字符串即可 申请地址为 https://www.zotero.org/settings/keys, 注意需要将读写权限打开

申请新的key

安装依赖

直接安装(不推荐)

pip install requirements.txt

使用Conda虚拟环境

使用conda环境的话,可以创建一个新的conda环境,然后安装依赖:

conda create -n daily_paper_app python=3.10
conda activate daily_paper_app
pip install requirements.txt

使用pyvenv虚拟环境

使用pyvenv的话,可以创建一个新的虚拟环境,然后安装依赖:

python3 -m venv daily_paper_app
source daily_paper_app/bin/activate
python setup.py install

修改启动脚本

修改bin/start_daily_paper_app.sh中SLACK_API_KEY、KIMI_API_KEY、NOTION_SECRET、NOTION_DB_ID、ZOTERO_API_KEY、ZOTERO_API_SECRET,其中Zotero的API需要到页面版本Zotero中申请,申请后需要将Zotero API Key和Zotero API Secret填入,否则无法将论文添加到Zotero中,同时,请务必修改每在daily_paper_app.py中每个collection的编号,不然会插入新条目失败

如上所述,只有KIMI_API_KEY是必须的,其他的如果不需要可以随意输入其他字符串,如果需要使用其他的LLM,请修改src/service/llm_service.py中相关配置以及bin/start_daily_paper_app.sh中相关配置

启动程序

命令行运行方式

可以使用以下命令运行主程序,并支持多个参数控制抓取行为:

python src/daily_paper_app.py [选项参数]

常用参数说明如下:

参数 示例 说明
--keywords "LLM" "reinforcement learning" 搜索关键词(支持多个)
--categories cs.LG cs.AI 指定arXiv分类
--date 2025-04-21 指定日期,只处理该日论文
--days 3 处理过去 n 天的论文(与 --date 互斥)
--limit 20 每日最多处理论文数量
--download-pdf 下载PDF(flag)
--no-download-pdf 不下载PDF(flag)
--pdf-dir papers/pdf PDF保存目录
--no-arxiv 跳过arXiv抓取
--no-hf 跳过HuggingFace抓取
--config ./config.json 指定配置文件路径

示例命令:

python src/daily_paper_app.py --keywords diffusion "RL" --date 2025-04-21 --download-pdf

配置好自己的.sh服务后可以使用bash启动

sh bin/start_daily_paper_app.sh

修改配置文件

新增了在arxiv上使用分类进行搜索的能力,具体说明可看这里


定时调度

可以通过crontab来定时调度,比如每天早上8点执行一次,可以添加如下命令:

crontab -e

在打开的文件中添加如下命令:

0 8 * * * sh /path/to/your/script/start_daily_paper_app.sh

其中/path/to/your/script/start_daily_paper_app.shstart_daily_paper_app.sh的绝对路径,保存后,crontab会自动生效。

此外,如果你是在conda环境中设置的,那么需要确保在crontab中执行的脚本是在conda环境中执行的,可以通过在执行脚本中添加以下命令来设置:

. /home/your_user_name/miniconda3/bin/activate your_env_name
cd /path/to/this/project

其中your_user_name是你的用户名,your_env_name是你安装的环境名称。这样在定时执行的时候就可以


Project Roadmap

这是当前项目的开发进度与未来计划。

已完成任务 ✅

  • 添加定时调度
  • 添加 Zotero API
  • 添加 Slack API
  • 添加 Notion API
  • 添加 LLM API
  • 添加 Arxiv API
  • 添加 HuggingFace API
  • 论文LLM解析
  • 论文LL智能总结
  • 添加论文标签
  • 添加论文截图
  • 增加LLM智能总结到 zotero extra 字段

进行中的任务 ⏳

  • 按分类文件夹增加插入zotero
  • 增加 arxiv 特定领域论文订阅
  • 触发器增加邮件通知:可以简单通过notion自动化实现,这里不再手动实现
  • 增加本地模型调用:可以通过ollma实现
  • 增加LLM论文分析能力
  • Wiki生成能力,每篇论文使用LLM生成一个wiki模版的说明
  • 联动其他

计划中的任务 🚀

  • [] 高级学科分拣
  • [] 微信通知

About

通过扫描huggingface和arxiv直接添加最新文献到Notion、Wolai、以及论文阅读神器Zotero!同时,可以通过大模型api直接越过Notion AI,使用大模型总结文献主要内容传递到Notion页面的关键字中,建议使用deepseek,按需使用,妈妈再也不用担心涨价的Notion AI了!

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published