按 prd.md 落地的“学术速递”流水线:抓取 ArXiv → LLM 相关性筛选 → LLM 单篇结构化解读 → 周/月趋势总结 → 输出 HTML + PDF,并可归档到 SQLite。另提供本地 Web GUI(Streamlit)。
- 默认取最近一次更新日:ArXiv 并非每天更新,因此默认模式会选择“最近一天有更新的论文”来生成日报。
- 分区 + 关键词筛选:用户可多选 ArXiv 分区(categories),并可填写 include/exclude 关键词。
- LLM 筛选与解读:对满足“分区 + 时间”的候选论文逐篇读取摘要,LLM 判定是否相关;最终展示的单篇论文是 LLM 筛选后的结果,并附结构化解读字段。
- 周/月趋势:在日报末尾附加“本周趋势 + 本月趋势”(各 1 段总结 + 关键词图)。
- 双产物:同一份数据输出
report.html与report.pdf(PDF 通过 WeasyPrint,若不可用则跳过)。 - Spotlight(计划项):对“发表不久但广泛关注”的文章做特别介绍;为保证真实性,后续将接入 Semantic Scholar 等外部信号源(目前默认关闭)。
conda create -n arxivdaily python=3.10 -y conda activate arxivdaily开发/GUI:
pip install -e ".[dev,gui]"PDF(Windows 推荐 conda-forge 安装 WeasyPrint 及系统依赖):
conda install -c conda-forge weasyprint -y编辑 config.yaml(参考 config.example.yaml)。
LLM(本项目支持 Gemini 网关,不是 OpenAI 协议也可以用):
llm.base_url: 例如https://co.yes.vg/geminillm.model_fast/model_smart: 例如gemini-3-flash- API Key:不要写进仓库,建议用环境变量提供
GEMINI_API_KEY(优先)- 或
OPENAI_API_KEY(兼容变量名)
GUI 保存配置:
- GUI 可将侧边栏输入保存到
config.local.yaml(已在.gitignore中忽略)。 - 如需把 API key 也写入配置文件,需要在 GUI 勾选 “Save API key (unsafe)”(明文存储,请自行评估风险)。
PowerShell 示例:
$env:GEMINI_API_KEY="YOUR_KEY"生成日报(HTML + PDF):
dailyarxiv run --config config.yaml --out-dir reports可选:指定 HTML 模板(默认 editorial,可用 editorial|baseline|modern|compact,或直接填 *.j2 文件名):
dailyarxiv run --config config.yaml --out-dir reports --template editorial也可在配置文件中设置:output.html_template: "editorial"(见 config.example.yaml)。
输出目录:reports/<report_date>/
daily_report.json:结构化结果(最重要)report.html:HTML 版日报report.pdf:PDF 版日报(WeasyPrint 可用时生成)debug_candidates.json:候选与筛选信息(用于调参/审计)
仅抓取不调用 LLM:
dailyarxiv run --config config.yaml --out-dir reports --dry-run仅渲染(不重新调用 LLM):
dailyarxiv render --input reports/<report_date>/daily_report.json --out-dir reports/<report_date>可选:渲染时切换模板:
dailyarxiv render --input reports/<report_date>/daily_report.json --out-dir reports/<report_date> --template baselineSQLite 归档(默认库:dailyarxiv.sqlite):
dailyarxiv db --db dailyarxiv.sqlite stats --days 30 dailyarxiv db --db dailyarxiv.sqlite export --date 2026-02-18 --format json --out exported_report.json启动:
dailyarxiv-gui或:
python -m streamlit run dailyarxiv/gui/app.pyGUI 特性:
- 生成报告时实时输出日志、进度条、自动刷新(可在侧边栏调整刷新频率)。
- 当
report.html出现后提供 “Live HTML preview” 以便边跑边看。 - 支持 中/英双语切换(侧边栏 Language)。
- PDF 没生成:先确认
weasyprint可 import;Windows 建议用conda-forge安装(见上文)。 - LLM 调用超时/失败:可降低
max_results/max_selected,或重试;Gemini 网关已内置重试与较长超时。