372 lines
42 KiB
Markdown
372 lines
42 KiB
Markdown
# 2026-09-23 工作日志
|
||||
|
|
|
|||
|
|
## ChatGPT 外部评审:极致事件素材库(维度与内容覆盖)
|
|||
|
|
|
|||
|
|
**任务**:把已生成的极致事件卡通过浏览器发给 ChatGPT,评审「维度与内容是否全面 / 作为参考能否提升 AI 生成脚本吸引力 / 优化点」。
|
|||
|
|
|
|||
|
|
**产出**
|
|||
|
|
- `ChatGPT评审意见_极致事件素材库_20260923.md`(861 行:提问说明 + 回复全文 + 要点提炼)
|
|||
|
|
- `tools/chatgpt_ask.py`(可复用:把本地材料以附件发给 ChatGPT 并取回回答,直连 CDP)
|
|||
|
|
|
|||
|
|
**ChatGPT 核心结论**
|
|||
|
|
- 维度:约 **80% 完整**。4 个盲区 = ① 成长/蜕变型事件(最大缺口)② 悬念/信息差 ③ 挑战规则型 ④ 关系变化 → 建议类型体系 **3 类 → 5 类**(+情感极致 +成长极致)
|
|||
|
|
- 提升吸引力:**能提升**(开头 3 秒 / 转折密度 / 跨赛道迁移),**不能解决**(人物真实感 / 选题价值 / 脚本节奏)
|
|||
|
|
- 6 条优化:AI 生成字段、事件强度评分、素材组合关系、**双轴体系**(内容库 × 事件库)、标签三级分层、失败样本库
|
|||
|
|
- 成熟度:机制拆解 9 / 抽象能力 9 / AI 辅助 8 / 分类完整性 **7** / 商业化 7.5
|
|||
|
|
|
|||
|
|
## 技术链路(本次踩坑与解法,均已回写 MEMORY.md)
|
|||
|
|
|
|||
|
|
1. ⛔ **`explorer.exe` 当父进程启动 Chrome 的方案已失效** —— 本项目原有做法(`Start-Process -FilePath explorer.exe` + bat)本次两种写法(bash 直调 / PowerShell)+ ASCII 路径 bat + CRLF 全部试过,端口均未监听。推测与当前沙箱策略变化有关。
|
|||
|
|
2. ✅ **可行方案 = 后台常驻**:`run_in_background: true` 启动 `chrome.exe <args> ; sleep 3600`,浏览器跟随该会话任务存活,**跨调用可用**(实测端口常驻、harness 可连)。
|
|||
|
|
3. ✅ **ChatGPT 必须走代理**:`--proxy-server="socks5://127.0.0.1:10800"`(`Shadowsocks.exe` 监听 10800)。环境变量里的 8105 是沙箱代理,**不能给浏览器用**。直连 chatgpt.com 超时;走 10800 可通(curl 返回 403 是 Cloudflare 反爬对命令行的拦截,浏览器正常)。
|
|||
|
|
4. ⛔ **browser-harness `cdp()` 不能传长文本**:daemon IPC 单条消息有上限(报 `Separator is found, but chunk is longer than limit`),且客户端 5s 超时(分块 1200 字符即 `TimeoutError: timed out`)。
|
|||
|
|
5. ✅ **正解 = 长材料走附件上传**:`DOM.setFileInputFiles` → `#upload-files`;问题文本才走 `Input.insertText`(195 字符一次成功)。
|
|||
|
|
6. ✅ **长回复提取要等稳**:选择器用 `div[data-message-author-role="assistant"] .markdown`;完成判定 = 无 `button[data-testid="stop-button"]` 且文本连续 4 次不变。早期 5 秒轮询会误判(521 字符即"完成")。
|
|||
|
|
7. ⚠️ 中途 ChatGPT 标签页消失(原因未明)→ 用侧栏 `a[href^="/c/"]` 取会话 URL 重新 `Page.navigate` 即可恢复。
|
|||
|
|
|
|||
|
|
**清理**:删除 25 个一次性调试脚本 / 截图 / 中间文本;保留 `tools/chatgpt_ask.py`。
|
|||
|
|
|
|||
|
|
## 只读审计:中间留人机制(10:20,承接 ChatGPT 评审的「不能解决 3:完整脚本节奏」)
|
|||
|
|
|
|||
|
|
**用户诉求**:能否提升「中间留人」吸引力,做到 10 秒左右一个吸引点。
|
|||
|
|
|
|||
|
|
**审计结论(未改任何技能文件)**——瓶颈不是阈值不够紧,而是「中间留人」没被定义成可产出/可自检的东西:
|
|||
|
|
|
|||
|
|
1. **三条并行密度线口径打架**:A 信息密度 每10秒(`9_生成短视频脚本.md`:151,441 / 35项清单:73 / `04_节奏控时`:48,91,106 / `06_编导终审`:71)=下限防腐;B 钩子密度 每15秒(35项清单:72)**全技能无定义、无来源、无产出格式,悬空**;C 极致触点 每15-20秒(`7_生成短视频大纲.md`:66,159 / `05_极致事件/03`:17,41)=上限爆点,资源有限不可能也不应 10 秒一个。
|
|||
|
|
2. **产出粒度太粗**:S6「本场钩子」是**场级**(一场 15-25s → 等于 15-25s 才一个留人设计);S7 极致触点布位只有 4 个布位、非窗口化。→ **「每10秒一个吸引点」在全部产出物里没有字段**。
|
|||
|
|
3. **校验强度倒挂**:S7 大纲校验里 L1 极致触点是**硬闸门**,中段留人(L162-163)只是"参见知识库"**软引用**;L165-171 硬检查全是**静态数量**(具名物品≥12/对话≥4组/故事细节≥50),与时间轴无关 → AI 把力气花在凑物品数上。
|
|||
|
|
4. **方法论库几乎空**:`知识库/06_剧情钩子/` **只有 1 篇**;五类留人机制(悬念提问/反差画面/直击痛点/身份共鸣/利益承诺)只在 `6_生成短视频框架.md`:140 列了名字,无任何"怎么写"的文件。
|
|||
|
|
|
|||
|
|
**提出方案「三级留人点体系」**(路线 = 合并升级,不新增第 4 条平行线):
|
|||
|
|
- L1 极致触点 15-20s/个(不动,保护稀缺性)| **L2 留人点 每10秒 ≥1**(由 A 升级+B 归并,核心新增)| L3 增量点 3-5s/个(`04_节奏控时`:24,36 已有,落成字段)
|
|||
|
|
- L2 判据:一个留人点 = 观众产生明确的"为什么",三型至少命中一种(问题型/反差型/共鸣型);纯信息陈述/纯动作/重复前文**不算**
|
|||
|
|
- 可执行换算:**本场最少留人点数 = ⌈本场时长 ÷ 10⌉**(S6/S7 可直接自检)
|
|||
|
|
- 分赛道分档:剧情/知识/口播/搞笑 10s;Vlog/美食/亲子/情侣 10-15s;沉浸/治愈 15s(L3 兜底)
|
|||
|
|
- 最需防的退化:为凑数把普通留人点包装成"极致触点" → L1 不计入 L2,`05_极致事件/03` 补注二者不同层
|
|||
|
|
|
|||
|
|
**关键判断**:极致事件素材库是 **L1 侧资产,补不了 L2 的缺口**(正好对应 ChatGPT 说的"不能解决 3")。两件事必须分开做。
|
|||
|
|
|
|||
|
|
**产出**:`中间留人机制诊断与留人点体系方案_V1.0_20260923.md`(含 8 项落地改动点清单 + 证据索引 文件:行号)。**状态:待用户确认路线(A 合并升级 / B 只加不改)与是否补 06_剧情钩子 5 篇方法论,未动技能文件。**
|
|||
|
|
|
|||
|
|
## 执行:三级留人点体系落地(10:35–,路线 A 合并升级,已全部完成)
|
|||
|
|
|
|||
|
|
**流程**:用户要求「检查确认一遍方案细节是否准确无误,确认后执行」→ 回到原文逐行复核 + 全树口径扫描 → **发现方案有 6 处不准确/遗漏** → 修订后执行(11 个文件)。
|
|||
|
|
|
|||
|
|
**复核修订(重要,避免重复建设)**
|
|||
|
|
1. ⛔ 原「`06_剧情钩子/` 只有 1 篇 → 补 5 篇方法论」**是错的**:五类留人机制的方法论**本就在 `04_爆款开场/` 10 篇开场方式文件里**(`00_开场方式全量覆盖分析.md`:17 已写明对应)→ **撤销新建**,改为补 1 节映射表。**教训:下「缺方法论」结论前必须先读同维度已有文件。**
|
|||
|
|
2. L2 类型不新造「问题型/反差型/共鸣型」三型 —— **三型漏了「利益承诺」**,且技能内已有 **4 套钩子枚举**(五类留人机制 / `01_标准爆款结构模板`:143-149「数据冲击·违背常识」/ `04_爆款开场` 10 种 CSV 口径 / 8 个旧钩子文件口径),再创即第 5 套 → **L2 类型维度沿用五类**,「产生一个为什么」只作合格线判据。
|
|||
|
|
3. A 线(每10秒)足迹**漏了** `03_框架节奏/01_标准爆款结构模板.md`(L246/L354/L366)→ A 线实际 5 个文件。
|
|||
|
|
4. **漏**子技能同口径副本:`subskills/mcn-script-review/`(SKILL.md + 脚本复盘流程.md)+ `subskills/mcn-dou-analysis/references/知识库/视频拆解/框架04_节奏控时.md`。
|
|||
|
|
5. **新发现**:`创作流程/11_脚本检查和诊断.md` 里「信息密度」**一词二义**(「二、信息密度检查」=展开深度静态数量;四维度表那条=频率)→ 频率那条改名「留人密度」,静态模块只加区分注**未改名**(改名连带 S7 L165-171,属独立重构)。
|
|||
|
|
6. 命名定为「**留人点**」(对齐平台详情页字段「中间留人」)。
|
|||
|
|
|
|||
|
|
**最终方案(口径单源 = `知识库/03_框架节奏/04_节奏控时叙事套路.md` 1.3)**
|
|||
|
|
- **L1 极致触点** 15-20 秒(05_极致事件,不动)| **L2 留人点 每 10 秒 ≥1**(由「信息密度」升级+「钩子密度 15 秒」归并)| **L3 增量点** 3-5 秒(知识库已有,落成字段)
|
|||
|
|
- 判据:留人点 = 观众产生一个明确的「为什么」,四类形式(抛问题/打破预期/说到自己/给承诺)至少命中一种;**纯信息陈述/纯动作/重复前文不算**
|
|||
|
|
- 自检换算:**本场最少留人点数 = ⌈本场时长 ÷ 10⌉**
|
|||
|
|
- 分赛道分档:剧情/知识/口播/搞笑 10 秒|Vlog/美食/亲子/情侣 10-15 秒|沉浸/治愈/慢生活 15 秒
|
|||
|
|
- 红线:**禁止混层**(L1 不计入 L2、留人点不得包装成极致触点 → 防爆点稀释)
|
|||
|
|
|
|||
|
|
**改动 11 文件**:04_节奏控时(新增 1.3 单源)|01_标准爆款结构模板|06_编导终审|创作流程 6/7/9/11|35项清单(类4 合并 2→1 + 新增「留人点类型覆盖」,**保持 35 项**)|05_极致事件/03(加分工行防混层)|04_爆款开场/00(新增第五节映射表)|子技能 2 处副本|SKILL.md frontmatter(updated_at 09-23)。
|
|||
|
|
|
|||
|
|
**残留核对**:`钩子密度`/`每15秒`/`每10秒至少1个新信息` **有效规则零残留**;剩余 2 处命中均在 `subskills/mcn-video-prompt/参考skills/script-writing-studio/`(**第三方参考技能,红线禁改**)。
|
|||
|
|
|
|||
|
|
**遗留待决策**:① 11 的「信息密度检查」模块是否更名「展开深度检查」(独立重构,未做);② 赛道分档阈值为**推定值非实测**,建议跑 3-5 条真实脚本后按数据回调。
|
|||
|
|
|
|||
|
|
**明细**:`V1.0/references-add/变更日志.md` 2026-09-23 条;方案+复核修订见仓库根 `中间留人机制诊断与留人点体系方案_V1.0_20260923.md`。
|
|||
|
|
|
|||
|
|
## 执行:遗留重构 · 「信息密度」一词二义治本(11:00–)
|
|||
|
|
|
|||
|
|
**触发**:用户「按照建议执行」→ 执行上一轮留的 2 项遗留中的第①项。
|
|||
|
|
|
|||
|
|
**处置**:`创作流程/11_脚本检查和诊断.md` 模块二「信息密度检查」→ **「展开深度检查」**(7 处),原「命名区分注」改为「命名沿革」(保留两口径不互相替代)。连带:
|
|||
|
|
- 引用更名:`SKILL.md` 能力行、`7_生成短视频大纲.md`:178
|
|||
|
|
- 频率义统一「留人密度」:`9_生成短视频脚本.md`(留人密度优先 + 赛道标准指针)、`6_生成短视频框架.md`(弱情感铺垫等级行 / 三问自检 3 处 / 赛道标准指针 / 模板 A 描述)
|
|||
|
|
- 症状名去同根:`04_节奏控时`(2.2 行 + 误区「信息密度过低」→「留人点过疏」)、`01_标准爆款结构模板`(误区行 →「中段留人点过疏」)
|
|||
|
|
- 子技能副本:`mcn-dou-analysis/视频拆解/框架04_节奏控时.md`(2)、`框架01_标准爆款结构.md`(1)
|
|||
|
|
|
|||
|
|
**保留边界**:「信息密度」作**通用描述语/关键指标/方法论原文/文件标题**的用法一律保留(`01_标准爆款结构模板`:289 关键指标、`08_对话风格/高信息密度Vlog创作法`、`3_对标视频账号拆解`「每30秒信息增量」)—— 只治「作阈值口径名或模块名」的义项,不做全量替换。**核对**:全树扫 `信息密度检查` → 有效规则零残留。
|
|||
|
|
|
|||
|
|
## 只读诊断 + 方案:极致事件卡片(11:10–,技能文件零改动)
|
|||
|
|
|
|||
|
|
**触发**:用户「但是对于极致事件卡片 没有什么优化的建议和方案」。
|
|||
|
|
|
|||
|
|
**卡片定义**:`素材库/分块定义/00_模板-各库分块模板.md` §极致事件(L302–343)= **10 固定字段(顺序固定)+ 所属库专属 N**;内容层 6(极致内容/内容含义/极致触点/事件标签/极致类型/创作手法)+ 呈现层 4(镜头语言/画面风格/复用场景/适用场景)。
|
|||
|
|
|
|||
|
|
**结论:主体不需重构**(三字段分工「事实→机制→效果」成立)。真问题是 3 条结构性缺陷:
|
|||
|
|
1. ⭐ **存量卡两套口径并存**:`极致事件卡_癫婆_模板版_20260922.md` = V1.2 的 10 字段;`极致事件提取_多类别样本_20260922.md` **12 条卡全部为旧口径 9 字段**(用「极致标签」「表现形式」,无新「极致触点」;grep 证实无一使用「内容含义」)→ 按「事件标签」筛条会漏;且当时送 ChatGPT 的评审材料口径可疑(评审材料 txt 已清理,**无法回溯核验**)。
|
|||
|
|
2. ⭐ **「极致触点」一词三义**(新发现,与上一轮 `信息密度` 同型):A 布位层=时间轴爆点节点(创作流程+知识库 15 处)/ B 卡片层=击中原因(仅模板)/ C 8 库层=**内容描述**(8 库全部已入库条目,`01_美食库_中式家常菜` 9 处…)。源头 = 模板 L10 自认「同名升级」但第四节**未裁决**。
|
|||
|
|
3. **10+N 的 N 不可见**:卡内无「所属库」标注 → 本地缺口 1(12 事件中 7 个定库无处可落)无法落地。
|
|||
|
|
|
|||
|
|
**ChatGPT 9 条建议判定 = 采纳 1 / 改造 4 / 否决 3**:
|
|||
|
|
- 采纳:双轴体系(用本地方案落地)
|
|||
|
|
- 改造:事件强度评分→「主/辅」标注正式化(不新增字段);失败样本→不建库只补准入一行;真人细节→「极致内容」补原话不概括 + ≥1 处真实毛边;节奏字段→只取「铺垫量级」
|
|||
|
|
- 否决:卡内嵌 Prompt(越层)/黄金组合字段(组合是用法非素材属性)/标签三级分层之「一级心理刺激」(违反 4.4 情绪效果不设标签红线)/用户需求层(S5 选题职责)
|
|||
|
|
- **4 个外部「盲区」核实:3 个已被现有体系覆盖**(成长→反差+期待铺垫;挑战→极致行为·强度拉满;关系变化→**预见式服务**定义原文即「对方还没开口就已经做好」),仅「悬念/信息差」属标签层挤压。**再次印证:下「缺某类」结论前先读同维度已有文件。**
|
|||
|
|
|
|||
|
|
**产出**:`极致事件卡片优化方案_V1.0_20260923.md`(D1–D6 缺口 + P0–P2 改动清单 + 明确不做 + 3 项待确认:库位裁决 / 触点治理方式 / 存量 12 卡是否重出)。**状态:待确认,技能文件零改动。**
|
|||
|
|
|
|||
|
|
## 执行:极致事件卡片层治本(11:15–,按方案 10 项全部落地)
|
|||
|
|
|
|||
|
|
**触发**:用户「按照方案优化」→ 执行同日《极致事件卡片优化方案_V1.0》P0 3 + P1 4 + P2 3 = **10 项**;3 项待确认按方案建议选项落地(库位 → B 跨库横切 / 触点治理 → A 加裁决条款 / 存量卡 → A 按 V1.3 重出)。
|
|||
|
|
|
|||
|
|
**口径单源(治「极致触点」一词三义)**:`知识库/05_极致事件/01_极致类型-素材标签映射表.md` 第四节新增 **4.5 条款** —— A 布位层(爆点节点)/ B 卡片层(击中原因)/ C 8 库层(内容描述)三义 + 判据(「说画面里有什么」=C /「说用户为什么被击中」=B /「说它在第几秒引爆」=A);C = 极致事件「极致内容」等价物;**硬规则:极致事件类必须写满 10 固定字段**。节标题 四条 → 五条。
|
|||
|
|
|
|||
|
|
**横切定库(缺口 1 落地)**:同文件第二节新增「定库列怎么读」—— 极致事件 = 跨库横切类别,定库为**可选检索入口**、**可为空**(`—(横切未定)`)。不做新增「行为/情境」库、不做同一事件多库复制。
|
|||
|
|
|
|||
|
|
**模板层**(`素材库/分块定义/00_模板-各库分块模板.md` §极致事件,**V1.2 → V1.3**):① 10 字段硬规则 + 卡片头元信息行 `> 所属库:{NN 库名 | 横切未定}`(不占字段位);② 极致内容 补「原话不概括 + ≥1 处真实毛边」;③ 内容含义 补时间跨度型写法;④ 极致触点 四子项 → **效果侧两项(用户心理 / 共鸣)**,机制词归标签与类型 + 「效果词不得复用标签词」;⑤ 创作手法 补 **铺垫量级 短≤3s / 中 3-10s / 长>10s**;⑥ 事件标签 补 **≥2 值自检 + 「(主)」记法**;⑦ 专属段补「横切未定则省略」;专属说明 5 → 6 条。
|
|||
|
|
**顺带修模板内自相矛盾**:§三 ※2 字段数 `9+10=19` → **`10+10=20`**(03 库 → 15;横切未定只写 10);※3 补 4.5 指针(闭合 L10「是否同步见第四节」的**悬空指针**);「事件标签位于末位」→ **第 4 位**。
|
|||
|
|
|
|||
|
|
**评估标准**(`05_极致事件/03`):第一节补「**翻车 / 失败也是合法的极致**」—— 豪言后翻车同等入库,但须写清被打破的期待落点。
|
|||
|
|
|
|||
|
|
**存量卡重出(3 个卡文件 + 1 个方法文件,范围大于方案原列的 1 个)**:
|
|||
|
|
- `极致事件提取_多类别样本_20260922.md`:12 张卡迁移为 V1.3(10 字段 + 元信息行 + 新增效果侧触点 + 铺垫量级);同步修 §一 定库列(7 处 → 横切未定)、**§3.1 / §3.2 两处与 §一 不符的既有统计错误**(错位 2→1 补品质 1;标签分布重算,零命中实为 4 个)。
|
|||
|
|
- `极致事件卡_癫婆_模板版_20260922.md`:3 条卡触点收敛 + 元信息行 + 铺垫量级(**方案未列、属 V1.3 落地的必然连带**)。
|
|||
|
|
- `极致事件卡_癫婆_总有人打断我的休息_36468.md`:分析报告式卡,「表现形式」→「内容含义」(3 处)+ 旧映射表名同步,**保留原结构**。
|
|||
|
|
- `极致事件识别与提取方法_基于解析内容_20260922.md`:字段表「表现形式」→「内容含义」+ 定库行补「可空」+ 旧映射表名(3 处)。
|
|||
|
|
|
|||
|
|
**新自检暴露(重要实证)**:按「事件标签 ≥2 值」自检,**13 张卡中 8 张为单标签**(多类别样本 6 张 P1/P2/P3/C1/C2/C3 + 癫婆 2 张 E2/E3)—— **保留原判、逐条标 ⚠️、不追补**,作为该条款必要性的实证。
|
|||
|
|
|
|||
|
|
**版本**:`SKILL.md` frontmatter last_change 更新;`references-add/变更日志.md` 追加一条(置于 09-23 顶部)。
|
|||
|
|
|
|||
|
|
**发现项(未动,待用户决定)**:`project/内容创作产品规划/内容知识库设计/2_短视频创作知识库/素材库/分块定义/00_模板-各库分块模板.md` 是**同一模板 V1.2 的另一份副本**(知识库 V2.0 建设线),本次**未同步**(范围外)→ 若 V2.0 沿用,须同步 V1.3。
|
|||
|
|
|
|||
|
|
## 评估:优化后「重新提炼极致事件卡片」的优化点(12:20–,只读评估,技能文件零改动)
|
|||
|
|
|
|||
|
|
**触发**:用户「评估优化后 重新提炼极致事件卡片 会有哪些优化点」。
|
|||
|
|
|
|||
|
|
**结论(推演 + 已有实证交叉,非新跑样本实测)**
|
|||
|
|
- 收益不在"字段变多",而在卡片第一次走通 **判定 → 入库 → 检索 → 排布** 四段闭环;优化前断在第 2 段(定库悬空 7/12)与第 4 段(无排布信息)。
|
|||
|
|
- **最大单项 = 补回「效果层」**:旧 12 条卡**零条**写"为什么击中用户"→ `05_极致事件/03` 的 5 维评分(真实毛边配合等)要求的东西卡片不提供,只能事后补救。
|
|||
|
|
- 十项优化点:① 补效果层 ② 极致内容承载原话+毛边 ③ 定库从悬空变合法值 ④ 一次提炼到位不再返工(美食卡返工过)⑤ 标签数下限 + 主标签定义 ⑥ 卡片首次带排布信息(铺垫量级)⑦ 4.5 判据防串层 ⑧ 多收"翻车/失败"一类 ⑨ 成长/蜕变类有位(时间跨度型写法)⑩ 三条自检内建进流程;附加:4.4 分流已有 2 次实证。
|
|||
|
|
- **3 项约束**:C1 ⭐ 真瓶颈 = 标签层「喜剧/荒诞」挤在 `自嘲反差` 一个口**未裁决**,≥2 值自检在喜剧类上会撞墙;C2 ≥2 值有"凑标签"风险(实测 8/13 单标签,条款措辞须守「复核是否漏标」);C3 **重跑旧解析不产生新事实**,扩容必须扩样本(33 条清单已提炼 5 条,剩约 28 条)。
|
|||
|
|
- **关键判断**:重提炼的真正价值在 **「提炼即入库」** —— 12 条卡至今散在仓库根一份实测报告里,**不是素材库资产、S7 调不到**。所以推进次序应是**先定落点,再批量重提炼**。
|
|||
|
|
|
|||
|
|
**产出**:`极致事件卡片重提炼优化点评估_V1.0_20260923.md`(十项优化点 + 3 约束 + 4 步推进次序 + 证据索引附录)。**状态:评估报告,未改动技能文件。**
|
|||
|
|
|
|||
|
|
## 评估:卡片是否存在 WeKnora 模式下(14:27–14:45,**本机实例实测 5 轮**,未动技能文件)
|
|||
|
|
|
|||
|
|
**触发**:用户「评估 这类卡片适合存在 wekonra 那种模式下」。
|
|||
|
|
|
|||
|
|
**结论**:**适合,但要换容器 —— 要的是「卡片库」不是「文档库」**。
|
|||
|
|
- ✅ 最优 = **FAQ 型知识库**(一条目 = 一分块,不走文档分块器 → 卡片原子、字段不打散)
|
|||
|
|
- ❌ **不要走文档分块**:实测(`POST /chunker/preview`,零写入)同一批 3 张卡 691/952/1150 字,512/80 粒度 → **9 块,一张卡被拆成 4 片**(内容层 4 字段 + 3 字段 + 呈现层 4 字段);**overlap 80 致同一字段出现在两块**;**块跨越两张卡**;且**不可预测**(1150 字的卡反而整块未切)。heading 策略逐块结果**完全相同**;1200/0 仍有跨块、一块含 2 卡;2000/0 字段完整但仍一块多卡。
|
|||
|
|
- 🔒 边界:**git 仍是唯一权威源,WeKnora 只做派生检索层**;**规则类文本(S1-S11/35 项/映射表/评估标准)不要进** —— 召回率≠100%(阈值 0.5/0.3 直接滤掉),规则必须留文件做硬闸门。
|
|||
|
|
|
|||
|
|
**WeKnora 0.8.0 数据模型要点(实证 file:line)**
|
|||
|
|
- 条目类型:file/url/**manual**(markdown + draft/publish + 条目级版本)/ **faq**;KB 类型 document / faq / wiki 三选一。
|
|||
|
|
- 条目级:`Tags`(KB 内**同名唯一**,多对多)+ `FolderPath`(纯导航)+ **`CustomMetadata`(JSON,但不参与检索过滤!只在结果里暴露给模型)** + `Profile`(LLM 生成)。
|
|||
|
|
- 检索:`SearchParams.TagIDs / ScopeTagIDs`;`DisableRecallThresholds` 保证圈定范围内不被阈值抹掉;FAQ 有 **两级标签优先** `first/second_priority_tag_ids`。
|
|||
|
|
- FAQ 条目:`standard_question` + `similar_questions` + `negative_questions`(**不入索引**,只做精度控制)+ `answers[]` + **每条一个 tag** + 推荐位 + 直接回答阈值;`Content`(返回给模型)与 `IndexContent`(向量化)**分离** → 卡片正文可保真。
|
|||
|
|
- 治理:批量 JSON 导入导出、**`dry_run` 预校验 + 失败明细**、append/replace、**按 ID 或按 Tag 批量改字段**。
|
|||
|
|
|
|||
|
|
**实测踩到 3 个坑(全部有日志证据)**
|
|||
|
|
1. ⭐ **FAQ 型库默认 `vector=false / keyword=false`** → 入库 100% 成功但**检索永远返回空**(`success:true, data:[]`,静默失败);根因日志 `knowledgebase_search.go:195 [HybridSearch] | No retrievable indexing pipelines`。→ 建库必须显式传 `indexing_strategy.{vector_enabled,keyword_enabled}=true`。
|
|||
|
|
2. 建库/条目不绑 `embedding_model_id` → 导入卡在 `processing/0%`,**progress 接口 error 字段为空**,只能翻容器日志看 `failed to get embedding model: model ID cannot be empty`。
|
|||
|
|
3. **`dry_run` 是异步任务且占导入通道** → 紧接着发正式导入会 `400 已有导入任务在进行中`;须轮询 dry_run 的 task 至 completed 再导。
|
|||
|
|
|
|||
|
|
**终验(开启管线后)**:2 条卡导入 2/2,FAQ 检索标准问命中 **score=0.8219,返回答案长度 691 = 整张卡**。**待调项**:语义改写问法命中 0(→ 相似问须覆盖真实检索口径 / 降阈值 / 或走通用 `/hybrid-search`,实测该通道对 FAQ chunk 可命中);标签优先检索那一次命中 0,未独立验证。**MCP 无 FAQ/Tag 工具,`hybrid_search` 无 `tag_ids`** → 走 MCP 拿不到标签圈定能力,须走 HTTP API(`localhost:31607`,key 在 `D:\.workbuddy\mcp.json`)。
|
|||
|
|
|
|||
|
|
**产出**:`极致事件卡片_WeKnora适配性评估_V1.0_20260923.md`;实测脚本与原始输出归档到 `tools/weknora-fit/`(4 脚本 + `out/*.txt`)。临时实验库 4 个已全部删除(均有 HTTP 200 回执),**未碰 `mcnvideoprompt`**。
|
|||
|
|
|
|||
|
|
## 执行:创建 WeKnora 正式容器并灌入 11 张卡(14:54–,容器已上线可检索)
|
|||
|
|
|
|||
|
|
**触发**:用户「你可以创建对应容器码(容器)」。
|
|||
|
|
|
|||
|
|
**容器(长期库,非临时实验库)**
|
|||
|
|
|
|||
|
|
| 项 | 值 |
|
|||
|
|
|:--|:--|
|
|||
|
|
| 库名 / ID | **MCN极致事件素材库** / `e6772e41-7b72-499d-b46c-e5ca7c9d1740` |
|
|||
|
|
| 类型 | FAQ 型(一条目=一分块,不走文档分块器) |
|
|||
|
|
| 模型 | embedding `03f0cf45`(bge-m3) / summary `a2de7804`(glm-5.3-flash) |
|
|||
|
|
| 索引 | `vector=true` `keyword=true`(建库时即显式开,避开 P1 静默失败坑) |
|
|||
|
|
| 导入 | **11/11 成功、0 失败**;答案 576–978 字**整卡无损** |
|
|||
|
|
| 标签 | 6 个(12 维原样值):反差 4 / 反常识 2 / 难度极限 2 / 自嘲反差 1 / 食材极致 1 / 预见式服务 1 |
|
|||
|
|
|
|||
|
|
**条目字段映射**:标准问=主检索意图 | 相似问=4 条其他问法 | 反例问=2 条不该命中边界 | 答案=整张卡正文 | tag=主标签。与 `mcnvideoprompt` **完全独立**(未混库、未碰)。
|
|||
|
|
|
|||
|
|
**⭐ 本轮最重要发现:FAQ 检索的 `vector_threshold` 默认 0.7(硬编码),是"入库了却搜不到"的真因**
|
|||
|
|
|
|||
|
|
`SearchFAQEntries`(`knowledge_faq.go:932`)`if req.VectorThreshold <= 0 { = 0.7 }`;且 FAQ 检索**恒为 `DisableKeywordsMatch: true` → 纯向量,关键词完全不参与**(把关键词串写进相似问是无效操作)。**注意与通用检索/自定义 Agent 的默认值(vector 0.5 / keyword 0.3,`custom_agent.go:544/547`)是两套,别混。**
|
|||
|
|
|
|||
|
|
阈值扫描(33 探针 × 7 档,脚本 `6_threshold.py`,结果 `out/6_threshold.txt`):
|
|||
|
|
|
|||
|
|
| 探针组 | 0.7(默认) | **0.5** | 0.45 |
|
|||
|
|
|:--|:--:|:--:|:--:|
|
|||
|
|
| A 标准问原句(11) | 11 命中(各 1 条) | 11/11,top1 全对 | 同 |
|
|||
|
|
| B 相似问原句(11) | 8 命中 / 3 条 0 | 11/11,top1 全对 | 同 |
|
|||
|
|
| **C 未登录新口语问法(11)** | **仅 1/11(9%)** | **11/11,top1 全对** | 11/11(召回满 5 条) |
|
|||
|
|
|
|||
|
|
→ **上线参数:`vector_threshold = 0.5`,`match_count = 3~5`**;要多候选用 0.45。
|
|||
|
|
→ **标签优先检索同样依赖阈值**:`first_priority_tag_ids` + 默认 0.7 → 6 个标签**全部 0 命中**;降到 0.5 后命中数 == 该标签条目数(反差4/反常识2/难度极限2/其余各1)→ 标签机制本身正常,**别误判成失效**。
|
|||
|
|
|
|||
|
|
**产出**:`极致事件素材库_WeKnora容器交付说明_V1.0_20260923.md`(容器信息 + 11 条清单 + 检索参数 + 字段映射 + 已知限制 + 待定);脚本 `tools/weknora-fit/5_build_event_lib.py`(**含幂等护栏**:同名库已有条目→退出/为空→复用/标签已存在→跳过)、`6_threshold.py`。
|
|||
|
|
**技能沉淀**:更新 `~/.workbuddy/skills/weknora-structured-ingest` → **v1.1**(更正 frontmatter 中错误默认值、新增「阈值 0.7 须显式传 0.5」为第 5 条铁律、第四步改为阈值扫描法、补标签优先阈值依赖与单标签限制、收尾纪律补正式库幂等护栏)。
|
|||
|
|
**技能文件(短视频工作台)零改动** —— 是否把「素材检索入口」接进 S7 待用户决策。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 追问实测:为什么不用文档型容器 / 不分块可以吗(2026-09-23 晚)
|
|||
|
|
|
|||
|
|
**背景**:用户追问「为什么不用文档呢 不分块可以吗」——技术可行性追问,须实测而非推演。
|
|||
|
|
|
|||
|
|
**方法**:两轮实测。① 零写入 `POST /chunker/preview`(`7_doc_noblock.py`);② 建**临时 document 型库**(跑完 `DELETE` HTTP 200 回执),11 篇 manual(一卡一文档),索引 125s 完成(`8_doc_vs_faq.py`)。
|
|||
|
|
|
|||
|
|
**结论 A:分块能解决,但只有一条路**
|
|||
|
|
- `splitBySeparators` 早返回:文本 ≤ chunkSize **完全不切**(`splitter.go:225-227`)→ 单卡 1150 字 + chunk_size 1200 = **1 块完整**
|
|||
|
|
- ⭐ **`absoluteMaxSize = 7500` 硬上限**(`splitter.go:400`)→ 整篇 8605 字必切,chunk_size 设 100000 也切成 2 块(块1 硬塞 9 卡)
|
|||
|
|
- **"卡标题提为第一优先级分隔符"无效**:输出与普通分隔符**逐块完全相同**(10 块 = 6 完整 + 3 混装 + 2 半卡)
|
|||
|
|
- **唯一姿势 = 一卡一文档 + chunk_size ≥ 卡长** → 实测 11 篇各 **1 块**(等于手工模拟 FAQ 原生行为)
|
|||
|
|
|
|||
|
|
**结论 B:检索才是分水岭(同口径 A/B/C 三组 × 11 条,判 top1)**
|
|||
|
|
|
|||
|
|
| 容器 | A 标准问 | B 相似问 | C 口语新问法 |
|
|||
|
|
|:--|:--:|:--:|:--:|
|
|||
|
|
| FAQ @0.5 | 11/11 | 11/11 | **11/11** |
|
|||
|
|
| 文档型最佳档 | 11/11 @0.7 | 10/11 @0.5 | **9/11 @0.5** |
|
|||
|
|
|
|||
|
|
- ⭐ **文档型无单一可用工作点**:A 组最优 0.7、C 组最优 0.5,**互斥**(FAQ 在 0.5 单点即三组全满)
|
|||
|
|
- **文档型召回卡上限**:B 封顶 10/11、C 封顶 9/11,降阈值不涨 → 瓶颈是**语义入口不足**而非阈值
|
|||
|
|
- **机制**:FAQ 索引「标准问+相似问」(短问句,问↔问匹配);文档型索引**整卡正文**(含镜头语言/复用场景等 → 需求句向量被稀释)。实测例:「家常菜做到能开店水准」文档型全阈值错配,FAQ `score=0.69` 命中
|
|||
|
|
|
|||
|
|
**产出**:`极致事件卡片_文档型容器可行性实测_V1.0_20260923.md`;脚本 `7_doc_noblock.py`、`8_doc_vs_faq.py` + `out/7_*.txt`、`out/8_*.txt`。
|
|||
|
|
**技能沉淀**:`weknora-structured-ingest` → **v1.2**(铁律 1 补实测论证 + 新增「选型结论:为什么文档型代替不了 FAQ」整节,含 5 配置分块表 + 三组命中率表 + 机制解释)。
|
|||
|
|
**临时库已删**(HTTP 200);正式库 `MCN极致事件素材库` 与 `mcnvideoprompt` 未触碰;**短视频工作台技能文件零改动**。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 15:45 麦芽平台「近 3 个月 ≥20w 赞」全量清单产出(2202 条 / 三格式)
|
|||
|
|
|
|||
|
|
**任务**:把热门短视频**无门槛全集**按「发布日期 ≥ 2026-06-23 且 点赞 ≥ 20w」过滤,落到表格。
|
|||
|
|
|
|||
|
|
**采集(browser-harness / CDP 9333,页面内 `fetch` + 轮询 `window.__ALL`)**
|
|||
|
|
- 全集 **7917 条**(昨日 7904,+13);`pageSize=50 × 159 页`,**零异常页**
|
|||
|
|
- 全集日期范围 **2026-02-09 ~ 2026-09-23**;近 3 个月区间内 3531 条 → **命中 2202 条(62.4%)**
|
|||
|
|
- `uploadType` 分布:0=6439 / 1=1462 / 2=16(人工上传占 18.5%,与昨日 18.3% 一致 → 阈值不可依赖页面筛选的结论再次成立)
|
|||
|
|
- ⚠️ **响应信封 = `total / rows / code / msg`,没有 `pages` 字段** → 页数须 `ceil(total/pageSize)` 自算(首轮探测按 `pages` 取值崩过一次)
|
|||
|
|
|
|||
|
|
**命中分布**:赛道 剧情 1194 / 生活vlog 971 / 美妆 31 / 空 6;月份 9月 304·8月 864·7月 836·6月 198;日期来源 发布 1738 / 上传 464;赞 20.0w ~ 2489w
|
|||
|
|
|
|||
|
|
**产物(仓库根,三格式同名)**
|
|||
|
|
- `热门短视频清单_近3个月20w赞以上_20260923.xlsx` —— **主表**(`A1:P2203`,16 列 + 「统计概览」页;冻结表头 + 自动筛选 + 点赞/播放千分位 + 播放地址/详情页超链接)
|
|||
|
|
- 同名 `.csv`(UTF-8 BOM)、同名 `.md`(口径三段 + 分布观察 + 点赞 TOP100)
|
|||
|
|
- 脚本:`tools/_bh_pull_3m.py`(拉全集+过滤,含 `list_tabs` 复用标签页逻辑)/ `tools/_build_3m.py`(出三格式)
|
|||
|
|
|
|||
|
|
**工具链新事实**
|
|||
|
|
- ⭐ 托管 venv(`D:\.workbuddy\binaries\python\envs\default`)**无 openpyxl、且 pip 装不上**(`pypi.tuna` 索引返回 "no versions")→ 需产真 `.xlsx` 一律走 **`D:/miniconda3/python.exe`**(自带 openpyxl 3.1.5 / pandas 3.0.5)
|
|||
|
|
- browser-harness venv(`subskills/browser-harness/envs/browser-harness/Scripts/python.exe`)**可直接调用**(`pyvenv.cfg` 的 home 指向 uv `cpython-3.12.13` 仍在;`.pth` 相对路径 `../../../../src` 生效)→ **不设 PYTHONPATH 也能 import browser_harness**;调用前仍须 `unset *_PROXY` + `no_proxy=127.0.0.1,localhost`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 16:00 补齐「近7天20w赞」Excel(用户口径:表格=Excel)
|
|||
|
|
|
|||
|
|
**原委**:用户此前说「昨天保存的热门短视频卡片的那张表」= `热门短视频清单_近7天20w赞以上_20260922`,但当时只落了 `.csv`/`.md`,**缺 `.xlsx`**(9-22 那轮未出 Excel)。本次补齐。
|
|||
|
|
|
|||
|
|
**产物**
|
|||
|
|
- 新增 `热门短视频清单_近7天20w赞以上_20260922.xlsx`:3 个 sheet
|
|||
|
|
- `近7天20w赞清单`(33 条,`A1:P34`):同 3 个月表的 16 列字段体系,冻结表头 + 自动筛选 + 千分位 + 播放地址/详情页超链接
|
|||
|
|
- `推荐TOP`(13 条):口径「点赞 ≥50w 且同作者仅取最高一条」
|
|||
|
|
- `统计概览`:采集口径 / 字段完整性 / 赛道分布 / 作者 TOP20 / 点赞区间
|
|||
|
|
- 脚本:`tools/_xlsx_7d.py`(由 `tools/_hot7d_api.json` 直出 Excel;改常量即可换窗口)
|
|||
|
|
|
|||
|
|
**发现(md 待修)**
|
|||
|
|
- `热门短视频清单_近7天20w赞以上_20260922.md` 的「二、推荐(8 条)」与其**声明的口径(点赞≥50w + 同作者最高)不符**:按该口径实为 **13 条**(癫婆/周小闹/李什么闯/橙子橙了/周小闹(胡闹)/周小小闹(大学宿舍)/万里/刘大炮/刘一朵/Hana/辣辣老师/A导/程盛)。判断是该表沿用上一版 15 条时的结果、重采后未同步重算。**Excel 版按声明口径给 13 条**。
|
|||
|
|
|
|||
|
|
**规律沉淀**
|
|||
|
|
- ⭐ 「表格」在本项目语境 = **Excel(.xlsx)**,清单类产物默认**必须出 .xlsx**,csv/md 只是配套。
|
|||
|
|
- 近 7 天 33 条中 32 个唯一作者(仅「橙子橙了」2 条);时长有值 13 / 空 20(与 `uploadType=0` 数量一致)。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 16:05 「近3个月20w赞」也补齐 Excel(去掉 md)
|
|||
|
|
|
|||
|
|
**用户澄清**:「我是说把 7904 条中近 3 个月 20W 点赞以上的都保存到表格中,**表格是指 excel 表格**」+「不需要放到 md 文件」。
|
|||
|
|
|
|||
|
|
**执行**
|
|||
|
|
| 操作 | 对象 | 详情 |
|
|||
|
|
|:--|:--|:--|
|
|||
|
|
| 重建 | `热门短视频清单_近3个月20w赞以上_20260923.xlsx` | 由「主表 + 统计概览」补为 **3 页**:`近3个月20w赞清单`(2202 条,`A1:P2203`)+ **`推荐TOP`(413 条,点赞≥50w 且同作者仅留最高一条)** + `统计概览`(新增「推荐TOP口径」块) |
|
|||
|
|
| 改脚本 | `tools/_build_3m.py` | **删掉 md 生成段**,加 `推荐TOP` 页;现只出 xlsx + csv |
|
|||
|
|
| 删文件 | 两份清单 `.md` | `热门短视频清单_近3个月20w赞以上_20260923.md`、`热门短视频清单_近7天20w赞以上_20260922.md` |
|
|||
|
|
| 新增工具 | `tools/_del_md.js` | node `fs.unlinkSync` 直删(本机 `Remove-Item` 走 trash,非 ASCII 文件名必静默失败) |
|
|||
|
|
| 更新技能 | `maiya-hot-video-export` → v1.2 | 铁律 5→6 条,新增第 6 条「⛔ 不产 md」;「导出三格式」改为「xlsx 主交付 + csv 配套」 |
|
|||
|
|
|
|||
|
|
**数据事实(3 个月窗口 2026-06-23 ~ 09-23)**:全集 7917,区间内 3531,命中 **2202**(62.4%);时长有值 1738 / 空 464;日期来源 发布 1738 / 上传 464;点赞 20.0w ~ **2489.2w**(`李要得` 生活vlog《青春没有售价,从重庆打出租车直达拉萨》);点赞 TOP 里 `周小闹`「饭店的暑假工」系列占 10+ 席。
|
|||
|
|
|
|||
|
|
**规律沉淀(升格)**
|
|||
|
|
- ⭐⭐ **本项目「表格」= Excel(.xlsx),且只要 xlsx** —— 清单类交付**默认只出 xlsx(+ csv 配套)**,**写 md 属于过度交付会被要求删**。9-22 只给 csv/md、9-23 又给 md,连续两次被纠。
|
|||
|
|
- 产物落点:仓库根目录(非 tools/),命名 `热门短视频清单_近{窗口}20w赞以上_{日期}.{ext}`。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 16:35 极致事件卡片批量生产流程试跑(MCP 取解析 → 出卡 → 入 WeKnora FAQ 容器)
|
|||
|
|
|
|||
|
|
**用户要求**:调用 MCP 取这些视频的解析 → 生成极致事件卡片 → 存进 WeKnora 的 QA(FAQ)容器;**先跑 2 个看流程是否正常**。
|
|||
|
|
|
|||
|
|
**样本**:`38098` 晚叙miki《我的游泳教练好像有两幅面孔?》(剧情·情感反差,89s,34.4w赞)+ `28274` 旧梦留声机《最暖的归栖,是爷爷在的小屋》(剧情·亲情,247s,507.5w赞)
|
|||
|
|
|
|||
|
|
**产物 4 张卡 → 库内 11 → 15 条**
|
|||
|
|
| 卡 | 事件 | 极致类型 | 主标签 | 答案字数 |
|
|||
|
|
|:--:|:--|:--|:--:|:--:|
|
|||
|
|
| A1 | 「冷面私教」与「网恋撒娇小狗」同体错位 | 戏剧极致·错位 | 反差 | 776 |
|
|||
|
|
| A2 | 雨夜湿身敲门 · 高冷男神的卑微挽留 | 戏剧极致·反转 | 反差 | 723 |
|
|||
|
|
| B1 | 爷爷逆光推门 ·「娃不用你们轮了,以后我带」 | 戏剧极致·反转 | 反常识 | 789 |
|
|||
|
|
| B2 |「帮我带娃」的善意谎言 · 用求助的名义给爱 | 感官极致·细致 | 反常识 | 929 |
|
|||
|
|
|
|||
|
|
**终验**:标准问 top1 4/4(0.79/0.84/0.81/0.80)|口语问法 top1 4/4(0.68/0.68/0.73/0.70)|答案长度与卡片原文**逐条相等**(原子性 ✅)|`dry_run` 4/4 → 正式导入 `success=4 failed=0`
|
|||
|
|
|
|||
|
|
**新发现(实测,非推演)**
|
|||
|
|
1. ⛔ **`POST /faq/entries/{id}/similar-questions` 写库成功但不重建向量索引** —— 读回 6 条相似问,可探针分数**按位未变**(A1 0.6477 → 0.6477)。改问法只能 **`DELETE /faq/entries {"ids":[…]}` + 重导**;重导后 A1 升到 0.6833,口语探针 3/4 → **4/4**。
|
|||
|
|
2. ⛔ **单条 `POST /faq/entry` 建的条目检索不到**(等 10s 仍 0 命中)→ 入库一律走**批量通道** `POST /faq/entries`(临时条目已 DELETE 清理)。
|
|||
|
|
3. ⚠️ **解析(`analysis`)场次表里的「极致触点」是布位层口径(4.5 的 A 层),不是卡片第 3 字段的效果侧 B** —— 照搬=口径错置;`极限维度` 里的机制词(反差/身份落差)应归 `事件标签`/`极致类型`,`真实毛边` 可直进 `极致内容`。
|
|||
|
|
|
|||
|
|
**产物/脚本**
|
|||
|
|
- 卡片源:`tools/weknora-ingest/1_cards_batch1_20260923.md`(```text 围栏,一卡一块)
|
|||
|
|
- 入库脚本:`tools/weknora-ingest/2_import.py`(定位库→按 `standard_question` 判重→建缺失标签→dry_run→正式导入→落库核对→检索终验,全幂等);输出 `out/2_import.txt`
|
|||
|
|
- 试跑报告:`极致事件卡片_MCP批量生产试跑报告_V1.0_20260923.md`
|
|||
|
|
- 容器:`MCN极致事件素材库`(`e6772e41-7b72-499d-b46c-e5ca7c9d1740`),标签 反差 6 / 反常识 4 / 难度极限 2 / 自嘲反差 1 / 食材极致 1 / 预见式服务 1
|
|||
|
|
|
|||
|
|
**放量待定**:近7天 33 条 / 推荐TOP 413 条 / 全量 2202 条(2200–6600 张卡)三档;另需定「归属库字段」(剧情亲情类填 `横切未定` 只写 10 字段)与卡片命名编号规则。
|
|||
|
|
|
|||
|
|
**沉淀**:技能 `weknora-structured-ingest` 升 **v1.3**(铁律 5→6 条,新增「改相似问必须删+重导」「勿用单条建卡」;新增「第五步:批量产卡」与「上游解析口径陷阱」两节)。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 无人值守批量生产(自动任务链)—— 已排程
|
|||
|
|
|
|||
|
|
**范围定档**:全量 **2202 条按点赞降序**(高价值优先,跑不完也先吃高赞),不再纠结 33/413 三档;归属库字段暂按「剧情亲情类 = 横切未定,只写 10 固定字段」;卡片编号定 `{来源详情ID}-{序号}`。
|
|||
|
|
|
|||
|
|
**排程**:**单次自动任务链**(非 recurring)—— 每批 5 条,处理完自己建下一个单次任务;窗口 **23:10–次日 08:00**,窗口外/临近 07:45 顺延当晚 23:10,队列空则收尾不建。
|
|||
|
|
- 首个任务 id `cff38308-4992-4c80-8543-e669b0b3effb`,`scheduledAt=2026-09-23T23:10`,cwds `D:/AI技能/mcn-short-video`。
|
|||
|
|
- 速度预估:窗口 530 分钟 → 每批 6/10/15 分钟 ≈ 440 / 265 / 175 条视频一夜。
|
|||
|
|
|
|||
|
|
**新增脚本(全幂等,可重复跑)**
|
|||
|
|
| 脚本 | 作用 |
|
|||
|
|
|:--|:--|
|
|||
|
|
| `tools/weknora-ingest/0_queue_init.py` | 由 `_hot3m_api.json` 生成 `queue.json`(2202 条按赞降序)+ `state.json`(done 预置 38098/28274) |
|
|||
|
|
| `1_next_batch.py [n]` | 取下一批(默认 5),跳过 done/skipped,写 `out/next.json` |
|
|||
|
|
| `2_import_batch.py <md> <spec.json>` | 通用批次导入(判重→建标签→dry_run→正式→终验 0.5);**退出码 2 = 库不存在** |
|
|||
|
|
| `3_done_batch.py --ids … --cards N --imported M [--skip id:原因]` | 登记进度、推进 cursor,输出 `CONTINUE` / `QUEUE_EMPTY` |
|
|||
|
|
- 批次产物落 `tools/weknora-ingest/batches/batch_NNNN.md` + 同名 `.spec.json`。
|
|||
|
|
- **作业手册 `tools/weknora-ingest/RUNBOOK.md`** = 自动任务的唯一权威上下文(8 步骨架 + V1.3 卡片规格 + 6 条红线 + 窗口判定表 + 接续 prompt 模板 + 故障速查)。以后改口径先改这里。
|
|||
|
|
|
|||
|
|
## 极致事件卡片 · 批次 1 落地(23:10–23:30,无人值守自动任务首跑)
|
|||
|
|
- 处理 5 条:`33304`李要得·打出租车去拉萨 / `33295`李斯曼曼·生产日记 / `26220`这是TA的故事·吹风机夫妻吵架 / `24868`快乐的阿放·七彩中国 / `24520`赵哥·澳门看女儿演唱会。
|
|||
|
|
- 出卡 **15 张**(每条 3 张),全部 `所属库:横切未定`(旅行/孕产/夫妻剧情/风光混剪/明星家属,均不属 8 库形态)。
|
|||
|
|
- 导入 FAQ 库 `MCN极致事件素材库`:**15/15 成功,检索终验 15/15 ✅**(score 0.587–0.805),库内 **15 → 30 条**。新增标签:价值观冲击、视觉冲击。
|
|||
|
|
- 产物:`batches/batch_0001.md` + `batch_0001.spec.json`;日志 `out/import_batch_0001.txt`。进度:完成 7 | 剩余 2195/2202。
|
|||
|
|
- 🐛 **新坑(已治本)**:`GET /faq/entries` 默认 `page_size=20` → 不分页读数静默偏低(导入 15 条后脚本报「20」,真实 30),且**判重走同一条读取路径**会失效。已给 `2_import_batch.py` 加 `list_entries()` 分页读全(`page_size=100` 按 `total` 收口),并写进 RUNBOOK §步骤7 与技能 `weknora-structured-ingest` 红线 7。
|
|||
|
|
- 接续任务已建:`MCN极致事件卡片批量生产 · 第2批`,2026-09-23 23:29 单次触发。
|
|||
|
|
|
|||
|
|
## 23:29-23:45 极致事件卡片批量生产 · 批次 2(自动任务)
|
|||
|
|
- 5 条视频 23166/28268/20217/28348/30102 → 15 张 V1.3 卡,写 batches/batch_0002.md + .spec.json
|
|||
|
|
- 导入 WeKnora FAQ 库 15/15,检索终验 15/15 ✅(阈值 0.5,score 0.67-0.80),库内 45 条;新建标签「品质对比」
|
|||
|
|
- 拆卡经验:剧情/职场长视频(130-140s)按「开场钩子 / 中段冲突升级 / 结尾反转奖惩」拆 3 卡最稳
|
|||
|
|
- RUNBOOK 已回写批次 2 记录与拆卡经验;已建下一个单次任务「第3批」@ 2026-09-23T23:45
|
|||
|
|
|
|||
|
|
## 23:45-23:55 极致事件卡片批量生产 · 批次 3(自动任务)
|
|||
|
|
- 5 条视频 17449/21818/28008/24791/20384 → 15 张 V1.3 卡,写 batches/batch_0003.md + .spec.json
|
|||
|
|
- 导入 15/15,检索终验 15/15 ✅(阈值 0.5,score 0.71-0.79),库内 60 条;首个「自嘲反差」主标签卡
|
|||
|
|
- 新经验:同系列账号(周小闹·暑假工)同批 4/5 时,主标签必然撞车 → 相似问必须绑定各自具体桥段;超长视频(356s)拆 3 卡只取开场破冰/中段人情高潮/圆梦反转,高光场面宁弃勿挤
|
|||
|
|
- RUNBOOK 已回写批次 3 记录;已建下一个单次任务「第4批」@ 2026-09-23T23:58
|