summary.md
3.52 KB
2026-07-08 工作总结
一、文章摘要/学习去重 (A)
问题
点击"📝 摘要"或"🔧 学习"按钮时,每次都重复 spawn hermes 子进程, 不管这篇文章是否已经有过摘要或学习结果。
改动
local_db.py
daily_reports表新增dedup_key列 (TEXT) 和article_url列 (TEXT)- 新增联合索引
idx_daily_reports_dedup ON (dedup_key, report_date) - 新增
find_article_summary(dedup_key, report_type)— 单篇查询 - 新增
find_article_summaries_batch(dedup_keys, report_type)— 批量查询 report_add()新增可选参数dedup_key和article_url
app.py
- 新增
_extract_dedup_key(url)— 从微信文章 URL 提取biz|mid|idx|sn去重标识 api_article_summarize()— 先查去重,已有则返回status: "cached"+ 完整内容api_article_learn()— 同上- 新增
POST /api/articles/check-summaries— 批量查询 API 接受{urls: [{url, title}, ...], type: "summary"|"learn"|""}返回{results: {dedup_key: {id, content, ...}}, missing: [{url, title, dedup_key}]} - 日报生成 prompt 更新:告诉 hermes 子进程先调 check-summaries 查已有摘要
articles.html
- 页面加载后自动调用 check-summaries 批量查询缓存状态
- 已有摘要 → 按钮变灰 "✅ 已有摘要"
- 已学习 → 按钮变灰 "✅ 已学习"
- 点击已缓存文章弹窗提示无需重新生成
- 顶栏显示统计 "共 N 篇(已有摘要 X / 已学习 Y)"
二、群日报引用已有摘要 (B)
问题
生成群日报时,群里的所有文章都会重新抓取摘要, 即使之前在文章列表已经生成过。
改动
app.py — 日报生成 prompt (api_report_generate)
- 步骤 3 改为:先收集所有 URL → 调 check-summaries 批量查 → 已有摘要直接引用 → 只对新文章做摘要 → 新摘要通过 summarize API 写回 daily_reports 供下次复用
wechat-group-digest skill
- 新增 Article Summary Reuse API 文档
- Digest Pipeline 步骤 3 更新为摘要复用流程
三、图片原图查看
问题
聊天页面的图片只显示缩略图(th_<hash> 2-12KB),
点击放大还是缩略图,看不清。
发现
微信在 image2/XX/YY/<hash>.jpg 缓存了原图(56-123KB),
和缩略图 th_<hash> 在同一个目录下,但 _resolve_image_path
没有搜索 .jpg 扩展名。
改动
app.py — _resolve_image_path
- 优先搜索
<hash>.jpg→<hash>.png→<hash>(无扩展名) →th_<hash> - 找到原图则返回原图路径,找不到才回退缩略图
chat.html
- 图片缩略图仍用
/media/image(自动选原图如果存在) - 点击弹窗改用
/media/image/full(显式请求最佳版本)
四、其他修复
app.py完全重建(因 patch 操作导致 f-string 语法错误 + 文件截断)- 清理了
/api/articles/generate-image破损路由 local_db.py重建(修复 ALTER TABLE + 多行字符串断裂)- 移除
_su_stat未使用的导入
备份文件
| 文件 | 路径 |
|---|---|
| app.py | ~/backup/2026-07-08/app.py |
| local_db.py | ~/backup/2026-07-08/local_db.py |
| articles.html | ~/backup/2026-07-08/articles.html |
| chat.html | ~/backup/2026-07-08/chat.html |
| config.py | ~/backup/2026-07-08/config.py |
| wechat_db.py | ~/backup/2026-07-08/wechat_db.py |
| restart.sh | ~/backup/2026-07-08/restart.sh |
| wechat-group-digest skill | ~/backup/2026-07-08/skills/wechat-group-digest.md |
| wechat-web-viewer skill | ~/backup/2026-07-08/skills/wechat-web-viewer.md |