我同时跑视频号、抖音、公众号三个号,选题来源很杂:刷热榜记下的、评论区网友问的、看书时冒出来的、竞品爆款拆解的……早期全靠脑子记 + 手机备忘录,问题很明显:
WorkBuddy 既能跑 Python 脚本做结构化存储,又能按规则自动打分。我把选题沉淀进一个本地 SQLite 库,给它立两条规矩:① 入库先去重,绝不重复拍;② 每天按分数推 TOP3,不靠拍脑袋。这样早上开工,最优选题已经躺在对话里了。
📸[截图位置:我的素材目录,展示 选题库/topics.db 与 选项库/入库脚本.py、评分脚本.py 三个文件并列]
链路是「采集 → 入库 → 评分 → 推送」四段:
关键设计:去重和评分分离。去重管"不重复",评分管"挑最好的",各跑各的,逻辑干净也好调试。
📸[截图位置:一条灵感从对话输入 → 入库 → 次日 TOP3 推送的完整对话截图]
只用一张表,字段够用就行。注意我加了 shot 字段标记"是否已拍",后面评分要排除已拍的:
字段含义一览:
字段 | 含义 | 取值范围 | 示例 |
|---|---|---|---|
heat | 热度分(外部来) | 0–40 | 热榜前 10 = 38 |
fit | 适配分(赛道匹配) | 0–40 | 命中信息差 = 42→封顶40 |
shot | 是否已拍 | 0 / 1 | 0 |
created | 入库日期 | YYYY-MM-DD | 2026-08-14 |
核心在 dedup_key:归一化标题后做 UNIQUE 约束,重复入库直接被 IntegrityError 拦下。只用 sqlite3 标准库,任何装了 Python 的环境都能跑。存成 选项库/入库脚本.py:
跑一次的输出:
📸[截图位置:WorkBuddy 跑入库脚本的终端输出,展示"去重跳过"那一行]
每天开工前算一次分:score = heat + fit + fresh,已拍的(shot=1)直接沉底不参与 TOP3。存成 选项库/评分脚本.py:
写好后固化成每日 08:00 自动化,上班前选题就位:
步骤 1:WorkBuddy 左侧「自动化」→ 新建。 步骤 2:触发规则填 RRULE:FREQ=DAILY;BYHOUR=8;BYMINUTE=0(每天 8:00,你 8 点开工刚好收到)。 步骤 3:提示词写清——① 把当天新灵感先跑 入库脚本.py;② 再跑 评分脚本.py;③ 把 TOP3 在对话里推给我。 步骤 4:第一次手动跑通确认 schema.sql 路径、库文件位置、赛道关键词都对,再放自动跑。
📸[截图位置:自动化配置界面,展示 RRULE DAILY 08:00 与提示词片段]
现象:最早 norm() 只留前 12 个字符做 dedup_key,结果"副业踩坑A"和"副业踩坑B"前 12 字相同,被误判重复跳过;反过来"普通人做副业"和"普通人搞副业"前 12 字不同却拍了两次。 解决:norm() 不再截断,用完整归一化字符串做 UNIQUE 键;真·近义重复靠人工在 note 里标"同X",定期 SELECT 复核。
fit 靠手填,越填越虚高现象:一开始 fit 我随手填 35、38,两周后库里 80% 都是 38+,TOP3 失去区分度。 解决:改成 fit_auto() 按"是否命中赛道关键词"自动算(命中一个 +10,封顶 40),不让人拍脑袋,分数才可信。
现象:脚本没排除 shot,一条爆款拍完第二天还排在 TOP1,我又拍一遍被老粉吐槽。 解决:评分时 shot==1 直接 score=-1 沉底,拍完在库里 UPDATE topics SET shot=1 即可,永不重复推。
📸[截图位置:评分脚本输出 TOP3 截图,展示已拍选题已沉底不再出现]
跑满三周后的体感变化:
指标 | 用前(备忘录) | 用选题库后 |
|---|---|---|
找选题耗时 | ~20 分钟 | ~2 分钟 |
月重复拍摄 | 平均 3 条 | 0 条 |
TOP3 与赛道契合 | 凭感觉,常跑偏 | 命中关键词才上榜 |
灵感流失 | 经常忘 | 全入库可追溯 |
最大的价值不是省那 18 分钟,而是彻底消灭"重复拍"和"拍错方向"——这两条是做号最伤粉的操作,现在被库和脚本提前卡死。
用 WorkBuddy + 本地 SQLite 把选题管理变成"入库即去重、每天自动推优",本质是给灵感装了仓库 + 质检线。三个关键动作:
shot=1 沉底,固化成每日 08:00 自动化,开工即收 TOP3。这套不挑平台——你做认知、书单、信息差,只要选题能进库,都能照抄。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。