202 lines
11 KiB
Markdown
202 lines
11 KiB
Markdown
# 2026-05-22 工作日志
|
||
|
||
## 刘新玉 - 反馈调度链路优化
|
||
|
||
### AI 归纳质量修复
|
||
- **DeepSeek 返回空根因**:`max_tokens: 256` 被 v4-pro 推理(reasoning)全部消耗,实际输出 token=0。修复:`max_tokens` 改为 `1024`
|
||
- **空描述回退**:在 `ai_summarize_feedback.py` 的 `generate_descriptions()` 中新增 `generate_fallback_description()`,AI 返回空时回退到关键词规则生成(import `sync_feishu_feedback` 的 `extract_location_elements` + `generate_problem_description`)
|
||
- **修复后效果**:4 个簇全部 AI 生成,质量对比规则版提升显著(见下方对照表)
|
||
|
||
### 2026-05-21 数据修复后的效果对照
|
||
| 簇 | 规则版(10:00 群聊) | AI 版(修复后) |
|
||
|----|---------------------|----------------|
|
||
| #1 (27条) | "在关卡4-4,组件数据丢失" | "U13-4的听力选择题型缺少重点句配置" |
|
||
| #2 (9条) | "媒体文件: a8c55e4a3670.png" | "项目中音频文件se_Spaceship_TV_Food存在ogg和mp3格式重名" |
|
||
| #3 (4条) | "如果一定要删除一个的话" | "游戏音效存在ogg和mp3两个文件,实际播放调用mp3" |
|
||
| #4 (2条) | "图片 (1/1)" | "无明确问题" |
|
||
|
||
### 新调度流程(明天 5/23 生效)
|
||
```
|
||
10:00 → sync(步骤1-6) + 保存 context.json + 生成占位符文档 ❌不分发
|
||
10:05 → DeepSeek 归纳 → 回写文档 → 📨分发到小葵小葵群
|
||
```
|
||
|
||
### "今日问题拆解"逻辑梳理
|
||
刘新玉查看了文档效果,分析了三个关键生成逻辑:
|
||
1. **聚类 (sort_threads)**:Union-Find 算法,直接引用+推断引用。当前问题:簇#1 27条消息多个不同话题被合并
|
||
2. **结论提取 (extract_conclusion)**:关键词匹配("已修复"→已修复,"设计如此"→非问题等)。当前问题:簇#1 多个子问题被一个结论覆盖
|
||
3. **发言人标记**:🚩 标记首条消息发送者,✅ 标记末条消息发送者。多子问题长对话时标记不准
|
||
|
||
### 已知待优化问题
|
||
1. 簇 #1 话题混杂(U13知识点 + 音频跟读 + Spine bug)
|
||
2. 簇 #2 和 #3 本质是同一问题(ogg/mp3重名),被拆成两个簇
|
||
3. 结论提取用关键词导致"设计如此"覆盖了不同子问题的结论
|
||
4. 刘新玉尚未给出具体优化方向
|
||
|
||
### 修改的文件
|
||
- `/root/.openclaw/workspace-xiaokui/scripts/ai_summarize_feedback.py` — max_tokens 256→1024,新增 generate_fallback_description,import sync_feishu_feedback 用于回退
|
||
- `/root/.openclaw/workspace-xiaokui/scripts/sync_feishu_feedback_wrapper.sh` — 10:00 任务改为 --ai-placeholders --skip-dispatch
|
||
- `/root/.openclaw/workspace-xiaokui/skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` — --apply-ai 回写成功后新增 dispatch_summary_to_chat 分发
|
||
# 2026-05-22 工作日志
|
||
|
||
## 刘新玉 - 反馈调度链路优化
|
||
|
||
### AI 归纳质量修复
|
||
- **DeepSeek 返回空根因**:`max_tokens: 256` 被 v4-pro 推理(reasoning)全部消耗,实际输出 token=0。修复:`max_tokens` 改为 `1024`
|
||
- **空描述回退**:在 `ai_summarize_feedback.py` 的 `generate_descriptions()` 中新增 `generate_fallback_description()`,AI 返回空时回退到关键词规则生成(import `sync_feishu_feedback` 的 `extract_location_elements` + `generate_problem_description`)
|
||
- **修复后效果**:4 个簇全部 AI 生成,质量对比规则版提升显著(见下方对照表)
|
||
|
||
### 2026-05-21 数据修复后的效果对照
|
||
| 簇 | 规则版(10:00 群聊) | AI 版(修复后) |
|
||
|----|---------------------|----------------|
|
||
| #1 (27条) | "在关卡4-4,组件数据丢失" | "U13-4的听力选择题型缺少重点句配置" |
|
||
| #2 (9条) | "媒体文件: a8c55e4a3670.png" | "项目中音频文件se_Spaceship_TV_Food存在ogg和mp3格式重名" |
|
||
| #3 (4条) | "如果一定要删除一个的话" | "游戏音效存在ogg和mp3两个文件,实际播放调用mp3" |
|
||
| #4 (2条) | "图片 (1/1)" | "无明确问题" |
|
||
|
||
### 新调度流程(明天 5/23 生效)
|
||
```
|
||
10:00 → sync(步骤1-6) + 保存 context.json + 生成占位符文档 ❌不分发
|
||
10:05 → DeepSeek 归纳 → 回写文档 → 📨分发到小葵小葵群
|
||
```
|
||
|
||
### "今日问题拆解"逻辑梳理
|
||
刘新玉查看了文档效果,分析了三个关键生成逻辑:
|
||
1. **聚类 (sort_threads)**:Union-Find 算法,直接引用+推断引用。当前问题:簇#1 27条消息多个不同话题被合并
|
||
2. **结论提取 (extract_conclusion)**:关键词匹配("已修复"→已修复,"设计如此"→非问题等)。当前问题:簇#1 多个子问题被一个结论覆盖
|
||
3. **发言人标记**:🚩 标记首条消息发送者,✅ 标记末条消息发送者。多子问题长对话时标记不准
|
||
|
||
### 已知待优化问题
|
||
1. 簇 #1 话题混杂(U13知识点 + 音频跟读 + Spine bug)
|
||
2. 簇 #2 和 #3 本质是同一问题(ogg/mp3重名),被拆成两个簇
|
||
3. 结论提取用关键词导致"设计如此"覆盖了不同子问题的结论
|
||
4. 刘新玉尚未给出具体优化方向
|
||
|
||
### 修改的文件
|
||
- `/root/.openclaw/workspace-xiaokui/scripts/ai_summarize_feedback.py` — max_tokens 256→1024,新增 generate_fallback_description,import sync_feishu_feedback 用于回退
|
||
- `/root/.openclaw/workspace-xiaokui/scripts/sync_feishu_feedback_wrapper.sh` — 10:00 任务改为 --ai-placeholders --skip-dispatch
|
||
- `/root/.openclaw/workspace-xiaokui/skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` — --apply-ai 回写成功后新增 dispatch_summary_to_chat 分发
|
||
|
||
## 刘新玉 - 聚类/结论/发言人三项优化(5/22 上午)
|
||
|
||
### 聚类优化
|
||
- **内容相似度校验**:`infer_missing_references` 策略2(同发送者)和策略3(最近不同发送者)加入 `content_similarity()` 校验,低于 `SIMILARITY_FLOOR=0.08` 不建立推断引用
|
||
- **超大簇拆分**:新增 `split_oversized_clusters()`,对超过 `MAX_CLUSTER_MSGS=15` 条的簇按相邻消息内容相似度找边界拆分
|
||
- **相似度算法**:中文2字以上词 + 英文3字以上词的 Jaccard 系数,过滤停用词(收到/好的/明白等)
|
||
- **拆分层数限制**:最多拆3次,每段至少3条消息,以 sender 切换 + 相似度 < 0.05 为边界
|
||
|
||
### 结论提取优化
|
||
- `extract_conclusion` 对 >8 条消息的簇改为聚焦后 30% 消息(至少3条),避免前面无关结论污染
|
||
|
||
### 发言人标记优化
|
||
- `summarize_cluster` 新增 `is_topic_initiator()` 检测函数,识别话题切换点并用 📌 标记多话题发起者
|
||
- 判定逻辑:非首发言人、非简单回复(屏蔽"好的/收到/OK"等)、发送者切换、含问题特征关键词
|
||
|
||
### 2026-05-21 回归验证结果
|
||
| 指标 | 优化前 | 优化后 |
|
||
|------|--------|--------|
|
||
| 簇数 | 4 | 7 |
|
||
| 最大簇 | 27条 | 12条 |
|
||
| ogg/mp3 问题 | 拆成2个簇 | 合并为1个簇 ✅ |
|
||
| Spine bug | 混在U13里丢失 | 独立为簇 #7 ✅ |
|
||
| U13知识点 | 和音频/Spline混 | 独立为簇 #2 + #4 ✅ |
|
||
|
||
### 新增常量/函数
|
||
- `SIMILARITY_FLOOR = 0.08`、`MAX_CLUSTER_MSGS = 15`
|
||
- `content_similarity(text1, text2)`、`split_oversized_clusters(clusters_dict)`、`is_topic_initiator(prev_name, name, text)`
|
||
- 修改:`infer_missing_references()`、`extract_conclusion()`、`summarize_cluster()`、`sort_threads()`
|
||
|
||
## 刘新玉 - 分发文档链接修复(5/22 11:20)
|
||
|
||
### 问题
|
||
分发到小葵小葵群的文档链接硬编码为总文档 `RaL6whoYMijyYHkSlWrc7OLLnBy`,而非当天子文档
|
||
|
||
### 修复
|
||
- `dispatch_summary_to_chat()` 新增 `doc_url` 参数
|
||
- `--apply-ai` 流程:从 `list_child_nodes()` 返回的 `nodes[title]["node_token"]` 构造链接
|
||
- `main()` 分发循环:同上,对每个 day 查 `list_child_nodes()` 获取对应 node_token
|
||
- 链接格式:`https://makee-interactive.feishu.cn/wiki/{node_token}`
|
||
|
||
## 刘新玉 - AI 描述人名脱敏(5/22 11:30)
|
||
|
||
### 问题
|
||
问题描述中包含员工姓名"江涛"
|
||
|
||
### 修复(两层防护)
|
||
1. **System Prompt** 新增规则6:严禁出现员工姓名,用"某角色/某员工"替代
|
||
2. **`strip_names(description, cluster_data)` 后处理**:
|
||
- 步骤1:从 cluster 提取发送者姓名,精确替换
|
||
- 步骤2:姓氏 + 1个中文字符模式匹配,排除内容词白名单(文件/资源/游戏/动画/设计等50+词)
|
||
- 替换为"相关人员"
|
||
|
||
### 修复效果(簇 #7)
|
||
| 修复前 | 修复后 |
|
||
|--------|--------|
|
||
| "角色江涛的spine动画中,眼睛设计应为睁开但实际显示为闭眼。" | "Spine动画中角色眼睛呈现闭眼状态,与设计不符。" |
|
||
## 刘新玉 - 反馈流程完整概览(5/22 12:00)
|
||
|
||
### 全链路三层架构
|
||
```
|
||
采集层 → 每5分钟(飞书群同步) / 每分钟(微信群导出+P0检测)
|
||
汇总层 → 每天 10:00(飞书) 10:02(微信) 聚类+归纳+写入知识库
|
||
AI层 → 每天 10:05(飞书) 10:07(微信) DeepSeek生成描述+回写+分发群聊
|
||
```
|
||
|
||
### 时间线
|
||
| 时间 | 飞书 | 微信 |
|
||
|------|------|------|
|
||
| 10:00 | sync_feishu_feedback (占位符,不分发) | — |
|
||
| 10:02 | — | sync_wechat_feedback (占位符,不分发) |
|
||
| 10:05 | ai_summarize_feedback (回写+分发) | — |
|
||
| 10:07 | — | ai_summarize_feedback --channel wechat (回写+分发) |
|
||
|
||
## 刘新玉 - 微信反馈同步系统搭建(5/22 下午)
|
||
|
||
### 背景
|
||
刘新玉要求微信用户反馈流程与飞书一致(收集→整理→归纳→分发),之前微信只有 MySQL 入库和每分钟同步到表格。
|
||
|
||
### 新增文件
|
||
- `scripts/sync_wechat_feedback.py` — 微信同步脚本,复用飞书所有逻辑(聚类/优先级/归纳/分发),仅替换数据源和文档目标
|
||
- `scripts/sync_wechat_feedback_wrapper.sh` — crontab wrapper
|
||
|
||
### 改动文件
|
||
- `skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` — `update_summary_doc_as_children()` 新增 `title_prefix` 参数,支持 "微信-" 前缀
|
||
- `scripts/ai_summarize_feedback.py` — 新增 `--channel wechat` 参数,支持微信专属上下文路径和回写脚本
|
||
|
||
### 微信数据映射
|
||
```
|
||
wechat_group_message → sync_wechat_feedback.fetch_wechat_data() → 统一元组格式
|
||
svr_msg_id → message_id (r[0])
|
||
sender_name → sender_name (r[1])
|
||
msg_type → msg_type (r[2])
|
||
content → content (r[3])
|
||
media_url → media_url (r[4])
|
||
refer_msg_svrid → quote_message_id (r[5])
|
||
msg_time → msg_time (r[6])
|
||
msg_timestamp → msg_timestamp (r[7])
|
||
```
|
||
|
||
### 知识库结构
|
||
| 文档 | node_token | 父文档 | 用途 |
|
||
|------|-----------|--------|------|
|
||
| 飞书问题反馈 | FOxgwkVtLiTl3ZkrkIXcT8T2nJg | SB3dwaSshie7ifklKlLc2GswnqX | 飞书原始数据 |
|
||
| 微信问题反馈 | R4HRwNU42iwH1Hk3OMCcB6i7n1u | SB3dwa... | 微信原始数据 |
|
||
| 飞书用户反馈问题汇总 | RaL6whoYMijyYHkSlWrc7OLLnBy | SB3dwa... | 飞书每日归纳 |
|
||
| 微信用户反馈问题汇总 | XhtGwjitFizzCNkw8Xzc2IXsnuf | SB3dwa... | 微信每日归纳 |
|
||
|
||
### 飞书表格
|
||
| 表格 | sheet token | 用途 |
|
||
|------|-------------|------|
|
||
| 内容测试问题反馈 | AHtnsehwShUVyDtjasSciIvgn7b | 飞书导出 |
|
||
| 用户救火群 | RUXfsytPzhJO5kt2uwCcvdIgnLg | 微信导出 |
|
||
|
||
### WeChat 2026-05-21 测试结果
|
||
- 62 条消息 → 28 个初始簇 → 10 个有效簇(≥2条)
|
||
- P0: 3 个(阅读问题、发音问题)— 自动判定正常
|
||
- AI 归纳 dry-run 通过,占位符替换逻辑正确
|
||
|
||
### 待确认
|
||
- 微信 crontab 条目是否已添加 ✅ 全部就位
|
||
- 微信父文档 `XhtGwjitFizzCNkw8Xzc2IXsnuf` 下子文档创建权限 ✅ 已验证
|
||
- 飞书总文档名称是否需要更新为 "飞书用户反馈问题汇总"(当前显示为 "用户反馈问题汇总")
|