51 lines
2.8 KiB
Markdown
51 lines
2.8 KiB
Markdown
# 2026-05-27 工作日志
|
||
|
||
## 用户反馈同步故障排查与修复 [刘新玉反馈]
|
||
|
||
### 问题
|
||
5月26日飞书/微信用户反馈定时任务出现回写失败。
|
||
|
||
### 根因
|
||
1. **Python 缓存过期** — `ai_summarize_feedback.py` 中 `subprocess` 模块导入失败(`NameError: name 'subprocess' is not defined`),实际源码有 `import subprocess`,但 `__pycache__` 中的旧 `.pyc` 未包含此导入
|
||
2. **sync_wechat_feedback.py** — 同样因缓存问题导致 `with open(tmp_md)` 写入失败
|
||
|
||
### 修复
|
||
- 清理了工作区内所有 `__pycache__` 和 `.pyc` 文件
|
||
- 重新执行飞书 AI 归纳回写:`sync_feishu_feedback.py --date 2026-05-26 --apply-ai`
|
||
- 重新执行微信 AI 归纳回写:`sync_wechat_feedback.py --date 2026-05-26 --apply-ai`
|
||
- 两个渠道均成功回写并分发到「小葵小葵」群
|
||
|
||
### 分发架构确认
|
||
| 渠道 | 10:00/10:02 Wrapper | 10:05/10:07 AI 归纳 |
|
||
|------|---------------------|---------------------|
|
||
| 飞书 | `--dispatch-mode all` → 分发占位符 | `--apply-ai` → 替换占位符+重新分发 |
|
||
| 微信 | `--skip-dispatch` → 不分发 | `--apply-ai` → 替换占位符+分发 |
|
||
|
||
微信依赖 AI 归纳成功才能分发,飞书双重分发(占位符+AI)。
|
||
|
||
### 5月26日反馈概况
|
||
- 飞书:17条消息,3个问题簇(2个有效:录音识别率低、飞船音乐不保存)
|
||
- 微信:27条消息,14个问题簇(4个有效:飞船音乐、录音识别、音频无法播放、AI回复无关语句)
|
||
|
||
### 后续注意
|
||
- 删除/修改 `ai_summarize_feedback.py` 后需清理 `__pycache__`,否则缓存版本可能落后于源码
|
||
|
||
## P0 实时检测去重修复 [刘新玉反馈]
|
||
|
||
### 问题
|
||
微信 `detect_p0_wechat.py` 每分钟扫描最近120分钟消息,同一个问题因讨论线程持续生长,`sort_threads` 聚类每次产生不同消息集合,导致:
|
||
- 不同次的聚类有不同的 `cluster_signature`(基于 `sorted(message_ids)` MD5)
|
||
- 去重完全失效,同一问题被重复推送(今天2个真实问题各推了3次 = 6次)
|
||
|
||
### 修复
|
||
在 `detect_p0_wechat.py` 和 `detect_p0_realtime.py` 中增加**内容语义去重**:
|
||
1. 新增 `cluster_content_fingerprint()`:拼接簇内前5条有意义消息作为内容指纹 + 发送人集合 + 小时粒度时间窗口
|
||
2. 新增 `is_duplicate_p0()`:基于内容相似度(Jaccard)+ 发送人重叠 + 时间窗口三层判断
|
||
- 同小时 + 发送人交集 + 内容相似度 > 0.20 → 重复
|
||
- 发送人高度重叠(≥2) + 内容相似度 > 0.35 → 跨小时重复
|
||
3. 状态文件改为 `{"time": ..., "fp": {...}}` 格式存储指纹信息
|
||
4. 飞书 P0 检测器同步修复
|
||
|
||
### 测试验证
|
||
360分钟窗口测试:同一话题在不同扫描窗口下签名不同(c69d... vs 70a4...),但内容指纹正确识别为重复(相似度 0.462,is_duplicate=True)
|