每日信息看板(含AI总结/分类)本地跑通
2026-01-31 01:34 · run_id=7b4ca759… · 目标:每天可视化总览 + 逐条详情
可视化展示:抓取→提取→分类→摘要→看板(以及哪些自动/半自动/手动)
你要的“不是只有链接”的每日信息板已补齐:对每日条目做分类、摘要与要点提取,并生成 Daily Summary(汇总页)+ Item Detail(详情页)。同时按你的要求:已清空本地 ai-digest 公众号文章输出,并把公众号 channel 默认关闭(避免继续生成/推送草稿)。 下面按自动化等级拆解流程,给你一套每天怎么跑、坏了怎么修的最小 Runbook。
TL;DR
- AUTO 已清空本地 ai-digest 公众号文章输出,并将公众号 channel 默认关闭(避免继续生成/推草稿)。
- AUTO 已本地跑通「每日信息看板」:汇总页 + 每条详情页(带分类/摘要/要点)。
- SEMI 想要“更像 AI 的摘要/分类”:需要提供
OPENAI_API_KEY并用--enable-network(否则自动降级为规则/抽取)。 - MANUAL 更深的内容抓取(YouTube transcript / Weibo 网页正文)与多平台发布/托管仍未做。
证据(本次 run):projects/gh-issue-29-ai-digest-podcast/outputs/runs/run-2026-01-30-7b4ca7590ba84a04a68c1a89165960e5.json。
看板入口:daily/index.html(按日期) · daily/2026-01-30/index.html(示例日:汇总 + 逐条详情)。
End-to-End Flow
同一张图标注 “AUTO / SEMI / MANUAL”
Automation Map
按“你每天要不要碰它”分级
AUTO 全自动(已跑通)
- 本地 Weibo 快照读取(从
*_weibo_ai_trending.json) - 分类/摘要/要点提取(无 LLM key 时自动降级为规则/抽取)
- Digest / Daily Board HTML / XHS content.yaml / Podcast mp3 + feed.xml 生成
- SQLite 落盘与 metrics(runs/items/run_metrics)
SEMI 半自动(建议保留人工点)
- Weibo 刷新:依赖登录态(长期运行需偶尔补登录/防风控)
- 网络采集(GitHub/YouTube)与 GitHub README 抓取:需
--enable-network - LLM 摘要/分类:需要
OPENAI_API_KEY(否则自动降级) - 小红书发布:脚本可自动填充,但停在发布前确认
- 定时任务:模板已写,安装到 launchd 需要一次手动
MANUAL 手动/缺失(下一阶段)
- 播客托管与 HTTPS feed(R2/S3 上传 + 多期 RSS)
- YouTube transcript / Weibo 网页正文抓取(现在主要靠 feed/快照内容)
- ck/成本账本(目前仅占位:
cost.usd=0) - 公众号草稿箱推送/发布(当前默认关闭;建议人工审阅后再开)
- RSSHub/FreshRSS 真接入(目前未消费 RSS 源)
为什么这么分级? 最懂“长期自动化”的人(SRE/数据系统)会说:默认保留人工闸门,先确保每个阶段可复盘(SQLite+metrics),再逐步移除人工点。
How To (Daily)
你要的“一看就能跑”:每天怎么做、怎么装进定时任务
| 阶段 | 自动化等级 | 怎么跑(最小命令) | 产物/去哪里看 |
|---|---|---|---|
| 夜间刷新来源(可选) | SEMI | python3 projects/gh-issue-29-ai-digest-podcast/run_mvp.py --enable-network --refresh-weibo |
Weibo JSON:search-flow/search/hot-search-pipeline/outputs/*_weibo_ai_trending.jsonDashboard: *_weibo_ai_dashboard.html
|
| 本地生成(Digest + 看板 + 播客 + 包) | AUTO | python3 projects/gh-issue-29-ai-digest-podcast/run_mvp.py |
Digest:projects/gh-issue-29-ai-digest-podcast/outputs/digest/<date>/digest.md看板: docs/best-minds-board/topics/gh-issue-29-ai-digest-podcast/daily/<date>/index.htmlPodcast: outputs/podcast/<date>/podcast.mp3
|
| 开启网络采集 +(可选)LLM | SEMI | OPENAI_API_KEY=... python3 projects/gh-issue-29-ai-digest-podcast/run_mvp.py --enable-network |
会补齐 GitHub/YouTube 条目;LLM 有 key 才会生效(否则降级) |
| 本地听播客(MVP) | AUTO |
cd projects/gh-issue-29-ai-digest-podcast/outputs/podcast/<date> && python3 -m http.server 8787
|
http://localhost:8787/feed.xml |
| 小红书发布 | SEMI | (先生成 content.yaml,再用 Playwright 脚本自动填充,发布前停住) |
projects/gh-issue-29-ai-digest-podcast/outputs/xhs/<date>/content.yaml |
公众号说明:已按你的要求清空旧的 ai-digest 草稿文件,并把 wechat.enabled 默认设为 false。
若要恢复生成/推送:把 projects/gh-issue-29-ai-digest-podcast/config/channels.yaml 里的 wechat.enabled 改回 true,再用
--publish-wechat --enable-network。
装进 launchd(03:30 + 10:00)
模板已在:projects/gh-issue-29-ai-digest-podcast/scheduler/(不会自动安装)。
关键点:run_nightly.sh 支持 ENABLE_NETWORK=1、REFRESH_WEIBO=1;run_morning_publish.sh 支持 PUBLISH_WECHAT=1。
When It Breaks
按“最常见故障”给出 1 分钟定位路径
Weibo 刷新失败
- 症状:
weibo.refresh.ok=0或无新*_weibo_ai_trending.json - 原因:登录态过期 / Visitor System 风控 / headless 被拦
- 修复:先手动登录一次(search-flow 复用 persistent context),再重跑
公众号(可选)发布失败
- 症状:
wechat.draft_published=0 - 原因:IP 白名单 / token 过期 / 网络封面下载失败
- 修复:项目会尝试跑
npm run wechat:ip自动修;仍失败再看 ref 工程日志
YouTube channels 变 0
- 症状:
youtube.channels.ok下降、或 warnings - 修复:删除并重建缓存:
projects/gh-issue-29-ai-digest-podcast/data/youtube_channel_cache.json
GitHub rate limit
- 症状:warnings 里出现 403 / rate limit
- 修复:设置
GITHUB_TOKEN(可选但强烈建议)
Next Action
One next action:把“摘要/分类”从规则升级为真正的 LLM(并记账)——设置 OPENAI_API_KEY 后启用 --enable-network,
同时把 llm.calls、cost.usd 真实写入 metrics(这样看板的“AI 总结”才有持续迭代的抓手)。