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 文件中配置,无需改动代码
- Fork 本仓库
- 进入 Settings → Secrets and variables → Actions,添加 Secret:
DEEPSEEK_API_KEY:你的 DeepSeek API Key
- 按需在 Variables 中添加可选配置变量(见配置说明)
- 进入 Settings → Pages,将 Source 设置为 GitHub Actions
- 进入 Actions → Daily arXiv RSS Generator,点击 Run workflow 手动触发一次
- 完成后,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 定时任务
- 抓取:通过 arXiv 官方 API 获取指定分类、指定时间范围内的论文(最多
MAX_RESULTS篇) - 粗筛(1 次 LLM 调用):将全量论文标题与摘要摘录批量发送给 AI,由其根据兴趣领域选出 Top
TOP_K篇 - 精读(Top K 次 LLM 调用):对粗筛后的论文逐篇深度分析,输出 1-10 评分、一句话推荐理由和核心贡献总结
- 过滤:剔除精读评分低于
SCORE_THRESHOLD的论文(兜底保障质量),剩余按评分降序排列 - 生成:将精选论文写入标准 RSS 2.0 XML 文件,部署至 GitHub Pages
Q:支持哪些 arXiv 分类?
A:支持所有 arXiv 分类,如 cs.AI、cs.LG、cs.CV、stat.ML、math.OC 等。完整列表见 arXiv 分类表。