auto backup 2026-05-27 08:10:02
This commit is contained in:
parent
14d7a4ac63
commit
179c6d95e4
@ -14,4 +14,4 @@ user-feedback-collector c0320451bf7ea0ce3d8ceaa603ae0a7b55c373c048363a5142258a4c
|
||||
user-feedback-data-source a95eb9142f3019fd193c46f89147dc7e0bf01dfe250202565a86f8bc52f37b13
|
||||
user-feedback-processor 61783a8e9f03a973c187b359a87749ad1993dc71f8364b0a853d8b3ff64c75e8
|
||||
feishu-group-msg-sync 1b581de76d419e6a33db0836125efc16ef2c972013fcae6f08c03aa7e2276445
|
||||
feishu-feedback-sync f00631ca2f9ed68c139b6dd0b08992bc937576db27c001aac72a3edb3a2e108e
|
||||
feishu-feedback-sync 9c9ca1f0c42a289e037289cd394299b7debf7e240d3b30429899da42b601d953
|
||||
|
||||
@ -1 +1 @@
|
||||
1647
|
||||
1674
|
||||
|
||||
@ -19,3 +19,5 @@
|
||||
{"type":"memory.recall.recorded","timestamp":"2026-05-25T02:22:57.258Z","query":"小葵小葵群 问题反馈 发送消息 定时任务 5月23日","resultCount":1,"results":[{"path":"memory/2026-04-18.md","startLine":1,"endLine":5,"score":1}]}
|
||||
{"type":"memory.recall.recorded","timestamp":"2026-05-25T02:22:57.259Z","query":"crontab 定时 上午10点 反馈 群发","resultCount":5,"results":[{"path":"memory/2026-05-21.md","startLine":58,"endLine":77,"score":1},{"path":"memory/2026-05-09.md","startLine":17,"endLine":37,"score":1},{"path":"memory/2026-05-21.md","startLine":35,"endLine":64,"score":1},{"path":"memory/2026-05-21.md","startLine":1,"endLine":26,"score":1},{"path":"memory/2026-05-21.md","startLine":22,"endLine":42,"score":1}]}
|
||||
{"type":"memory.recall.recorded","timestamp":"2026-05-25T07:11:25.527Z","query":"微信反馈 全链路 cron 采集 整理 归纳 分发","resultCount":3,"results":[{"path":"memory/2026-05-25.md","startLine":21,"endLine":42,"score":1},{"path":"memory/2026-05-25.md","startLine":38,"endLine":44,"score":1},{"path":"memory/2026-05-22.md","startLine":129,"endLine":158,"score":1}]}
|
||||
{"type":"memory.recall.recorded","timestamp":"2026-05-26T03:40:13.634Z","query":"微信飞书问题汇总 小葵小葵群 发送汇总","resultCount":3,"results":[{"path":"memory/2026-05-25.md","startLine":21,"endLine":42,"score":1},{"path":"memory/2026-05-25.md","startLine":38,"endLine":44,"score":1},{"path":"memory/2026-05-22.md","startLine":129,"endLine":158,"score":1}]}
|
||||
{"type":"memory.recall.recorded","timestamp":"2026-05-26T03:40:24.708Z","query":"小葵小葵群 chat_id 分发消息群","resultCount":1,"results":[{"path":"memory/2026-04-18.md","startLine":1,"endLine":5,"score":1}]}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 1,
|
||||
"updatedAt": "2026-05-25T07:11:25.527Z",
|
||||
"updatedAt": "2026-05-26T03:40:24.708Z",
|
||||
"entries": {
|
||||
"memory:memory/2026-04-18.md:1:5": {
|
||||
"key": "memory:memory/2026-04-18.md:1:5",
|
||||
@ -9,26 +9,28 @@
|
||||
"endLine": 5,
|
||||
"source": "memory",
|
||||
"snippet": "# 2026-04-18 工作日志 ## 术语共识 [李若松确认] 术语「飞书反馈消息数据库」默认指代用户反馈收集技能中的飞书内部测试反馈MySQL数据表 `vala_test.lark_group_message`,存储「内容测试问题反馈」群(oc_fabff7672e62a9ced7b326ee4a286c26)的同步消息数据。",
|
||||
"recallCount": 6,
|
||||
"recallCount": 7,
|
||||
"dailyCount": 0,
|
||||
"groundedCount": 0,
|
||||
"totalScore": 6,
|
||||
"totalScore": 7,
|
||||
"maxScore": 1,
|
||||
"firstRecalledAt": "2026-04-30T03:47:21.989Z",
|
||||
"lastRecalledAt": "2026-05-25T02:22:57.258Z",
|
||||
"lastRecalledAt": "2026-05-26T03:40:24.708Z",
|
||||
"queryHashes": [
|
||||
"353f9765c086",
|
||||
"a6b740c99377",
|
||||
"9625ed0029fd",
|
||||
"f865295b9ac7",
|
||||
"42fe8210f22c",
|
||||
"81f7a2647922"
|
||||
"81f7a2647922",
|
||||
"261597c52d5b"
|
||||
],
|
||||
"recallDays": [
|
||||
"2026-04-30",
|
||||
"2026-05-06",
|
||||
"2026-05-07",
|
||||
"2026-05-25"
|
||||
"2026-05-25",
|
||||
"2026-05-26"
|
||||
],
|
||||
"conceptTags": [
|
||||
"vala-test.lark-group-message",
|
||||
@ -887,18 +889,20 @@
|
||||
"endLine": 42,
|
||||
"source": "memory",
|
||||
"snippet": "- `update_summary_doc_as_children()` 默认 title_prefix 从 `\"\"` 改为 `\"飞书-\"` - `create_child_doc()` 日期提取兼容 `飞书-` / `微信-` 前缀 - `dispatch_summary_to_chat()` 消息标题和链接同步更新 - `get_today_doc_obj_token()`、`--apply-ai` 路径、步骤7分发 的标题格式全部更新 ### 补跑历史数据 - 飞书 5/22(3条)、5/23(1条)AI归纳回写成功 + 自动分发到群聊 - 飞书 5/24:当天无飞书群新数据,跳过 - 微信 5/22(23条)、5/23(13条)、5/24(29条)AI归纳回写成功 + 自动分发 ### 知识库文档重命名 - 13个飞书历史文档(5/6-5/23)从 `{date} 问题反馈` 重命名为 `飞书-{date} 用户反馈问题归纳` ## 新增逻辑:飞书/微信文档标题渠道区分 - [刘新玉需求] 飞书文档标题加 `飞书-` 前缀以便与微信区分 - 飞书格式:`飞书-{date} 用户反馈问题归纳` - 微信格式:保持 `微信-{date} 问题反馈`(由 `sync_wechat_feedback.py` 传入 `title_prefix=\"微信-\"`) - `update_summary_doc_as_children()` 默认 `title_prefix=\"飞书-\"`,微信调用时显式覆盖为 `\"微信-\"` - `create_child_doc()` 日期提取已兼",
|
||||
"recallCount": 1,
|
||||
"recallCount": 2,
|
||||
"dailyCount": 0,
|
||||
"groundedCount": 0,
|
||||
"totalScore": 1,
|
||||
"totalScore": 2,
|
||||
"maxScore": 1,
|
||||
"firstRecalledAt": "2026-05-25T07:11:25.527Z",
|
||||
"lastRecalledAt": "2026-05-25T07:11:25.527Z",
|
||||
"lastRecalledAt": "2026-05-26T03:40:13.634Z",
|
||||
"queryHashes": [
|
||||
"1e9d4a024a31"
|
||||
"1e9d4a024a31",
|
||||
"442660038a9b"
|
||||
],
|
||||
"recallDays": [
|
||||
"2026-05-25"
|
||||
"2026-05-25",
|
||||
"2026-05-26"
|
||||
],
|
||||
"conceptTags": [
|
||||
"update-summary-doc-as-children",
|
||||
@ -918,18 +922,20 @@
|
||||
"endLine": 44,
|
||||
"source": "memory",
|
||||
"snippet": "- `update_summary_doc_as_children()` 默认 `title_prefix=\"飞书-\"`,微信调用时显式覆盖为 `\"微信-\"` - `create_child_doc()` 日期提取已兼容两种前缀(strip `飞书-` 或 `微信-` 再解析) ## 注意事项 - 今天(5/25)的反馈数据将在明天 10:00 正常走全流程 - `ai_summarize_feedback.py` 中 `apply_descriptions` 修复后需注意:微信渠道需要 `--date` 参数,飞书渠道 `--date` 可选",
|
||||
"recallCount": 1,
|
||||
"recallCount": 2,
|
||||
"dailyCount": 0,
|
||||
"groundedCount": 0,
|
||||
"totalScore": 1,
|
||||
"totalScore": 2,
|
||||
"maxScore": 1,
|
||||
"firstRecalledAt": "2026-05-25T07:11:25.527Z",
|
||||
"lastRecalledAt": "2026-05-25T07:11:25.527Z",
|
||||
"lastRecalledAt": "2026-05-26T03:40:13.634Z",
|
||||
"queryHashes": [
|
||||
"1e9d4a024a31"
|
||||
"1e9d4a024a31",
|
||||
"442660038a9b"
|
||||
],
|
||||
"recallDays": [
|
||||
"2026-05-25"
|
||||
"2026-05-25",
|
||||
"2026-05-26"
|
||||
],
|
||||
"conceptTags": [
|
||||
"update-summary-doc-as-children",
|
||||
@ -949,18 +955,20 @@
|
||||
"endLine": 158,
|
||||
"source": "memory",
|
||||
"snippet": "- 步骤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 下午) ### 背景 刘新玉要求微信用户反馈流程与飞书一致(收集→整理→归纳→分发),之前微信只有 M",
|
||||
"recallCount": 1,
|
||||
"recallCount": 2,
|
||||
"dailyCount": 0,
|
||||
"groundedCount": 0,
|
||||
"totalScore": 1,
|
||||
"totalScore": 2,
|
||||
"maxScore": 1,
|
||||
"firstRecalledAt": "2026-05-25T07:11:25.527Z",
|
||||
"lastRecalledAt": "2026-05-25T07:11:25.527Z",
|
||||
"lastRecalledAt": "2026-05-26T03:40:13.634Z",
|
||||
"queryHashes": [
|
||||
"1e9d4a024a31"
|
||||
"1e9d4a024a31",
|
||||
"442660038a9b"
|
||||
],
|
||||
"recallDays": [
|
||||
"2026-05-25"
|
||||
"2026-05-25",
|
||||
"2026-05-26"
|
||||
],
|
||||
"conceptTags": [
|
||||
"文件/资源/游戏/动画/设计等50",
|
||||
|
||||
40
memory/2026-05-26.md
Normal file
40
memory/2026-05-26.md
Normal file
@ -0,0 +1,40 @@
|
||||
# 2026-05-26 工作日志
|
||||
|
||||
## 刘新玉 - 微信/飞书问题汇总分发排查与修复
|
||||
|
||||
### 问题
|
||||
刘新玉询问是否向"小葵小葵"群发送了昨天(5/25)的问题汇总。
|
||||
|
||||
### 排查结果
|
||||
- **飞书 5/25**:「内容测试问题反馈」群昨天无新消息,飞书 crontab 10:00 输出 `✅ 无新数据,无需同步`,无需分发
|
||||
- **微信 5/25**:数据库有 17 条消息,但大部分是单条消息,仅 1 个有效簇(≥2条),AI 归纳为"无明确问题",属于无效反馈
|
||||
|
||||
### 修复的 Bug(均在本次会话中修复)
|
||||
|
||||
**Bug 1:`sync_wechat_feedback.py` 文档标题不匹配**
|
||||
- 文件:`scripts/sync_wechat_feedback.py`
|
||||
- 问题:`--apply-ai` 路径搜索子文档时标题为 `微信-{date} 问题反馈`,但实际创建的是 `微信-{date} 用户反馈问题归纳`,导致创建后找不到文档
|
||||
- 修复:两处标题改为 `微信-{date} 用户反馈问题归纳`(apply-ai 路径 + 步骤7分发路径)
|
||||
|
||||
**Bug 2:`dispatch_summary_to_chat` 标题前缀**
|
||||
- 文件:`skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py`
|
||||
- 问题:title 硬编码 `飞书-{day_label}`,微信调用时 day_label 已含 `微信-` 前缀,导致出现 `飞书-微信-{date}` 双重前缀
|
||||
- 修复:检测 day_label 是否已含前缀,已含则复用,否则加 `飞书-`
|
||||
|
||||
**Bug 3:姓名脱敏正则误伤**
|
||||
- 文件:`scripts/ai_summarize_feedback.py`
|
||||
- 问题:`strip_names()` 中 `[姓][一-鿿]` 匹配过于宽泛,致 `程序`→`相关人员`、`常完`→`相关人员`,破坏正常描述
|
||||
- 修复:content_words 排除词扩充(程序、方式、正常、完成、加载、原生等)
|
||||
|
||||
**Bug 4:过滤后空消息仍发送**
|
||||
- 文件:`skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py`
|
||||
- 问题:`dispatch_summary_to_chat` 过滤 `- 无明确问题` 后,若只剩标题无实质条目,仍会发送空消息
|
||||
- 修复:增加 `has_items` 检查,无 `- ` 开头的内容行则不发送
|
||||
|
||||
### 操作记录
|
||||
- 手动补跑微信 5/25 apply-ai 回写知识库
|
||||
- 撤回小葵小葵群中两条无效消息(`om_x100b6e653633aca4b268daf5d0579e7`、`om_x100b6e65e7cb90b8b3d97c2a9fc5f07`)
|
||||
|
||||
### 刘新玉指令(12:03)
|
||||
- 确认记住今天的变动
|
||||
- 明确规则:微信反馈中"无明确问题"的簇不分发到小葵小葵群
|
||||
@ -0,0 +1,9 @@
|
||||
{
|
||||
"date": "2026-05-25",
|
||||
"descriptions": [
|
||||
{
|
||||
"index": 1,
|
||||
"description": "无明确问题"
|
||||
}
|
||||
]
|
||||
}
|
||||
69
output/daily_feedback/ai_descriptions_wechat_2026-05-25.json
Normal file
69
output/daily_feedback/ai_descriptions_wechat_2026-05-25.json
Normal file
@ -0,0 +1,69 @@
|
||||
{
|
||||
"date": "2026-05-25",
|
||||
"descriptions": [
|
||||
{
|
||||
"index": 1,
|
||||
"description": "APP端磨耳朵功能存在较多适配问题。"
|
||||
},
|
||||
{
|
||||
"index": 2,
|
||||
"description": "无明确问题"
|
||||
},
|
||||
{
|
||||
"index": 3,
|
||||
"description": "在L2S2U14第五节课知识巩固环节,从第一题开始持续播放警报声。"
|
||||
},
|
||||
{
|
||||
"index": 4,
|
||||
"description": "用户反馈进入关卡时出现闪退。"
|
||||
},
|
||||
{
|
||||
"index": 5,
|
||||
"description": "无明确问题"
|
||||
},
|
||||
{
|
||||
"index": 6,
|
||||
"description": "无明确问题"
|
||||
},
|
||||
{
|
||||
"index": 7,
|
||||
"description": "无明确问题"
|
||||
},
|
||||
{
|
||||
"index": 8,
|
||||
"description": "学而思平板在第四单元第四节中,孩子回答正确后系统仍持续提示重新做,无法正常完成。"
|
||||
},
|
||||
{
|
||||
"index": 9,
|
||||
"description": "无明确问题"
|
||||
},
|
||||
{
|
||||
"index": 10,
|
||||
"description": "无明确问题"
|
||||
},
|
||||
{
|
||||
"index": 11,
|
||||
"description": "小程序熏听播放时声音断断续续"
|
||||
},
|
||||
{
|
||||
"index": 12,
|
||||
"description": "无明确问题"
|
||||
},
|
||||
{
|
||||
"index": 13,
|
||||
"description": "H5端无法调用小程序原生音频API和后台托管能力"
|
||||
},
|
||||
{
|
||||
"index": 14,
|
||||
"description": "无明确问题"
|
||||
},
|
||||
{
|
||||
"index": 15,
|
||||
"description": "采用webview加载方式导致内存消耗大"
|
||||
},
|
||||
{
|
||||
"index": 16,
|
||||
"description": "无明确问题"
|
||||
}
|
||||
]
|
||||
}
|
||||
36
output/daily_feedback/cluster_context_2026-05-25.json
Normal file
36
output/daily_feedback/cluster_context_2026-05-25.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"date": "2026-05-25",
|
||||
"total_clusters": 1,
|
||||
"clusters": [
|
||||
{
|
||||
"index": 1,
|
||||
"cluster_id": "7499191672818531430",
|
||||
"location": {
|
||||
"端": "未知",
|
||||
"环节": "未知",
|
||||
"课程": "",
|
||||
"角色/组件": ""
|
||||
},
|
||||
"priority": "P2",
|
||||
"priority_detail": "",
|
||||
"category": "其他问题",
|
||||
"conclusion": "**当前问题排查结论:** 暂无结论排查中",
|
||||
"messages": [
|
||||
{
|
||||
"sender": "一_FVision",
|
||||
"content": "[表情]",
|
||||
"msg_type": "sticker",
|
||||
"media_url": "",
|
||||
"time": "2026-05-25 19:40:10"
|
||||
},
|
||||
{
|
||||
"sender": "瓦拉英语-露露班班(早10晚7)",
|
||||
"content": "[表情]",
|
||||
"msg_type": "sticker",
|
||||
"media_url": "",
|
||||
"time": "2026-05-25 19:40:24"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
output/daily_feedback/飞书反馈_2026-05-26.xlsx
Normal file
BIN
output/daily_feedback/飞书反馈_2026-05-26.xlsx
Normal file
Binary file not shown.
@ -175,6 +175,10 @@ def strip_names(text, cluster=None):
|
||||
'注册','打开','关闭','更新','调试','运行','启动','停止',
|
||||
'通过','失败','成功','完成','开始','结束','使用','操作',
|
||||
'调整','优化','修改','增加','删除','添加','移除','切换',
|
||||
'程序','方式','相关','进入','平板','第四','单元','原生',
|
||||
'声音','断断','续续','后台','托管','无法','熏听','加载',
|
||||
'消耗','容器','时候','较多','知识','巩固','环节','第一',
|
||||
'播放','警报','正确','系统','操作','权限','人员','内核',
|
||||
}
|
||||
def _replace(m):
|
||||
name = m.group(0)
|
||||
|
||||
@ -187,7 +187,7 @@ def main():
|
||||
print(f" 🔄 微信 #{old_idx}→#{new_idx}: {placeholder} → {desc[:50]}...")
|
||||
|
||||
# 回写知识库子文档
|
||||
title = f"微信-{date_str} 问题反馈"
|
||||
title = f"微信-{date_str} 用户反馈问题归纳"
|
||||
nodes = fsf.list_child_nodes()
|
||||
node_info = nodes.get(title, {})
|
||||
obj_token = node_info.get("obj_token")
|
||||
@ -287,7 +287,7 @@ def main():
|
||||
if do_summary and not args.skip_dispatch and not args.ai_placeholders:
|
||||
print(f"\n📨 微信步骤7:问题分发...")
|
||||
child_nodes = fsf.list_child_nodes()
|
||||
child_title = f"微信-{date_str} 问题反馈"
|
||||
child_title = f"微信-{date_str} 用户反馈问题归纳"
|
||||
child_info = child_nodes.get(child_title, {})
|
||||
child_nt = child_info.get("node_token", fsf.SUMMARY_PARENT_NODE)
|
||||
child_url = f"https://makee-interactive.feishu.cn/wiki/{child_nt}"
|
||||
|
||||
Binary file not shown.
@ -1434,8 +1434,10 @@ def dispatch_summary_to_chat(day_label, summary_text, p0_only=False, doc_url=Non
|
||||
归纳_lines.append(line)
|
||||
|
||||
归纳_content = "\n".join(归纳_lines).strip()
|
||||
if not 归纳_content:
|
||||
print(" ⚠️ 无归纳内容可分发")
|
||||
# 检查是否有实质问题描述(非纯标题/空段落)
|
||||
has_items = any(line.strip().startswith("- ") for line in 归纳_lines)
|
||||
if not 归纳_content or not has_items:
|
||||
print(" ⚠️ 无归纳内容可分发(已过滤无明确问题条目)")
|
||||
return False
|
||||
|
||||
# 检查是否有 P0 问题
|
||||
@ -1453,7 +1455,9 @@ def dispatch_summary_to_chat(day_label, summary_text, p0_only=False, doc_url=Non
|
||||
|
||||
# 构建富文本消息(post 格式)
|
||||
# P0 @跟在标题行后面,不放单独段落
|
||||
title = f"📋 飞书-{day_label} 用户反馈问题归纳"
|
||||
# day_label 可能已含前缀(如 "微信-2026-05-25"),避免重复前缀
|
||||
label_prefix = "" if day_label.startswith(("微信-", "飞书-")) else "飞书-"
|
||||
title = f"📋 {label_prefix}{day_label} 用户反馈问题归纳"
|
||||
|
||||
# 飞书 post 消息不支持 HTML 标签的 at,需要用富文本 tag
|
||||
# 把归纳内容按 P0/P1/P2/P3 段落拆分,P0 标题行后追加 at tag
|
||||
@ -1486,7 +1490,7 @@ def dispatch_summary_to_chat(day_label, summary_text, p0_only=False, doc_url=Non
|
||||
summary_doc_url = doc_url or f"https://makee-interactive.feishu.cn/wiki/{SUMMARY_PARENT_NODE}"
|
||||
content_parts.append([
|
||||
{"tag": "text", "text": "\n📄 详细文档:"},
|
||||
{"tag": "a", "text": f"飞书-{day_label} 用户反馈问题归纳", "href": summary_doc_url}
|
||||
{"tag": "a", "text": f"{label_prefix}{day_label} 用户反馈问题归纳", "href": summary_doc_url}
|
||||
])
|
||||
|
||||
post_content = json.dumps({
|
||||
|
||||
Loading…
Reference in New Issue
Block a user