Skip to content

Super-wyc/arXivRSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

arXivRSS

AI 驱动的 arXiv 论文精选 RSS 订阅生成器。每日自动抓取指定领域的最新论文,通过 DeepSeek LLM 两阶段筛选,将精选论文发布为 GitHub Pages RSS Feed,可直接订阅到任意 RSS 阅读器。

功能特性

  • 自动抓取 arXiv 指定分类的最新论文(默认过去 24 小时)
  • 两阶段 LLM 筛选:先批量粗筛圈定 Top K,再逐篇精读评分,大幅降低 API 成本
  • 生成中文推荐理由与核心贡献总结,方便快速判断是否值得精读
  • 生成标准 RSS 2.0 XML,兼容 Inoreader、NetNewsWire 等主流阅读器
  • 通过 GitHub Actions 每日定时更新,自动部署至 GitHub Pages
  • 提示词与代码解耦:兴趣领域、评分标准、输出格式均在独立的 YAML 文件中配置,无需改动代码

快速开始

一键部署到 GitHub Pages

  1. Fork 本仓库
  2. 进入 Settings → Secrets and variables → Actions,添加 Secret:
  3. 按需在 Variables 中添加可选配置变量(见配置说明
  4. 进入 Settings → Pages,将 Source 设置为 GitHub Actions
  5. 进入 Actions → Daily arXiv RSS Generator,点击 Run workflow 手动触发一次
  6. 完成后,RSS 地址为:https://<your-username>.github.io/<repo-name>/feed.xml

本地运行

# 克隆仓库
git clone https://github.com/your-username/arXivRSS.git
cd arXivRSS

# 安装依赖(推荐使用 uv)
uv sync

# 配置环境变量
cp .env.example .env
# 编辑 .env,填入你的 DeepSeek API Key

# 运行
uv run python main.py

生成的 RSS 文件默认输出至 docs/feed.xml

配置说明

所有配置均通过环境变量(或 .env 文件,本地开发用)进行设置。

变量名 默认值 说明
DEEPSEEK_API_KEY 必填 DeepSeek API 密钥
ARXIV_CATEGORIES cs.AI 抓取的 arXiv 分类,多个用英文逗号分隔,如 cs.AI,cs.LG,cs.CV
MAX_RESULTS 50 每次最多从 arXiv 获取的论文总量(粗筛候选池大小)
TOP_K 10 第一阶段 AI 批量粗筛后保留的论文数量,进入第二阶段精读
SCORE_THRESHOLD 6 第二阶段精读评分下限(1-10),低于此值的论文将被过滤
FETCH_HOURS 24 抓取过去多少小时内提交的论文
RSS_TITLE AI arXiv Daily Digest RSS 频道标题
RSS_DESCRIPTION AI-curated top arXiv papers updated daily RSS 频道描述
RSS_LINK (自动生成) RSS 频道链接,通常为 GitHub Pages 地址
DEEPSEEK_MODEL deepseek-chat 使用的 DeepSeek 模型名称
PROMPT_FILE prompts/paper_analysis.yaml 提示词配置文件路径
KEEP_DAYS 7 RSS 累积保留天数,设为 0 则每次只保留当天内容
OUTPUT_PATH docs/feed.xml RSS 文件输出路径

自定义提示词

提示词配置独立存放于 prompts/paper_analysis.yaml,直接编辑即可调整兴趣领域、评分标准或输出格式,无需修改任何代码

文件包含两套提示词,分别对应两个分析阶段:

# prompts/paper_analysis.yaml

# 第一阶段:批量粗筛(1 次 API 调用,从全量中选 Top K)
batch_system: |
  你是一位资深 AI/ML 研究员...
  # 在此定义兴趣领域、降权规则

batch_user_template: |
  以下是今日 arXiv 的 {total} 篇候选论文,请从中选出最值得精读的 {top_k} 篇...
  {papers_text}

# 第二阶段:单篇精读评分(Top K 次 API 调用)
system: |
  你是一位顶尖 AI/ML 研究员...
  # 在此定义评分标准、输出格式、分析语言等

user_template: |
  论文标题:{title}
  论文摘要:{abstract}

你也可以创建多套提示词文件,通过 PROMPT_FILE 环境变量切换,方便针对不同领域使用不同的筛选逻辑。

项目结构

arXivRSS/
├── main.py                        # 主入口,串联抓取→分析→生成流程
├── pyproject.toml                 # 项目依赖与元数据
├── .env.example                   # 环境变量配置模板
├── prompts/
│   └── paper_analysis.yaml        # 提示词配置(可自定义,与代码解耦)
├── src/
│   ├── fetcher.py                 # arXiv API 抓取与解析
│   ├── analyzer.py                # DeepSeek LLM 调用与评分
│   └── rss_generator.py           # RSS 2.0 XML 生成
├── docs/
│   ├── index.html                 # GitHub Pages 首页
│   └── feed.xml                   # 生成的 RSS 文件(运行后产生)
└── .github/
    └── workflows/
        └── daily.yml              # GitHub Actions 定时任务

工作流程

  1. 抓取:通过 arXiv 官方 API 获取指定分类、指定时间范围内的论文(最多 MAX_RESULTS 篇)
  2. 粗筛(1 次 LLM 调用):将全量论文标题与摘要摘录批量发送给 AI,由其根据兴趣领域选出 Top TOP_K
  3. 精读(Top K 次 LLM 调用):对粗筛后的论文逐篇深度分析,输出 1-10 评分、一句话推荐理由和核心贡献总结
  4. 过滤:剔除精读评分低于 SCORE_THRESHOLD 的论文(兜底保障质量),剩余按评分降序排列
  5. 生成:将精选论文写入标准 RSS 2.0 XML 文件,部署至 GitHub Pages

常见问题

Q:支持哪些 arXiv 分类?
A:支持所有 arXiv 分类,如 cs.AIcs.LGcs.CVstat.MLmath.OC 等。完整列表见 arXiv 分类表

许可证

MIT

About

AI-powered arXiv Essay Featured RSS Feed Generator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages