From 7ea125c51e3363bc8c565075ef56d23adfed553c Mon Sep 17 00:00:00 2001 From: xiaoban Date: Mon, 1 Jun 2026 08:00:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=80=BB=E7=BB=93=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=2020260601?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 19 ++ logs/backup.log | 8 + memory/.dreams/events.jsonl | 3 + memory/.dreams/short-term-recall.json | 272 +++++++++++++++--- .../角色id_33943_导出时间_20260531.xlsx | Bin 0 -> 41114 bytes .../角色id_35000_导出时间_20260531.xlsx | Bin 0 -> 43346 bytes .../角色id_35946_导出时间_20260531.xlsx | Bin 0 -> 54203 bytes scripts/upload_server.py | 200 +++++++++++++ scripts/whisper_batch.py | 142 +++++++++ tmp_daily_summary.md | 3 + 10 files changed, 611 insertions(+), 36 deletions(-) create mode 100644 .env create mode 100644 output/角色id_33943_导出时间_20260531.xlsx create mode 100644 output/角色id_35000_导出时间_20260531.xlsx create mode 100644 output/角色id_35946_导出时间_20260531.xlsx create mode 100644 scripts/upload_server.py create mode 100644 scripts/whisper_batch.py create mode 100644 tmp_daily_summary.md diff --git a/.env b/.env new file mode 100644 index 0000000..3e56c67 --- /dev/null +++ b/.env @@ -0,0 +1,19 @@ +# MySQL测试环境 +MYSQL_HOST=bj-cdb-8frbdwju.sql.tencentcdb.com +MYSQL_PORT=25413 +MYSQL_USERNAME=read_only +MYSQL_PASSWORD=fdsfiidier^$*hjfdijjd232 + +# PostgreSQL线上环境 +PG_DB_HOST=bj-postgres-16pob4sg.sql.tencentcdb.com +PG_DB_PORT=28591 +PG_DB_USER=ai_member +PG_DB_PASSWORD=LdfjdjL83h3h3^$&**YGG* +PG_DB_DATABASE=vala + +# Elasticsearch线上环境 +ES_HOST=es-7vd7jcu9.public.tencentelasticsearch.com +ES_PORT=9200 +ES_SCHEME=https +ES_USER=elastic +ES_PASSWORD=F%?QDcWes7N2WTuiYD11 diff --git a/logs/backup.log b/logs/backup.log index a3c136a..88d4c6a 100644 --- a/logs/backup.log +++ b/logs/backup.log @@ -468,3 +468,11 @@ To https://git.valavala.com/ai_member_only/ai_member_xiaoban 338e2f6..d523814 master -> master [2026-05-30 08:10:01] 工作区备份成功:自动备份 2026-05-30 08:10:01 [2026-05-31 08:10:01] 开始备份工作区... +[master 88b4518] 自动备份 2026-05-31 08:10:01 + 2 files changed, 1 insertion(+), 3 deletions(-) + delete mode 100644 tmp_daily_summary.md +remote: . Processing 1 references +remote: Processed 1 references in total +To https://git.valavala.com/ai_member_only/ai_member_xiaoban + d523814..88b4518 master -> master +[2026-05-31 08:10:02] 工作区备份成功:自动备份 2026-05-31 08:10:01 diff --git a/memory/.dreams/events.jsonl b/memory/.dreams/events.jsonl index bc0297f..0ecdeb4 100644 --- a/memory/.dreams/events.jsonl +++ b/memory/.dreams/events.jsonl @@ -29,3 +29,6 @@ {"type":"memory.recall.recorded","timestamp":"2026-05-30T12:39:47.963Z","query":"小红书数据需求群 chat_id oc_ 群ID","resultCount":6,"results":[{"path":"memory/2026-05-28.md","startLine":74,"endLine":100,"score":1},{"path":"memory/2026-05-28.md","startLine":240,"endLine":266,"score":1},{"path":"memory/2026-05-28.md","startLine":432,"endLine":458,"score":1},{"path":"memory/2026-05-28.md","startLine":94,"endLine":127,"score":1},{"path":"memory/2026-05-28.md","startLine":260,"endLine":293,"score":1},{"path":"memory/2026-05-28.md","startLine":452,"endLine":485,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-05-30T14:07:53.580Z","query":"竞品 竞争对手 产品对比 市场分析","resultCount":2,"results":[{"path":"memory/2026-05-13.md","startLine":1,"endLine":16,"score":1},{"path":"memory/2026-05-24.md","startLine":66,"endLine":92,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-05-30T14:07:53.580Z","query":"competitor rival English learning kids education product","resultCount":1,"results":[{"path":"memory/2026-03-01.md","startLine":1,"endLine":11,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-05-31T23:25:36.480Z","query":"陈逸鸫 任务 进度 2026-05","resultCount":6,"results":[{"path":"memory/2026-05-28.md","startLine":504,"endLine":536,"score":1},{"path":"memory/2026-05-28.md","startLine":337,"endLine":366,"score":1},{"path":"memory/2026-05-28.md","startLine":74,"endLine":100,"score":1},{"path":"memory/2026-05-28.md","startLine":240,"endLine":266,"score":1},{"path":"memory/2026-05-28.md","startLine":432,"endLine":458,"score":1},{"path":"memory/2026-05-28.md","startLine":530,"endLine":557,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-05-31T23:25:36.480Z","query":"pipeline 数据 同步 cron 定时","resultCount":5,"results":[{"path":"memory/2026-05-28.md","startLine":704,"endLine":717,"score":1},{"path":"memory/2026-05-28.md","startLine":596,"endLine":624,"score":1},{"path":"memory/2026-05-28.md","startLine":1,"endLine":36,"score":1},{"path":"memory/2026-05-28.md","startLine":359,"endLine":394,"score":1},{"path":"memory/2026-05-28.md","startLine":122,"endLine":152,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-05-31T23:27:40.582Z","query":"视频 转译 翻译 评论 transcript 进度","resultCount":2,"results":[{"path":"memory/2026-05-28.md","startLine":641,"endLine":671,"score":1},{"path":"memory/2026-05-28.md","startLine":618,"endLine":649,"score":1}]} diff --git a/memory/.dreams/short-term-recall.json b/memory/.dreams/short-term-recall.json index 404979a..2aee190 100644 --- a/memory/.dreams/short-term-recall.json +++ b/memory/.dreams/short-term-recall.json @@ -1,6 +1,6 @@ { "version": 1, - "updatedAt": "2026-05-30T14:07:53.580Z", + "updatedAt": "2026-05-31T23:27:40.582Z", "entries": { "memory:memory/2026-05-24.md:1:30": { "key": "memory:memory/2026-05-24.md:1:30", @@ -476,20 +476,22 @@ "endLine": 152, "source": "memory", "snippet": "### 17:56 大麦查询输出表就绪 ✅ [陈逸鸫] 输出表 Token: `GCqNsqgzKhfQ5atFLnQcmLcGn4d`,Sheet: 查询快照 (`fd42b8`) - 实习虾 `cli_aa898f32d4799bea` 已分享编辑权限 - 写入验证通过 (revision 4) - env var: `XIAOBAN_QUERY_OUTPUT_TOKEN=GCqNsqgzKhfQ5atFLnQcmLcGn4d` - 同事查数结果 append `fd42b8!A:G`(请求时间/请求人/查询类型/cutoff/查询参数/结果摘要/备注) ### 17:48 5/27 日报推群成功 ✅ wrapper v0.4 实现 `im +messages-send`,推送 `message_id=om_x100b6eb54f9da0f4b115725198feede` ### 待办汇总 1. 📋 陈逸鸫发 `docs/xiaoban-data-boundary.md` §7 Agent 系统提示词 2. 📋 陈逸鸫发 `docs/xiaoban-runbook.md` §2 部署 checklist 3. 📋 建「大麦查询输出」飞书表 → 陈逸鸫提供 token 4. 📋 `~/xhs-tech-dashboard` 仓库 clone → 陈逸鸫提供访问方式 5. ⏳ 全量 pipeline 聚光步骤验证(子进程中) ### 18:30 Pipeline 全链路 dry-run 验证全部通过 [陈逸鸫] 收到微伴 xlsx,触发全链路 dry-r", - "recallCount": 2, + "recallCount": 3, "dailyCount": 0, "groundedCount": 0, - "totalScore": 2, + "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-28T12:30:30.129Z", - "lastRecalledAt": "2026-05-28T20:57:42.055Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", "queryHashes": [ "4596e377d39b", - "f139ebdae100" + "f139ebdae100", + "679cdd7bd3a8" ], "recallDays": [ "2026-05-28", - "2026-05-29" + "2026-05-29", + "2026-06-01" ], "conceptTags": [ "cli-aa898f32d4799bea", @@ -540,21 +542,23 @@ "endLine": 536, "source": "memory", "snippet": "| 2b | 客户主表 → 订单 | ✅ | 公式就绪 | | 3 | 日报 C1HVN2 | ✅ | 四段刷新 | | 3a/3c | 口径审计 | ✅ | 推群全过 | | 4a | 结算月汇总 | ✅ | 公式就绪 | **结论:当前表内所有数据与重拉完全一致,零差异,无需刷写。** ### 18:36 小溪行课触发实跑 - 已推 1920 条到小溪查询表(新 Sheet) - 已 @小溪 到小红书数据需求群,请处理 ~5 条待查询记录 - 表格:`RFIJsXT8FhGHhctY4RwczcOfnac` - 等待小溪回填后跑 `pull_xiaoxi_results.py` 回收结果 ### 18:50 PG 实时行课数据全量覆盖 [陈逸鸫确认] 不用等小溪回填那 5 条,直接用 PG `user_course_detail` 表实时数据覆盖: - 448 人有新进展(相比小溪历史快照) - pull → 3PRySY 口径对齐 12/12 ✅ - lesson_cache → C1HVN2 16 格 ✅ - 变化有限(PG=正式课,小溪=体验课,口径不同) - sync_base (4b) → 多维表格 8 张 ✅ 21.2s ### 18:54 漏斗看板发布待解决 - funnel HTML 已构建(scripts/build_funnel_dashboard.py ✅) - 妙搭发布 `apps +html-publish` 需要 `--as user`,bot 模式不支持 - 系统 lark-cli `/usr/local/lib/node_mod", - "recallCount": 4, + "recallCount": 5, "dailyCount": 0, "groundedCount": 0, - "totalScore": 4, + "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-28T20:51:03.908Z", - "lastRecalledAt": "2026-05-29T06:11:40.432Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", "queryHashes": [ "f22544a8757c", "2af907cea93d", "d9f1601110da", - "82be33d1f911" + "82be33d1f911", + "cf12fd62a5e5" ], "recallDays": [ - "2026-05-29" + "2026-05-29", + "2026-06-01" ], "conceptTags": [ "3a/3c", @@ -574,20 +578,22 @@ "endLine": 366, "source": "memory", "snippet": "- 448 人有新进展(相比小溪历史快照) - pull → 3PRySY 口径对齐 12/12 ✅ - lesson_cache → C1HVN2 16 格 ✅ - 变化有限(PG=正式课,小溪=体验课,口径不同) - sync_base (4b) → 多维表格 8 张 ✅ 21.2s ### 18:54 漏斗看板发布待解决 - funnel HTML 已构建(scripts/build_funnel_dashboard.py ✅) - 妙搭发布 `apps +html-publish` 需要 `--as user`,bot 模式不支持 - 系统 lark-cli `/usr/local/lib/node_modules/@anthropic/lark-cli` 可能支持 - 待确认:服务器是否已 `lark-cli auth login --as user` ### 19:00 陈逸鸫派 Image2 生图任务 **任务:** L1-S1-U1《秘密基地》5 课投放用小地图底图 - 模型:gpt-image-2 · 3:4 · 2K · 不要文字 - 风格:太阳朋克 + L1 场景 - 5 张 PNG:U1-L1~U1-L5 - FUNCLOUD_API_KEY 在小研 workspace `.env` 中可用(`fc_eea138933b02b4797ce0779ffb637d8b8a6368db7b435dfdab7b4be1cd254d98`) - Brief 文档 `/docx/KsVadUTmooO7yYxHaGmc1R0Bn5b` + 投放手册 `/do", - "recallCount": 3, + "recallCount": 4, "dailyCount": 0, "groundedCount": 0, - "totalScore": 3, + "totalScore": 4, "maxScore": 1, "firstRecalledAt": "2026-05-28T20:51:03.908Z", - "lastRecalledAt": "2026-05-29T13:16:08.062Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", "queryHashes": [ "f22544a8757c", "2af907cea93d", - "3737f6af1445" + "3737f6af1445", + "cf12fd62a5e5" ], "recallDays": [ - "2026-05-29" + "2026-05-29", + "2026-06-01" ], "conceptTags": [ "gpt", @@ -607,22 +613,24 @@ "endLine": 100, "source": "memory", "snippet": "3. **check_call→run**(`sync_juguang_notes.py` `sheet_write_range`):`subprocess.check_call` 不支持 `input=`, 改用 `subprocess.run(..., check=True, input=...)` 1b 单天验证通过:`sync_juguang_agents.py --start 2026-05-27 --end 2026-05-27` 写入 12 个单元格成功。全量 27 天在子进程跑,结果待出。 ### 17:12 数据服务边界规则部署 [陈逸鸫] **文档位置:** `docs/xiaoban-data-boundary.md`(git@github.com:chenyd11/feishu-database.git — 服务器无 SSH key 无法 pull) **三条核心规则(已写入 MEMORY.md):** 1. cron pipeline 和帮同事查数分轨,不能混用同一流程 2. 同事请求默认只读;写生产表 CYFTsu 必须 @陈逸鸫 确认 3. 查数结果写「输出区」副本,不改主表 **操作黑名单:** `pipeline.py` / `sync_*` / `run_juguang_*` / `sheets +write`(生产表) / `--promote` **待办:** 建「大麦查询输出」专用表(待陈逸鸫提供 token) **待办:** 获取 docs/xiaoban-data-boundary.md §7 Agent 系统提示词(完", - "recallCount": 4, + "recallCount": 5, "dailyCount": 0, "groundedCount": 0, - "totalScore": 4, + "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-28T20:51:03.908Z", - "lastRecalledAt": "2026-05-30T12:39:47.963Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", "queryHashes": [ "f22544a8757c", "c3cb24be8923", "e3108bd5b94c", - "340c1d46da26" + "340c1d46da26", + "cf12fd62a5e5" ], "recallDays": [ "2026-05-29", - "2026-05-30" + "2026-05-30", + "2026-06-01" ], "conceptTags": [ "check-call", @@ -642,22 +650,24 @@ "endLine": 266, "source": "memory", "snippet": "3. **check_call→run**(`sync_juguang_notes.py` `sheet_write_range`):`subprocess.check_call` 不支持 `input=`, 改用 `subprocess.run(..., check=True, input=...)` 1b 单天验证通过:`sync_juguang_agents.py --start 2026-05-27 --end 2026-05-27` 写入 12 个单元格成功。全量 27 天在子进程跑,结果待出。 ### 17:12 数据服务边界规则部署 [陈逸鸫] **文档位置:** `docs/xiaoban-data-boundary.md`(git@github.com:chenyd11/feishu-database.git — 服务器无 SSH key 无法 pull) **三条核心规则(已写入 MEMORY.md):** 1. cron pipeline 和帮同事查数分轨,不能混用同一流程 2. 同事请求默认只读;写生产表 CYFTsu 必须 @陈逸鸫 确认 3. 查数结果写「输出区」副本,不改主表 **操作黑名单:** `pipeline.py` / `sync_*` / `run_juguang_*` / `sheets +write`(生产表) / `--promote` **待办:** 建「大麦查询输出」专用表(待陈逸鸫提供 token) **待办:** 获取 docs/xiaoban-data-boundary.md §7 Agent 系统提示词(完", - "recallCount": 4, + "recallCount": 5, "dailyCount": 0, "groundedCount": 0, - "totalScore": 4, + "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-28T20:51:03.908Z", - "lastRecalledAt": "2026-05-30T12:39:47.963Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", "queryHashes": [ "f22544a8757c", "c3cb24be8923", "e3108bd5b94c", - "340c1d46da26" + "340c1d46da26", + "cf12fd62a5e5" ], "recallDays": [ "2026-05-29", - "2026-05-30" + "2026-05-30", + "2026-06-01" ], "conceptTags": [ "check-call", @@ -677,22 +687,24 @@ "endLine": 458, "source": "memory", "snippet": "3. **check_call→run**(`sync_juguang_notes.py` `sheet_write_range`):`subprocess.check_call` 不支持 `input=`, 改用 `subprocess.run(..., check=True, input=...)` 1b 单天验证通过:`sync_juguang_agents.py --start 2026-05-27 --end 2026-05-27` 写入 12 个单元格成功。全量 27 天在子进程跑,结果待出。 ### 17:12 数据服务边界规则部署 [陈逸鸫] **文档位置:** `docs/xiaoban-data-boundary.md`(git@github.com:chenyd11/feishu-database.git — 服务器无 SSH key 无法 pull) **三条核心规则(已写入 MEMORY.md):** 1. cron pipeline 和帮同事查数分轨,不能混用同一流程 2. 同事请求默认只读;写生产表 CYFTsu 必须 @陈逸鸫 确认 3. 查数结果写「输出区」副本,不改主表 **操作黑名单:** `pipeline.py` / `sync_*` / `run_juguang_*` / `sheets +write`(生产表) / `--promote` **待办:** 建「大麦查询输出」专用表(待陈逸鸫提供 token) **待办:** 获取 docs/xiaoban-data-boundary.md §7 Agent 系统提示词(完", - "recallCount": 4, + "recallCount": 5, "dailyCount": 0, "groundedCount": 0, - "totalScore": 4, + "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-28T20:51:03.908Z", - "lastRecalledAt": "2026-05-30T12:39:47.963Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", "queryHashes": [ "f22544a8757c", "c3cb24be8923", "e3108bd5b94c", - "340c1d46da26" + "340c1d46da26", + "cf12fd62a5e5" ], "recallDays": [ "2026-05-29", - "2026-05-30" + "2026-05-30", + "2026-06-01" ], "conceptTags": [ "check-call", @@ -712,22 +724,24 @@ "endLine": 557, "source": "memory", "snippet": "- 妙搭发布 `apps +html-publish` 需要 `--as user`,bot 模式不支持 - 系统 lark-cli `/usr/local/lib/node_modules/@anthropic/lark-cli` 可能支持 - 待确认:服务器是否已 `lark-cli auth login --as user` ### 19:00 陈逸鸫派 Image2 生图任务 **任务:** L1-S1-U1《秘密基地》5 课投放用小地图底图 - 模型:gpt-image-2 · 3:4 · 2K · 不要文字 - 风格:太阳朋克 + L1 场景 - 5 张 PNG:U1-L1~U1-L5 - FUNCLOUD_API_KEY 在小研 workspace `.env` 中可用(`fc_eea138933b02b4797ce0779ffb637d8b8a6368db7b435dfdab7b4be1cd254d98`) - Brief 文档 `/docx/KsVadUTmooO7yYxHaGmc1R0Bn5b` + 投放手册 `/docx/QhYQdz7PvoN7Eaxmhu0c0Q5UnHe` — 均为个人文档,AGENTS.md 规则禁止读取 - 素材库入口:https://llm-dev.valavala.com/web_tools/material_prod --- ### 19:30 同事数据查询流程演练 [陈逸鸫测试] **场景:模拟王虹茗请求小龙 4/21-5/20 订单详情,验证三级查询流程** **小龙订单查询结果(数据源:3wcle8 销售订", - "recallCount": 5, + "recallCount": 6, "dailyCount": 0, "groundedCount": 0, - "totalScore": 5, + "totalScore": 6, "maxScore": 1, "firstRecalledAt": "2026-05-28T20:51:03.908Z", - "lastRecalledAt": "2026-05-29T13:16:08.062Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", "queryHashes": [ "f22544a8757c", "82be33d1f911", "2aa08c6652fb", "f7ae50ae228d", - "3737f6af1445" + "3737f6af1445", + "cf12fd62a5e5" ], "recallDays": [ - "2026-05-29" + "2026-05-29", + "2026-06-01" ], "conceptTags": [ "gpt", @@ -1268,6 +1282,192 @@ "5/5", "5/20" ] + }, + "memory:memory/2026-05-28.md:704:717": { + "key": "memory:memory/2026-05-28.md:704:717", + "path": "memory/2026-05-28.md", + "startLine": 704, + "endLine": 717, + "source": "memory", + "snippet": "**陈逸鸫提到 Cursor 可以写公式** — 待确认他用的是什么工具/API。可能路径:Cursor 用了不同端点(Sheets v3?)、不同 auth 方式、或者直接用 Feishu MCP。 ### ~22:05 日报「公式映射」现状 **事实:** C1HVN2 Section 三当前数字是 `compute_lesson_activation.py` / `pipeline.py step 3` 写入的静态值,不是真正的 Feishu 公式。API 层无法写入公式。 **正确的「公式映射」方案:** 不强求单元格公式,而是 pipeline 脚本作为\"公式\"—从源表取数→计算→写入。Section 一/二的现有自动化就是这样运行的。需验证 pipeline step 3 是否已覆盖新增的当日行课/7天首课行,如果没覆盖就加进去。 ### 当前 C1HVN2 待修复项 1. Row 18(企微新增)TEXT 格式 → 需陈逸鸫手动「清除格式」 2. Section 四(销转情况)Row 26-29 数字也是 text 格式 → 同样需手动清除 3. 当日行课/7天首课数据 → pipeline 脚本需覆盖 Section 三写入", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-05-31T23:25:36.480Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", + "queryHashes": [ + "679cdd7bd3a8" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "待确认他用的是什么工具/api", + "compute-lesson-activation.py", + "pipeline.py", + "一/二的现有自动化就是这样运行的", + "是否已覆盖新增的当日行课/7天首课行", + "26-29", + "当日行课/7天首课数据", + "提到" + ] + }, + "memory:memory/2026-05-28.md:596:624": { + "key": "memory:memory/2026-05-28.md:596:624", + "path": "memory/2026-05-28.md", + "startLine": 596, + "endLine": 624, + "source": "memory", + "snippet": "6. **build_pipeline 脚本** — 新增 `scripts/compute_lesson_activation.py`(PG→2aNzzy V/W) **关键数据源映射:** 进线=2aNzzy C列日期 → 用户ID=2aNzzy → PG user_course_detail 首课日期 → 比对同天 → 写回 2aNzzy V/W ### 待办汇总 1. 📋 陈逸鸫确认行课转化改动方案 → 一口气改 6 处 2. 📋 王虹茗 user_id 获取(需她发消息或陈逸鸫截图) 3. 📋 数据转发王虹茗 + 写入大麦查询输出表 fd42b8 4. 📋 销售看板 build 挂住问题排查 5. 📋 Image2 生图任务执行 6. ⏳ 全量 pipeline 聚光验证(子进程) ### 20:52 行课转化全量改动完成 [陈逸鸫确认] 行课记录新增指标:当日进线→当天行课 + 7天首课,6处改动已完成4处: | # | 位置 | 改动 | 状态 | |---|------|------|------| | 1 | 2aNzzy | V/W/X 三列(首课日期/当日行课/7日内行课) | ✅ | | 2 | 3PRySY | AE-AH 四列(当日行课/当日行课率/7日内首课/7日内首课率)| ✅ | | 3 | C1HVN2 | 合并 三+五 →「线索→行课转化」| ✅ | | 4 | Base | 行课销售月(4)/5月漏斗(3)/销转销售月(2) 加字段 | ⚠️ bot权限不足,需手动 | | 5 | funnel-daily 看板 |", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-05-31T23:25:36.480Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", + "queryHashes": [ + "679cdd7bd3a8" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "build-pipeline", + "v/w", + "user-course-detail", + "user-id", + "v/w/x", + "首课日期/当日行课/7日内行课", + "ae-ah", + "当日行课/当日行课率/7日内首课/7日内首课率" + ] + }, + "memory:memory/2026-05-28.md:1:36": { + "key": "memory:memory/2026-05-28.md:1:36", + "path": "memory/2026-05-28.md", + "startLine": 1, + "endLine": 36, + "source": "memory", + "snippet": "# 2026-05-28 工作日志 ## 品牌更名与定位升级 [Cris确认] - 姓名:小斑 → **大麦** - 定位:AI班主任 → **增长营销分析师** - 核心职能:增长数据分析、营销效果评估、转化漏斗分析、商业化洞察 - Emoji:📚 → 🌾 - 已更新文件:IDENTITY.md、AGENTS.md(@规则同步变更)、MEMORY.md - SOUL.md 无需改动(行为方法论为通用框架) ### 16:20 pipeline 非聚光部分验证完成 **lark-cli wrapper v0.3 支持的 action:** | 类别 | action | 状态 | |------|--------|------| | sheets | +read, +write, +append, +info, +meta | ✅ | | sheets | +create-sheet, +delete-sheet | ✅ | | sheets | +batch-set-style (stub) | ✅ | | sheets | +merge-cells, +unmerge-cells | ✅ | | sheets | +update-dimension | ✅ | | bitable | +app, +tables, +records, +create, +update | ✅ | | auth | status | ✅ | | im | +messages-send (stub) | ✅ | **pipeline 试跑结果(--dry-run):** | 步骤", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-05-31T23:25:36.480Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", + "queryHashes": [ + "679cdd7bd3a8" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "identity.md", + "agents.md", + "memory.md", + "soul.md", + "lark-cli", + "v0.3", + "create-sheet", + "delete-sheet" + ] + }, + "memory:memory/2026-05-28.md:359:394": { + "key": "memory:memory/2026-05-28.md:359:394", + "path": "memory/2026-05-28.md", + "startLine": 359, + "endLine": 394, + "source": "memory", + "snippet": "# 2026-05-28 工作日志 ## 品牌更名与定位升级 [Cris确认] - 姓名:小斑 → **大麦** - 定位:AI班主任 → **增长营销分析师** - 核心职能:增长数据分析、营销效果评估、转化漏斗分析、商业化洞察 - Emoji:📚 → 🌾 - 已更新文件:IDENTITY.md、AGENTS.md(@规则同步变更)、MEMORY.md - SOUL.md 无需改动(行为方法论为通用框架) ### 16:20 pipeline 非聚光部分验证完成 **lark-cli wrapper v0.3 支持的 action:** | 类别 | action | 状态 | |------|--------|------| | sheets | +read, +write, +append, +info, +meta | ✅ | | sheets | +create-sheet, +delete-sheet | ✅ | | sheets | +batch-set-style (stub) | ✅ | | sheets | +merge-cells, +unmerge-cells | ✅ | | sheets | +update-dimension | ✅ | | bitable | +app, +tables, +records, +create, +update | ✅ | | auth | status | ✅ | | im | +messages-send (stub) | ✅ | **pipeline 试跑结果(--dry-run):** | 步骤", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-05-31T23:25:36.480Z", + "lastRecalledAt": "2026-05-31T23:25:36.480Z", + "queryHashes": [ + "679cdd7bd3a8" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "identity.md", + "agents.md", + "memory.md", + "soul.md", + "lark-cli", + "v0.3", + "create-sheet", + "delete-sheet" + ] + }, + "memory:memory/2026-05-28.md:641:671": { + "key": "memory:memory/2026-05-28.md:641:671", + "path": "memory/2026-05-28.md", + "startLine": 641, + "endLine": 671, + "source": "memory", + "snippet": "- compute_lesson_activation.py 进 cron 后每日自动刷新 **待办:** Base 字段需陈逸鸫在 UI 手动添加(行课销售月/5月漏斗/销转销售月各加 2-4 个数字字段) ## funnel-daily 看板行课激活指标 — 待修复 (21:49) ### Bug 1: `_read_activations` 未过滤汇总行 `snapshot_funnel_daily.py` 读 2aNzzy O2:X4000 时,只检查 O/P 是否有值,没检查 Q (用户ID),导致汇总行(无 user_id)也被计入。 - **修复**: 加 `if not uid: continue`,只统计有 user_id 的个体小溪记录 ### Bug 2: key 不匹配 `collect_snapshot` 合计用 `\"week_lesson\"`,但 `_read_activations` 存的是 `\"week\"`,导致 合计 wk=0。 - **修复**: 统一用 `\"week\"` key ### Bug 3: X列数据 O列分组失真 X列 (7日内行课) 是基于 B列(进线日期) 计算的,但按 O列(行课月) 聚合会导致跨月用户重复计入。5月 O列=505行但个体记录只有约108条/月。 - **初步方案**: 先按 O列+Q列过滤(过滤汇总行),暂时接受 O列分组。后续可考虑 B列分组。 ### 待执行 (下次回话) ```bash # 1. 修复 snapshot_funnel_daily.py 两处 bug # 2. 重建 sn", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-05-31T23:27:40.582Z", + "lastRecalledAt": "2026-05-31T23:27:40.582Z", + "queryHashes": [ + "0be022b45645" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "compute-lesson-activation.py", + "行课销售月/5月漏斗/销转销售月各加", + "2-4", + "funnel-daily", + "read-activations", + "snapshot-funnel-daily.py", + "o/p", + "user-id" + ] + }, + "memory:memory/2026-05-28.md:618:649": { + "key": "memory:memory/2026-05-28.md:618:649", + "path": "memory/2026-05-28.md", + "startLine": 618, + "endLine": 649, + "source": "memory", + "snippet": "| 4 | Base | 行课销售月(4)/5月漏斗(3)/销转销售月(2) 加字段 | ⚠️ bot权限不足,需手动 | | 5 | funnel-daily 看板 | 加行课转化指标 | 📋 待 build 脚本改 | | 6 | build 脚本 | compute_lesson_activation.py | ✅ | **合并后的 C1HVN2 Section 三:** ``` 三、线索→行课转化(5月27日) 指标 小龙 吴迪 Bob Tom 日汇总 企微新增 13 6 14 15 48 当日行课 0 0 0 0 0 当日行课率 0% 0% 0% 0% 0% 7天线索→首课 1 2 2 2 10 7天首课率 7.7% 33.3% 14.3% 13.3% 20.8% ``` **5月全月数据(3PRySY 公式自动计算):** Bob 当日行课率 7.4% > Tom 3.7% > 其余 0%;7天首课率 吴迪 28.6% > 小龙 14.3% **关键实现细节:** - 2aNzzy V: PG chapter_settlement_data 最早日期 - 2aNzzy W: 进线当天有 chapter 活动=1 - 2aNzzy X: 进线 7 天内有 chapter 活动=1 - 3PRySY", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-05-31T23:27:40.582Z", + "lastRecalledAt": "2026-05-31T23:27:40.582Z", + "queryHashes": [ + "0be022b45645" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "funnel-daily", + "compute-lesson-activation.py", + "7.7", + "33.3", + "14.3", + "13.3", + "20.8", + "7.4" + ] } } } diff --git a/output/角色id_33943_导出时间_20260531.xlsx b/output/角色id_33943_导出时间_20260531.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a7f1d1a636d6d311d65bae8827f3c96362c8b6bf GIT binary patch literal 41114 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 E0896UrvLx| literal 0 HcmV?d00001 diff --git a/output/角色id_35000_导出时间_20260531.xlsx b/output/角色id_35000_导出时间_20260531.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..be72e3fe21a1a1b5d37a480d1434354e81f3edfc GIT binary patch literal 43346 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 literal 0 HcmV?d00001 diff --git a/output/角色id_35946_导出时间_20260531.xlsx b/output/角色id_35946_导出时间_20260531.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bb7c88127421430a106d2fbf65f61910f1758c09 GIT binary patch literal 54203 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%0A+kiAR_6LC;If70?@F2teUN{T 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 + + + + +上传文件到大麦 + + + +

+ + +""" + + +class UploadHandler(BaseHTTPRequestHandler): + def do_GET(self): + if self.path == '/': + self._send_html(HTML) + elif self.path == '/files': + self._list_files() + else: + self.send_error(404) + + def do_POST(self): + if self.path == '/upload': + self._handle_upload() + else: + self.send_error(404) + + def _send_html(self, content, code=200): + body = content.encode('utf-8') + self.send_response(code) + self.send_header('Content-Type', 'text/html; charset=utf-8') + self.send_header('Content-Length', len(body)) + self.end_headers() + self.wfile.write(body) + + def _list_files(self): + import json + import time + os.makedirs(UPLOAD_DIR, exist_ok=True) + files = [] + for name in sorted(os.listdir(UPLOAD_DIR), reverse=True): + path = os.path.join(UPLOAD_DIR, name) + if os.path.isfile(path): + st = os.stat(path) + files.append({ + 'name': name, + 'size': st.st_size, + 'time': time.strftime('%m-%d %H:%M', time.localtime(st.st_mtime)) + }) + body = json.dumps(files[:20]).encode('utf-8') + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.send_header('Content-Length', len(body)) + self.end_headers() + self.wfile.write(body) + + def _handle_upload(self): + content_type = self.headers.get('Content-Type', '') + if 'multipart/form-data' not in content_type: + self.send_error(400, '需要 multipart/form-data') + return + + form = cgi.FieldStorage( + fp=self.rfile, + headers=self.headers, + environ={'REQUEST_METHOD': 'POST', 'CONTENT_TYPE': content_type} + ) + + file_item = form['file'] + if not file_item.filename: + self.send_error(400, '未选择文件') + return + + safe_name = os.path.basename(file_item.filename) + os.makedirs(UPLOAD_DIR, exist_ok=True) + path = os.path.join(UPLOAD_DIR, safe_name) + + # 避免覆盖,自动加序号 + base, ext = os.path.splitext(safe_name) + counter = 1 + while os.path.exists(path): + path = os.path.join(UPLOAD_DIR, f"{base}_{counter}{ext}") + counter += 1 + + with open(path, 'wb') as f: + f.write(file_item.file.read()) + + self.send_response(200) + self.send_header('Content-Type', 'text/plain; charset=utf-8') + self.end_headers() + self.wfile.write(f'OK: {os.path.basename(path)}'.encode('utf-8')) + + def log_message(self, format, *args): + pass # 静默日志 + + +if __name__ == '__main__': + os.makedirs(UPLOAD_DIR, exist_ok=True) + server = HTTPServer(('0.0.0.0', PORT), UploadHandler) + print(f'上传服务已启动: http://115.190.225.235:{PORT}') + print(f'上传目录: {UPLOAD_DIR}') + try: + server.serve_forever() + except KeyboardInterrupt: + print('\n已停止') + server.server_close() diff --git a/scripts/whisper_batch.py b/scripts/whisper_batch.py new file mode 100644 index 0000000..b1a79cb --- /dev/null +++ b/scripts/whisper_batch.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python3 +""" +批量 Whisper 转录脚本 +- 并行度: 4 workers (medium模型, 31GB RAM安全) +- 输出: 每个视频的 .txt 逐字稿 + batch_summary.json +""" +import subprocess +import json +import os +import sys +import time +from concurrent.futures import ProcessPoolExecutor, as_completed +from pathlib import Path + +VIDEO_DIR = "/root/.openclaw/workspace-xiaoban/tmp/Lina先生_视频/Lina先生_作品下载" +OUTPUT_DIR = "/root/.openclaw/workspace-xiaoban/tmp/whisper_output" +MODEL = "medium" +LANGUAGE = "Chinese" +WORKERS = 4 # 保守并行度 + +os.makedirs(OUTPUT_DIR, exist_ok=True) + +def get_videos(): + """获取所有待处理视频列表""" + videos = [] + for f in sorted(Path(VIDEO_DIR).glob("*.mp4")): + # 跳过已处理的 + out_txt = Path(OUTPUT_DIR) / (f.stem + ".txt") + if out_txt.exists() and out_txt.stat().st_size > 0: + continue + # 获取时长 + try: + result = subprocess.run( + ["ffprobe", "-v", "error", "-show_entries", "format=duration", + "-of", "csv=p=0", str(f)], + capture_output=True, text=True, timeout=10 + ) + duration = float(result.stdout.strip()) if result.stdout.strip() else 0 + except: + duration = 0 + videos.append({ + "path": str(f), + "name": f.name, + "duration": duration + }) + return videos + +def transcribe(video_info): + """单个视频转录""" + f = video_info["path"] + name = video_info["name"] + duration = video_info["duration"] + out_txt = os.path.join(OUTPUT_DIR, Path(f).stem + ".txt") + + # 如果已存在有效输出,跳过 + if os.path.exists(out_txt) and os.path.getsize(out_txt) > 10: + with open(out_txt, 'r') as fh: + content = fh.read() + return {"name": name, "duration": duration, "text": content, "elapsed": 0, "cached": True} + + start = time.time() + try: + result = subprocess.run( + ["/usr/local/bin/whisper", f, + "--model", MODEL, + "--language", LANGUAGE, + "--output_dir", OUTPUT_DIR, + "--output_format", "txt"], + capture_output=True, text=True, timeout=1800 # 30min max per video + ) + elapsed = time.time() - start + + if os.path.exists(out_txt): + with open(out_txt, 'r') as fh: + content = fh.read() + else: + content = "[转录失败]" + + return {"name": name, "duration": duration, "text": content, "elapsed": elapsed, "cached": False} + except subprocess.TimeoutExpired: + elapsed = time.time() - start + return {"name": name, "duration": duration, "text": "[超时]", "elapsed": elapsed, "cached": False} + except Exception as e: + elapsed = time.time() - start + return {"name": name, "duration": duration, "text": f"[错误: {e}]", "elapsed": elapsed, "cached": False} + +def main(): + videos = get_videos() + total = len(videos) + total_duration = sum(v["duration"] for v in videos) + + print(f"待处理: {total} 个视频, 总时长: {total_duration/3600:.1f} 小时") + print(f"模型: {MODEL}, 并行: {WORKERS} workers") + print(f"预计耗时: {total_duration * 2.6 / WORKERS / 3600:.1f} 小时") + print("=" * 60) + + done = 0 + total_elapsed = 0 + start_time = time.time() + + with ProcessPoolExecutor(max_workers=WORKERS) as executor: + futures = {executor.submit(transcribe, v): v for v in videos} + + for future in as_completed(futures): + v = futures[future] + done += 1 + try: + result = future.result() + cached = result.get("cached", False) + elapsed = result.get("elapsed", 0) + total_elapsed += elapsed + + pct = done / total * 100 + elapsed_all = time.time() - start_time + eta = elapsed_all / done * (total - done) if done > 0 else 0 + + tag = "♻️缓存" if cached else f"⏱{elapsed:.0f}s" + print(f"[{done}/{total} {pct:.1f}%] {tag} | ETA: {eta/60:.0f}min | {result['name'][:50]}...") + + # 每20个输出一次进度文件 + if done % 20 == 0: + progress = { + "done": done, "total": total, + "elapsed_total": elapsed_all, + "eta_seconds": eta, + "pct": pct + } + with open(os.path.join(OUTPUT_DIR, "_progress.json"), 'w') as fp: + json.dump(progress, fp, indent=2) + + except Exception as e: + print(f"[{done}/{total}] ❌ 错误: {v['name'][:50]}... => {e}") + + total_time = time.time() - start_time + print(f"\n✅ 全部完成! 总耗时: {total_time/3600:.1f} 小时") + + # 写入最终进度 + with open(os.path.join(OUTPUT_DIR, "_progress.json"), 'w') as fp: + json.dump({"done": total, "total": total, "status": "complete"}, fp, indent=2) + +if __name__ == "__main__": + main() diff --git a/tmp_daily_summary.md b/tmp_daily_summary.md new file mode 100644 index 0000000..0ba7ef0 --- /dev/null +++ b/tmp_daily_summary.md @@ -0,0 +1,3 @@ +=== 每日总结 20260601 === +## 昨日关键进展 +无昨日记忆记录