DAILY BOARD MVP

每日信息看板(含AI总结/分类)本地跑通

2026-01-31 01:34 · run_id=7b4ca759… · 目标:每天可视化总览 + 逐条详情

可视化展示:抓取→提取→分类→摘要→看板(以及哪些自动/半自动/手动)

你要的“不是只有链接”的每日信息板已补齐:对每日条目做分类、摘要与要点提取,并生成 Daily Summary(汇总页)+ Item Detail(详情页)。同时按你的要求:已清空本地 ai-digest 公众号文章输出,并把公众号 channel 默认关闭(避免继续生成/推送草稿)。 下面按自动化等级拆解流程,给你一套每天怎么跑、坏了怎么修的最小 Runbook。

WEIBO INPUTENRICHMENTDAILY BOARDSQLITEDIGEST.MDPODCASTXHS PACKAGE

TL;DR

Items Collected
10
Top Rendered
10
Daily Board
OK
WeChat
OFF

证据(本次 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”

COLLECT Weibo refresh Playwright 登录态 · 输出 JSON 快照 GitHub search API 搜索 · 可选 token YouTube RSS @handle 自动解析 channel_id(缓存) PIPELINE CORE Normalize + Dedupe URL canon + per-source score SQLite store + metrics items / runs / run_metrics Render outputs Digest / Daily Board / XHS / Podcast DISTRIBUTION WeChat (optional) 默认关闭;启用后再推草稿 XHS publish Playwright 停在“发布前确认” Podcast hosting R2/S3 + HTTPS feed(未做) Xiaoyuzhou 上传(未做)
Legend: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.json
Dashboard:*_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.html
Podcast: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=1REFRESH_WEIBO=1run_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.callscost.usd 真实写入 metrics(这样看板的“AI 总结”才有持续迭代的抓手)。

“自动化的尽头不是更少的人工,而是更强的可复盘。”
Closing Summary · AUTO vs SEMI vs MANUAL