Skip to content

Repository files navigation

Paper Digest - 语音/音乐/音频论文速递全流程自动化

English | 中文

本项目用于自动生成"语音/音乐/音频论文速递",覆盖从 arXiv 和 HuggingFace Papers 抓取、LLM 筛选、多模态深度分析,到发布 Hugo 博客、微信公众号草稿、小红书文案和飞书文档的完整链路。Node 端可调参数和当前运行数据文件路径集中在 scripts/config.js;Python 发布/维护脚本的共享路径集中在 scripts/path_config.py

对 Codex 说“运行/进行某一天的论文速递”,默认含义是完成抓取、筛选、深度分析、博客生成、review 与修正、博客发布、TOP 10 论文长图、汇总封面和最终状态验收。博客发布无需再次确认;微信公众号、飞书和小红书自动发布不包含在这个默认范围内。

深度分析采用 type-aware-v1 类型感知评分:先将文档归类为方法研究、系统技术报告、模型报告、数据集与基准、综述、理论研究或应用研究,再按对应证据标准评审。八维权重、满分 11 和总分封顶 10 保持统一;分项与总分最多一位小数,开源分使用固定锚点。文档类型不提供固定加分,同一个缺陷只能在一个主要维度扣分;理论工作的完整证明材料可作为核心公开产物,不会因没有代码/模型/数据而被机械归零。

视觉摘要位于发布流程之后:先完成全部论文深度分析,再生成、review 并 push 全部博客(汇总页和所有论文页)。push-blog.py 验证远端 main OID 后自动建立可恢复视觉任务,只为最终评分 TOP 10 的论文各生成一张纵向 PNG 长图;同分按规范化 arXiv ID 稳定排序。长图顶部逐字显示英文论文标题,正文用约 220–360 个简体中文字符完整串联研究问题、方法、实验、结论与局限。若深度分析已筛选并缓存可靠的论文方法总览图、架构图或关键结果图,任务会绑定最多两张参考图及其 SHA。最终图片由内置生图直接完成标题、中文说明、结构图、实验数据和纸张拼贴艺术的一体化构图,不再经过旧的确定性文字卡片合成器;登记前必须逐项目检标题、文字、箭头关系、指标方向和数值,存在不可读或实质错误时重新生成。论文长图和汇总封面统一采用暖白底、低饱和配色和充足留白的清新纸张编辑风,通过细微纸纹、纸片叠层、局部毛边、少量胶带和柔和投影建立设计层次;明确禁止脏旧复古、拥挤手账、深色霓虹、赛博 HUD 和仪表盘式排版。

发布后还生成一张批次汇总图,标题、热门方向和 TOP 10 排行榜均从已发布批次对应的审计数据确定性计算。论文长图与汇总图独立绑定数据、prompt、任务 token 和资产 SHA;重跑只补失败、缺失、损坏或指纹失效项。同一天全部生成图片扁平归档到 data/archive/<日期>/visual-summaries/:封面为 00-digest-cover-<日期>.png,论文长图为 <两位排名>-<paper-id>-<title-slug>.png,严格按最终 rank 而非生成完成顺序编号;图片不滞留在 current。它们不进入已经发布的博客清单,也不构成博客 generate/review/push 的前置门禁。

LLM 筛选前默认执行高召回关键词预筛,核心音频类别提供兜底,明显无关论文不会消耗 LLM 配额。npm run keyword:recall 同时校验人工正负金标与历史有效正样本;已确认的历史 LLM 误筛必须显式记录理由,不计入有效正样本分母。日更结束后运行 npm run digest:status -- --date YYYY-MM-DD,统一验收抓取、筛选、分析、博客远端发布和两类视觉资产,并保存机器可读报告。

深度分析采用分阶段证据预算控制 token:主分析仍覆盖全文,超长论文按全文位置和任务关键词均衡取样;开源扫描、审校重写、评分审计、方法/表格和结构修复只接收各自相关的证据切片。新分析和重分析必须通过版本化硬契约:bounded-v1 限制最多 2 张表、每表 12 个数据行、8 个指标列,并要求表头、分隔行和每个数据行列数一致;detailed-v1 要求方法章节至少 600 个中文字符、三个有效段落和明确结构描述。无对应版本标记的既有成功记录保持兼容。博客 review 独立论文页并发度限制为 1–5;微信、飞书和小红书在默认数据源下必须绑定同日博客 generation manifest 与远端验证 receipt 的 publishedPapers 权威快照,清单缺失也会失败;明确独立运行须传 --ignore-blog-snapshot。视觉登记必须在逐项核对 qaClaims 后显式传 --qa-attested true,声明随资产写入 manifest 且缺失或损坏时完成态失效。


标准日更会在任何 Git 变更前检查 generation schema v3 与 publishedPapers 视觉能力;schema v1/v2 仅用于显式历史维护,review receipt 标记视觉 N/A。渠道发布按目标博客发布日期绑定远端已验证的 publishedPapers,保留论文原始抓取批次;current 已滚动时回退日期归档,自定义输入也只有显式 --ignore-blog-snapshot 才能绕过快照。

文档说明

文件 用途 读者
README.md 项目概览、快速开始、命令速查 人类用户
SKILL.md 给 Agent 的执行规则与安全约束 AI Agent
docs/workflow.md 主流程详解(归档、抓取、筛选、分析、保存) 使用者
docs/scripts.md 全部脚本功能说明 开发者
docs/data-format.md 数据文件格式与字段说明 开发者
docs/setup.md 安装初始化、环境变量、日志、代理配置 新用户
docs/troubleshooting.md 常见问题排查与修复 使用者
docs/maintenance.md 维护约定、评分标准、标签口径 维护者
prompts/filter.md 筛选阶段 LLM prompt 维护者
prompts/deep-analysis.md 深度分析主 prompt(Round 1,纯文本) 维护者
prompts/image-supplement.md 图像筛选与插图计划 prompt(双模型模式;默认最多 4 张并使用稳定段落 ID,只新增图前/图后说明) 维护者
prompts/visual-summary.md 发布后 TOP 10 论文纵向长图 prompt 维护者
prompts/digest-cover.md 发布后汇总图 prompt(标题 + 热门方向 + TOP 10 排行榜) 维护者
prompts/opensource-scan.md 开源链接扫描 prompt(Round 2) 维护者
prompts/gap-fill.md 审校重写 prompt(Round 3) 维护者
prompts/structure-repair.md 缺失必要章节时的主模型局部结构修复 prompt 维护者
prompts/scoring-audit.md 主模型最终类型感知评分审计(送审前移除旧评分理由,仅依据正文与证据账本重建评分字段与理由) 维护者

铁律:真实行为以 scripts/*.js / scripts/*.py 当前实现为最终准绳。若文档与代码冲突,以代码为准并修正文档。


项目结构

audio-paper-digest/
├── scripts/              # 全部脚本
├── tests/                # 单元测试
├── data/                 # 工作数据与归档(gitignored)
│   ├── current/          # 当前工作数据
│   └── archive/          # 按日期自动归档
├── logs/                 # 默认文件日志(gitignored;可在 .env 中用 PD_DISABLE_FILE_LOGS=1 关闭)
├── prompts/              # LLM prompt 文件
├── docs/                 # 详细文档
├── package.json          # npm scripts
├── run-daily-digest.sh   # Codex 默认日更编排入口(脚本阶段完成后接续内置生图)
├── run-full-fetch.sh     # 仅数据流程入口(抓取、筛选、深度分析)
└── README.md / SKILL.md

详见 docs/scripts.md 了解每个脚本的功能,docs/data-format.md 了解数据文件格式。


快速开始

# 1. 安装依赖
npm install
pip3 install -r requirements.txt
# Node 版本要求:>=20.18.1 <21 或 >=22.3.0;Python 依赖包含 Pillow

# 2. 配置 API Key(写入 `.env`)
#    主模型(文本分析,必填)
#    PAPER_ANALYZER_API_KEY=your-key
#    PAPER_ANALYZER_MODEL=deepseek-v4-pro
#    PAPER_ANALYZER_ENDPOINT=https://api.deepseek.com/anthropic
#
#    副模型(多模态图像分析,可选)
#    PAPER_ANALYZER_SECONDARY_MODEL=mimo-v2.5
#    PAPER_ANALYZER_SECONDARY_ENDPOINT=https://token-plan-cn.xiaomimimo.com/v1
#    PAPER_ANALYZER_SECONDARY_API_KEY=tp-your-key

# 3. 默认日更脚本阶段:数据流程 + 博客三阶段 + 视觉输入准备
# 所有项目脚本必须在沙箱外运行;脚本入口会拒绝 Codex 沙箱
today="$(TZ=Asia/Shanghai date +%F)"
./run-daily-digest.sh "$today"

# review 若发现内容问题,修正后从 review 阶段续跑
./run-daily-digest.sh 2026-05-08 --from review

# 4. Codex 使用内置 image_gen 生成并登记全部视觉任务,最后验收
npm run visual:status -- --date 2026-05-08
npm run cover:status -- --date 2026-05-08

# 5. 可选:生成小红书文案
python3 scripts/publish-xiaohongshu.py

完整安装指南见 docs/setup.md


8. 常用命令速查

npm scripts

# 默认日更脚本阶段(随后由 Codex 接续内置生图)
npm run digest:prepare -- "$(TZ=Asia/Shanghai date +%F)"

# 仅数据流程(抓取 + 筛选 + 深度分析)
npm run fetch

# 仅深度分析续跑(跳过已有 analysis;无分析结果时可从 filtered-papers.json 初始化)
npm run deep

# 全量重分析
npm run reanalyze

# 批量分析未分析论文
npm run batch

# 只读校验当前 JSON 数据结构(含筛选决策缓存一致性)
npm run validate:data
# 没有运行数据的干净 checkout 才使用:
# npm run validate:data -- --allow-empty
npm run keyword:recall
npm run digest:status -- --date YYYY-MM-DD

# 全部博客发布后,幂等建立/续跑 TOP 10 论文长图与汇总图任务
npm run visual:post-publish -- --date 2026-04-21
npm run visual:prepare -- --date 2026-04-21
npm run visual:status -- --date 2026-04-21
npm run cover:status -- --date 2026-04-21

# 运行单元测试
npm test

# 快速测试(抓+筛选,不分析)
node scripts/quick-test.js

# 补录历史 paper ID
npm run backfill

# 博客三阶段:生成 → 审查 → 推送(三个入口不会互相重复执行)
npm run blog:generate -- --date 2026-04-21
npm run blog:generate -- --date 2026-04-21 --exclude-id 2607.12345  # 可重复传入,仅排除本次发布
npm run blog:review -- --date 2026-04-21
npm run blog:push -- --date 2026-04-21

# 生成微信公众号草稿
npm run wechat
# 仅生成公众号预览,不调用微信接口
python3 scripts/publish-wechat-full.py --dry-run
# 发布输入文件全部论文到公众号草稿
python3 scripts/publish-wechat-full.py --all

# 生成小红书文案
npm run xiaohongshu

# 小红书自动发布(需先登录)
npm run xhs-login
npm run xhs-publish
npm run xhs-publish-all

# 生成飞书文档
python3 scripts/publish-to-feishu.py
python3 scripts/publish-to-feishu.py --date 2026-04-21
# 仅预览飞书文档规模,不创建文档
python3 scripts/publish-to-feishu.py --dry-run --date 2026-04-21
# 发布输入文件全部论文到飞书
python3 scripts/publish-to-feishu.py --all

直接调用

# ========== 核心流程 ==========
# 默认日更脚本阶段(之后由 Codex 接续内置生图)
./run-daily-digest.sh "$(TZ=Asia/Shanghai date +%F)"

# 仅数据流程
./run-full-fetch.sh

# 或直接用 Node
node scripts/full-fetch.js

# 抓取/筛选中断后直接重跑:fetch-checkpoint 按来源补抓,筛选只重试未决论文
# 模型或 filter prompt 改变时复用健康候选,只重新筛选

# 仅深度分析续跑(跳过已有 analysis;无分析结果时可从 filtered-papers.json 初始化)
# 每个分析阶段都在单篇锁内即时落盘,崩溃后只从首个未完成阶段续跑
node scripts/deep-analysis-only.js

# 全量重分析
node scripts/reanalyze.js

# 指定并发度重分析
node scripts/reanalyze.js --concurrency 3 data/current/deep-analysis-result.json

# 快速测试(抓+筛选,不分析)
node scripts/quick-test.js

# 批量分析未分析论文
node scripts/batch-analyze.js

# 单独分析一篇论文
node scripts/analyze-single-paper.js 2604.16044 --force

# 只读校验当前数据结构
node scripts/validate-data-files.js

# ========== 发布 ==========
# 博客生成、review、push 必须依次使用独立脚本
python3 scripts/generate-blog.py --date 2026-04-21
python3 scripts/review-blog.py --date 2026-04-21
python3 scripts/push-blog.py --date 2026-04-21

# review 首次失败后,修复页面并重跑同一命令;已通过且 SHA 未变的页面永久复用
# 只复审新增、内容变化、待重试或已修复的失败页;最终仍对完整批次执行确定性校验和 Hugo gate

# 用自定义数据发布
python3 scripts/generate-blog.py --date 2026-04-21 data/current/deep-analysis-result.json
python3 scripts/generate-blog.py --all data/current/deep-analysis-result.json

# 生成微信公众号草稿
python3 scripts/publish-wechat-full.py
python3 scripts/publish-wechat-full.py --dry-run

# 用自定义数据生成微信草稿
python3 scripts/publish-wechat-full.py data/current/deep-analysis-result.json
python3 scripts/publish-wechat-full.py --all data/current/deep-analysis-result.json

# 生成小红书文案(默认 TOP 5)
python3 scripts/publish-xiaohongshu.py
python3 scripts/publish-xiaohongshu.py --top 7
python3 scripts/publish-xiaohongshu.py --all

# TOP N 一句话默认 5 并发,可在项目 .env 设置 1-5
# PD_XIAOHONGSHU_ONELINER_CONCURRENCY=5
# 成功 one-liner 会逐篇缓存;重跑只请求失败、缺失或指纹变化的论文

# 小红书自动发布(需先登录)
python3 scripts/xiaohongshu-publisher.py --login
python3 scripts/xiaohongshu-publisher.py
python3 scripts/xiaohongshu-publisher.py --all

# 生成飞书文档
python3 scripts/publish-to-feishu.py
python3 scripts/publish-to-feishu.py --date 2026-04-21
python3 scripts/publish-to-feishu.py --dry-run --date 2026-04-21
python3 scripts/publish-to-feishu.py --all

# ========== 辅助 ==========
# 补录论文 ID(不分析)
python3 scripts/backfill_papers.py

# 按日期重新筛选 + 分析
node scripts/refilter-reanalyze-by-date.js 2026-07-01

更多文档

  • 主流程详解 — 自动归档、抓取、筛选、深度分析的完整流程
  • 脚本分工 — 全部脚本的功能说明与用法
  • 数据格式 — fetch checkpoint、筛选缓存、逐阶段分析 checkpoint、博客凭证和小红书文案缓存结构
  • 安装与配置 — 依赖安装、环境变量、模型配置、日志机制
  • 排错手册 — API 错误、代理问题、发布失败的排查方法
  • 维护约定 — 代码规范、评分标签口径、变更检查清单

参考与致谢

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages