159 lines
31 KiB
Markdown
159 lines
31 KiB
Markdown
# 2026-09-24 工作日志
|
||||
|
|
|
|||
|
|
## 00:0x · 极致事件卡片批量生产 · 批次 4(无人值守自动任务)
|
|||
|
|
- 处理 `21819 / 33425 / 21779 / 30078 / 20367` → 出卡 15,导入 WeKnora FAQ 库 `MCN极致事件素材库` 15/15,检索终验 15/15(threshold 0.5,score 0.73–0.82),库内 **75 条**。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0004.md` + `batch_0004.spec.json`。
|
|||
|
|
- 踩坑(已治本写入 RUNBOOK):spec 的 `card` 与 md 的 `### ` 标题需逐字一致,导入脚本只报「对不上」不报差异位置 → 导入前用 3 行 Python 比对两边标题。
|
|||
|
|
- 状态:完成 22 | 剩余 2180 / 2202;已建第 5 批单次任务(2026-09-24T00:15)。
|
|||
|
|
|
|||
|
|
## 00:2x · 极致事件卡片批量生产 · 批次 5(无人值守自动任务)
|
|||
|
|
- 处理 `21730 / 24840 / 21727 / 28330 / 34790` → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.75–0.85),库内 **90 条**。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0005.md` + `batch_0005.spec.json`。
|
|||
|
|
- 做法沉淀(已写入 RUNBOOK「批次 5 经验」):4/5 仍是周小闹系列 → **同系列内给每条视频的 3 张卡各配不同主标签**(本批主标签 = 反差5/反常识4/视觉冲击2/自嘲反差2/价值观冲击1/预见式服务1/细节专业1),避免批内互抢召回;25s 极短视频按独立闭环同样拆 3 卡。
|
|||
|
|
- 状态:完成 27 | 剩余 2175 / 2202;已建第 6 批单次任务(2026-09-24T00:28)。
|
|||
|
|
|
|||
|
|
## 00:34 · 极致事件卡片批量生产 · 批次 6(无人值守自动任务)
|
|||
|
|
- 处理 `18909 / 28311 / 36728 / 24841 / 30153` → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.73–0.84),库内 **105 条**,无新建标签。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0006.md` + `batch_0006.spec.json`;RUNBOOK 已追加批次 6 记录与经验。
|
|||
|
|
- 做法沉淀:278s 长视频拆 3 卡取「开场装杯被打脸 / 中段数量奇观 / 结尾信物升华」,软广段与派餐段宁弃;「自嘲反差」主标签判据再验证 = 先高调立 flag 再自己拆台。写 spec 前的比对脚本一次通过。
|
|||
|
|
- 状态:完成 32 | 剩余 2170 / 2202;已建第 7 批单次任务(2026-09-24T00:39,id `f353aa08-…`)。
|
|||
|
|
|
|||
|
|
## 00:4x · 极致事件卡片批量生产 · 批次 7(无人值守自动任务)
|
|||
|
|
- 处理 `30101 / 31774 / 17404 / 17468 / 28294` → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.75–0.85),库内 **120 条**,无新建标签。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0007.md` + `batch_0007.spec.json`;RUNBOOK 已追加批次 7 记录与经验。
|
|||
|
|
- ⚠️ **踩坑(已治本写入 RUNBOOK 步骤 5 红线)**:`2_import_batch.py` 用非贪婪正则按 ` ```text ` 围栏解析卡片,**15 张卡写进同一个围栏只会被识别成 1 张** → 报「卡片 1 张」+ 14 条 spec 对不上。正确写法 = 每张卡独占一个围栏。导入前自检:`len(re.findall(r'```text\n(### [^\n]+\n.*?)\n```', src, re.S))` 应等于卡数。
|
|||
|
|
- 标签判据补充:「细节专业」= 专业条款被拆成递进问答、一轮顶回一个理由;「预见式服务」= 预判对方的难堪并提前把台阶铺好(与品质对比无关)。
|
|||
|
|
- 状态:完成 37 | 剩余 2165 / 2202;已建第 8 批单次任务(2026-09-24T00:52,id `5bc97c8c-…`)。
|
|||
|
|
|
|||
|
|
## 01:0x · 极致事件卡片批量生产 · 批次 8(无人值守自动任务)
|
|||
|
|
- 处理 `26518 / 33453 / 24498 / 26497 / 36468` → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.69–0.79),库内 **135 条**,无新建标签。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0008.md` + `batch_0008.spec.json`;RUNBOOK 已追加批次 8 记录与经验。
|
|||
|
|
- 本批首次混入非周小闹素材:`24498` 周大爷不服老(186s 硬核健身 vlog,全片首个生活 vlog 卡)、`36468` 癫婆(50s 军训段子)。
|
|||
|
|
- 做法沉淀:① 围栏自检 + 标题比对两个自检**合并为固定前置步骤**,本批一次通过;② 主标签打散 = 反差4/反常识3/视觉冲击3/价值观冲击2/品质对比1/细节专业1/自嘲反差1;③「品质对比」= 品质标准被资历/利润公然替换;④「细节专业」= 一轮搜证顶回一个理由形成闭环;⑤ 50s 短段子拆 3 卡可行,前提三卡的期待-打破落在不同对象上;⑥ 生活 vlog 用 `行为极致·{离谱/反差/整蛊}`,剧情用 `戏剧极致·{反转/冲突/冲击/荒诞/专业}`。
|
|||
|
|
- 状态:完成 42 | 剩余 2160 / 2202;已建第 9 批单次任务(2026-09-24T01:05,id `65cbe8c2-…`)。
|
|||
|
|
|
|||
|
|
## 01:1x · 极致事件卡片批量生产 · 批次 9(无人值守自动任务)
|
|||
|
|
- 处理 `24856 / 21778 / 24792 / 37368 / 20343` → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.68–0.82),库内 **150 条**,无新建标签。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0009.md` + `batch_0009.spec.json`;RUNBOOK 已追加批次 9 记录与经验。
|
|||
|
|
- 本批首个校园暗访爽剧素材:`37368` 脱缰凯(272s 校长微服私访查饭卡乱扣费),`极致类型` 仍走 `戏剧极致·{反转/荒诞}`。
|
|||
|
|
- 做法沉淀:① **spec 改用临时 py 按 md 顺序生成**(自建卡片顺序表 + 标签/标准问/相似问/反例问),从根上消灭「md ### vs spec.card」不一致,配合围栏自检一次通过;② 主标签打散 = 反常识4/反差4/视觉冲击2/价值观冲击2/细节专业2/自嘲反差1;③「细节专业」补层 = 物证点破(敲盒底日期 / 举硬盘)+ 极快语速链条推理,缺物证不成立;④ 272s 长视频仍只拆 3 卡,结尾猎奇彩蛋(地窖啃烂土豆)宁弃不为之单开卡。
|
|||
|
|
- 状态:完成 47 | 剩余 2155 / 2202;已建第 10 批单次任务(2026-09-24T01:21,id `d9abd8a9-…`)。
|
|||
|
|
|
|||
|
|
## 00:3x · MEMORY.md 精简重写(25973 → 11339 字符)
|
|||
|
|
- 注入时超限被截断 → 按「索引 + 红线 + 踩坑」原则重写:WeKnora 详细参数、采集脚本细节等已固化在 `tools/weknora-ingest/RUNBOOK.md` 与技能文件,此处只留指针;保留工具链坑、创作红线、子技能要点。
|
|||
|
|
|
|||
|
|
## 01:2x–01:3x · 极致事件卡片批量生产 · 批次 10(5 视频 → 15 卡)
|
|||
|
|
- 视频:31775 菜难吃 / 35110 外卖堂食不一样 / 18973 赠菜要好评 / 23334 俩人坐包房(均周小闹)+ 20270 时间的终点(至尊旭 科幻悬疑 616s,本流水线首个科幻题材)。
|
|||
|
|
- 产出:batches/batch_0010.md + .spec.json;导入 WeKnora FAQ 库 15/15,终验 15/15 ✅(score 0.79–0.87,历批最高),库内 150 → 165 条;无新建标签。
|
|||
|
|
- 主标签打散:反常识 4 / 价值观冲击 3 / 反差 3 / 细节专业 2 / 视觉冲击 1 / 自嘲反差 1。
|
|||
|
|
- 自检一次通过:fences=15;md `###` 行 vs spec.card mismatch 空集(沿用批次 9 的「临时 py 按 md 顺序生成 spec」,用完即删)。
|
|||
|
|
- ⚠️ 新踩坑(已写进 RUNBOOK 红线 3):正式导入返回 `success_count=11` 但库内实际 +15 且终验全 ✅ —— completed 时 success_count 尚未累加完,**判定必须看「库内增量 + 检索终验」,不能看 SUMMARY**。
|
|||
|
|
- 新增经验(已入 RUNBOOK):616s 超长视频仍只拆 3 卡(开场悖论 / 中段物证击穿 / 结尾闭环焊死),中间走马灯奇观整段弃;「细节专业」第三层判据 = 一个具体到位置的物证("你上一口袋的安神片")瞬间击穿专业方。
|
|||
|
|
- 进度:完成 52 | 剩余 2150 / 2202(cursor=51);已建第 11 批单次任务 2026-09-24T01:40(id `bcc1c2ac-…`)。
|
|||
|
|
|
|||
|
|
## 01:52 极致事件卡片批量生产 · 批次 11(自动化)
|
|||
|
|
- 处理 5 条:`26549`(李炮儿 258s 挑战一天五份工,生活vlog·职业挑战)、`20359`(周小闹 包房丢东西)、`27956`(三虎子gy 52s「女子本身就是好字」,亲子萌娃)、`30169`(周小闹 假好评,大女主商战线)、`28273`(周小闹 后厨忘记做菜,老板权谋线)。
|
|||
|
|
- 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.67–0.82);库内 **165 → 180**;进度完成 57 | 剩余 2145(cursor=56)。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0011.md` + `.spec.json`。
|
|||
|
|
- 主标签打散为 反差 4 / 反常识 4 / 价值观冲击 4 / 自嘲反差 1 / 视觉冲击 1 / 细节专业 1,无新建标签。
|
|||
|
|
- 新方法沉淀(已写回 RUNBOOK「批次 11 经验」):① 临时 py 生成 spec 第 3 次一次通过(fences=15、mismatch 空集);② 52s 纯对话型亲子 vlog 也能拆 3 卡(开场反差转述 / 中段金句反驳 / 结尾挖坑反杀),判据是三卡「期待-打破」落在不同对象;③「细节专业」第四层判据 = 把抽象规则门槛换算成具体数字+日常道具(2950 vs 3000 立案线 → 硬塞两个纸巾盒);④「视觉冲击」可用满屏旋转花字+鬼畜复读音效"吞噬"人物表达精神崩溃,不必是实景奇观;⑤ 同一 IP 下不同故事线(暑假工反击 / 大女主商战 / 老板权谋)可同批共存,相似问绑定各自冲突物件与金句即可不互抢。
|
|||
|
|
- 已建第 12 批单次任务 `fd1c3dc0-e076-43dd-afab-a66ae61c7fa4`,scheduledAt 2026-09-24T01:57(窗口内 +5min)。
|
|||
|
|
|
|||
|
|
## 02:10 极致事件卡片 · 批次 12
|
|||
|
|
- 处理 5 条:`30154`(周小闹 菜品出错,老板权谋线)、`26468`(周小闹 提前排菜,部门内斗线)、`24826`(周小闹 午休开会,暑假工硬刚线)、`24495`(礼君君 187s「女朋友能有多丢人」,**首个情感剧场**)、`17251`(侯绿萝 81s 老钱班,**首个校园荒诞喜剧,本批最短**)。
|
|||
|
|
- 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.71–0.83);库内 **180 → 195**;进度完成 62 | 剩余 2140(cursor=61)。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0012.md` + `.spec.json`。
|
|||
|
|
- 主标签打散为 反差 5 / 反常识 4 / 价值观冲击 3 / 自嘲反差 1 / 细节专业 1 / 视觉冲击 1,无新建标签。
|
|||
|
|
- 新方法沉淀(已写回 RUNBOOK「批次 12 经验」):① 临时 py 生成 spec 第 4 次一次通过(fences=15、mismatch 空集),写法已完全稳定;②「细节专业」**第五层判据(新增)**:不只是物证顶回对方,还包括"专业规范先立到极细(揭盖朝向 12 点钟方向)→ 执行者在同一套动作上当场翻车 → 管理层把事故改写成'必须培训'的论据",规范从保护盾异化为甩锅凭据;③「视觉冲击」可靠"道具直接砸到脸上"的动作量成立(成把钞票物理扇脸 + 塞比脸还大的金元宝)用于 3 秒改尺度;④ 81s 极短校园喜剧同样能拆 3 卡(开篇奇观 / 离谱赠礼 / 反转+彩蛋);⑤ 跨题材混批(餐饮职场 + 情感剧场 + 校园喜剧)实测不互抢召回,相似问绑定各自冲突物件与金句即可。
|
|||
|
|
- 已建第 13 批单次任务 `3fdaf397-9b2f-4888-bf5e-a28eeace8ef0`,scheduledAt 2026-09-24T02:15(窗口内 +5min)。
|
|||
|
|
|
|||
|
|
## 极致事件卡片批量生产 · 批次 13(2026-09-24 02:28)
|
|||
|
|
- 处理 5 条:`28325`(周小闹·托盘/借冰)、`33485`(周小闹·没大米饭了)、`33400`(周小闹·上菜小推车)、`35036`(周小闹·借厕所)、`24870`(脱缰凯·老师年纪小)。
|
|||
|
|
- 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.73–0.86);库内 **195 → 210**;进度完成 67 | 剩余 2135(cursor=66)。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0013.md` + `.spec.json`。
|
|||
|
|
- 主标签打散为 反常识 4 / 反差 4 / 价值观冲击 3 / 视觉冲击 2 / 细节专业 1 / 自嘲反差 1,无新建标签。
|
|||
|
|
- 新方法沉淀(已写回 RUNBOOK「批次 13 经验」):① 临时 py 生成 spec 第 5 次一次通过(fences=15、mismatch 空集);②**「反常识」新增「对称翻车」型**——两难的两个选项各自都翻车(不借被网暴 / 借了被抽烟霸位耗光耗材连爱心卫生巾被薅秃),落点在"这道题本身没有安全解";③**「视觉冲击」可以是"代价被具象化"**——为面子撤推车 → 一地碎瓷 + 跪地 + 2000 元餐损 + 半个月工资;④**「细节专业」第六层**——把不可见的"累"拆成三级可称量(空盘 → 加菜 → 加汤水 20 多斤)再塞进对方手里做体感,"你行你上"被物理化;⑤ 同系列四线 + 一个校园题材混批仍不互抢召回。
|
|||
|
|
- 已建第 14 批单次任务 `766c89cf-cfb8-4a48-9859-33e0356d9cb1`,scheduledAt 2026-09-24T02:35(窗口内 +5min)。
|
|||
|
|
|
|||
|
|
## 02:45 · 极致事件卡片批量生产 · 批次 14 ✅
|
|||
|
|
- 处理视频:`36712`(穿短裙)、`35106`(弄脏名牌包)、`24854`(不能坐电梯)、`28262`(上交手机)、`28286`(下班来客人)—— 5/5 全周小闹,但五条故事线互不重叠。
|
|||
|
|
- 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.74–0.84);库内 **210 → 225**;进度完成 72 | 剩余 2130(cursor=71)。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0014.md` + `.spec.json`。
|
|||
|
|
- 主标签打散为 反常识 4 / 反差 4 / 价值观冲击 4 / 视觉冲击 2 / 自嘲反差 1,无新建标签。
|
|||
|
|
- 新方法沉淀(已写回 RUNBOOK「批次 14 经验」):① 临时 py 生成 spec 第 6 次一次通过(fences=15、mismatch 空集);②**「反常识」新增「规章自相矛盾」型**——这套规章本身没有安全解(不用传菜梯就洒怕扣钱,用了客梯要躲店长;收了手机连急救电话都接不到),落点在制度悖论;③**「视觉冲击」新增「物理断供」型**——不靠奇观特效,直接切断环境本身(拉总闸 → 全场全黑 → 手机冷光 → 摸黑结账),爽感在"终止键握在最没权力的人手里";④**「价值观冲击」新增「一次裁决内赏压并行」**(罚店长 500 + 免员工 100 + 留人敲打 + "你得跟我一条心呐"一气呵成)。
|
|||
|
|
- 已建第 15 批单次任务 `7cb57404-bd54-4903-8612-eafedcb5d19e`,scheduledAt 2026-09-24T02:50(窗口内 +5min)。
|
|||
|
|
|
|||
|
|
## 09:43 · 极致事件卡片批量生产 · 批次 15 ✅
|
|||
|
|
- 处理视频:`36742`(后厨偷懒)、`21753`(职场人情味)、`17452`(客人带食材)、`30168`(培训)—— 4/5 周小闹但四条线互不重叠;`33483`(良田 209s 摄影养成)为本技能**首次处理「生活 vlog 情感纪实」形态**。
|
|||
|
|
- 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.72–0.87,上限 0.8657 为本链最高);库内 **225 → 240**;进度完成 77 | 剩余 2125(cursor=76)。
|
|||
|
|
- 产物:`tools/weknora-ingest/batches/batch_0015.md` + `.spec.json`。
|
|||
|
|
- 主标签打散为 反常识 4 / 反差 3 / 价值观冲击 3 / 视觉冲击 2 / 细节专业 2 / 自嘲反差 1,无新建标签。
|
|||
|
|
- 新方法沉淀(已写回 RUNBOOK「批次 15 经验」):① 临时 py 生成 spec 第 7 次一次通过(fences=15);②**「反常识」新增「正确废话」型**——角色用一句完全正确的话给自己做最离谱的辩护("后厨是人也不是机器"是事实,却用来论证虾线可以不去;"有点人情味"是美德,结果经理替下属端盘子、老客在楼下没人接),落点在"这句话本身没错所以谁都反驳不了";③**「视觉冲击」第三层:代价在镜头前实时发生且不可撤回**(夺回来的茅台已被开了,一句"送给客人了"把两瓶台子变沉没成本);④**「细节专业」第七层:用对方原话当物证**——把对方说过的话连腔调带动作原样复刻("哎呀有啥不行啊,服务至上嘛"),让否认本身变成新笑料,判据=证据即对方的表演痕迹。
|
|||
|
|
- 已建第 16 批单次任务 `940bb983-4aed-445e-927d-93d225940f10`,scheduledAt 2026-09-24T23:10(执行时 09:43 在窗口外 → 顺延当晚 23:10)。
|
|||
|
|
|
|||
|
|
## 12:1x · 方案:极致事件素材接入创作流程(分析,未改技能文件)
|
|||
|
|
- 需求:分析脚本创作流程,如何加入知识库调用、让创作参考恰当极致事件素材、丰富内容层次。
|
|||
|
|
- **核心诊断**:技能全仓 `grep -i weknora` = **0 命中** → WeKnora 240 条卡是**离线资产**,创作流程零引用;S7 的 `{material_content}` 注入者「编排层」**全仓仅 1 处提及且无定义**(悬空引用)。
|
|||
|
|
- **内容层次模型(4 层)**:载体层(8 库,拍什么)/结构层(03_框架节奏,怎么排)/**机制层(WeKnora 卡,凭什么留人)← 未接入、最薄**/表达层(08_对话风格,怎么说)。S7 的 L2 密度自检只查"具体度"不查"爆点机制是否成立" → 大纲可以既具体又平。
|
|||
|
|
- **实测(本次新跑,10 组跨赛道创作意图打 faq/search,threshold 0.5)**:
|
|||
|
|
- 命中 9/10,分数窄带 **0.50–0.61**,天花板低;
|
|||
|
|
- **纯抽象 query 零命中**("一句话让所有人都沉默"→0);**带具象动作的 query 最高分**("被当场刁难的人用专业细节顶回去"→0.6058)→ **问法必须带具象锚点**;
|
|||
|
|
- 发现 **15 条「泛化磁铁卡」**(编号 A1/A2/B1/B2 + 11 条名称式,标准问统一为"找一条 X 的极致事件素材")语义与任何意图都近,频繁挤占 top1;
|
|||
|
|
- **赛道覆盖偏斜**:剧情 186/240(77.5%),亲子仅 3,**「感官沉浸」「氛围沉浸」= 0 条**(治愈/慢生活向检索为空)。
|
|||
|
|
- 复用发现:卡片 `内容含义` 结构 `[期待A]—被X打破→[结果B]` **可反向当爆点成立性自检器**(无新数据即可用)。
|
|||
|
|
- **方案三接入点**:A(P0)S7 事件展开前做机制检索,问法用「镜像式五要素」(与库内标准问语域同构:落差对象+打破方式+具象锚点+段落功能);B(P1)S9 台词毛边(原话/微反应/意外三档);C(P1)S11 爆点溯源(无来源=编造爆点,照搬=P0)。
|
|||
|
|
- **红线**:① 转译必须"取材不取形"(只取落差结构/手法类别/铺垫量级,禁搬人物·台词·道具);② WeKnora 是开发机本地 Docker(用户环境没有)→ **必须静默降级**为 8 库筛条,脚本含 Key/端口**不入技能包**,只进 `tools/`;③ FAQ 纯向量 + `CustomMetadata` 不参与过滤 → 收敛只能靠 query 语义与检索后复筛(top5 复筛留 ≤2);④ 阈值恒显式 0.5(提到 0.6 会大面积漏)。
|
|||
|
|
- 产物:`极致事件素材接入创作流程方案_V1.0_20260924.md`(仓库根目录)。**未改任何技能文件**,待授权后按缺口清单 8 项执行。
|
|||
|
|
- 数据侧待办(已记入方案 §四):改造 15 条泛化磁铁卡标准问、清理 6 条卡 `事件标签` 字段混入的自检备注、后续批次优先补非剧情赛道。
|
|||
|
|
|
|||
|
|
## 12:2x · 方向修正:极致事件素材接法改为「方法驱动」(用户提出,两轮确认)
|
|||
|
|
- **用户质疑**:「极致事件是否需要根据创作方法去应用,而不是直接加入到创作流程中」→ 判断:**对,上一版方案的接法方向是反的**。上一版把卡库当成 S7 的一个检索子步骤直接插进流程(布位→检索→填充)= **素材驱动**;应改为**方法驱动**(方法定手法 → 判定定类型与布位 → 素材作实例供给)。
|
|||
|
|
- **证据(本轮新查)**:`知识库/05_极致事件/` 10 个文件实为两类混放——① 规则/索引层(00 总纲、01 映射表、02 赛道形态、03 评估标准)已被 S6/S7 引用;② **方法层 6 个(极致行为创作法 + 预期反转/荒诞化/抽象化/无厘头/错位化)在创作流程中 0 调用**(唯一 1 次出现在 `创作流程规范.md` 第 380 行的目录罗列,属罗列非调用;「极致行为创作法」连文件名都未出现)。对照:**S5 选题有完整方法论清单**(5 大方法 + 明文"AI 执行时须读取对应文件")→ S5 是方法驱动,S6/S7/S9 不是。
|
|||
|
|
- 上一版实测跨赛道检索分低(0.50–0.61)的**病根是方法缺位**(泛意图在向量空间无收敛点),不是检索参数问题。
|
|||
|
|
- **三层关系确认(用户本轮再次收口)**:方法层(怎么制造极致感)/ 判定层(这是什么极致)/ **素材层(用什么材料)**;调用方向自上而下。
|
|||
|
|
- ⭐ **「极致事件素材」= 素材层的事件类**,与 8 库「载体类」**并列**(不是素材库的替代)。用户定性:极致事件素材起的就是素材库的作用。
|
|||
|
|
- 「极致事件」一词两义必须切开:**作为知识库维度**(`知识库/05_极致事件/`)= 方法 + 判定,**不是素材**;**作为素材**(240 条卡)= 素材层,**不是方法**。
|
|||
|
|
- 素材层两类**用法/检索方式不同**:载体类 8 库 = **字段筛条**(四维标签),可直接取用(换成本账号具名物品);事件类卡 = **语义检索**(FAQ 纯向量、无字段过滤),只能**结构参照 + 转译**(属别人账号事件,禁直取)。
|
|||
|
|
- **设计推论(待落地)**:① ❌ 取消「接入点 A = S7 新增检索子步骤」——极致事件素材既属素材层,就**不应有独立接入步骤**;② ✅ 改为**扩展 S7 现有「素材库」定义域**(8 库 → 8 库 + 极致事件卡库),共用同一调用链「类型定库 → 筛条/检索 → 填充」,仅检索方式分叉 → ⚠️ **该"扩容"表述当天 13:0x 被用户纠正为"切换"**(见下节);③ 方法层接线是本需求的**另一半**(不改则素材层扩大后仍是素材驱动)——落点 = S7「极致触点节点布位」表新增「候选创作方法」列(无需新增步骤)。
|
|||
|
|
|
|||
|
|
## 13:0x · 定性修正:不是「扩容」,是「切换」(用户纠正)+ 三项事实实测
|
|||
|
|
- **用户纠正**:「素材库不叫扩容,是叫切换,之前技能中的素材切换到 WeKnora 对应素材库」→ 采纳。定性 = **素材载体切换**(本地 md 素材 → WeKnora 容器),非两库并存。
|
|||
|
|
- ⭐ **支撑该定性的实测事实(本轮新查,极重要)**:
|
|||
|
|
- `references/素材库/` 共 10 个文件 / 546 行,**真实素材条目合计仅 21 条**;
|
|||
|
|
- **7 个通用库中 6 个是空壳**(`03_生活仪式库`/`05_装修布局库`/`06_生活服务库`/`07_穿搭库`/`08_妆容库`/`11_造型库`)——文件内只有 `## 字段结构` 代码块 + `<!-- 在此添加条目 -->` 注释 + 「最低要求:每个账号 ≥ 10/15 个」的空承诺,**零条素材**;
|
|||
|
|
- 唯一有实素材的是 **01 美食库 4 文件 = 21 条菜品**(中式家常菜 8 / 仪式感美食 5 / 煲汤类 5 / 深夜宵夜 3);
|
|||
|
|
- 对比:WeKnora 240 条。→ 本地 md 素材库**从未真正建成过**,故"切换"成本极低(仅 21 条要迁)。
|
|||
|
|
- ⚠️ 连带问题:`references/索引_知识素材库.md` 对 03/05/06/07/08/11 的描述("安睡/做饭/按摩选型"「穿搭方案选型」等)**承诺了不存在的内容**——把"字段结构模板"写成了"素材库",切换时须一并修正。
|
|||
|
|
- **切换的关键设计约束(本轮新增判断)**:
|
|||
|
|
1. **md 素材文件不能删** —— WeKnora 是**开发机本地 Docker**,用户环境没有 → 无 md 则用户环境零素材。定位:**md = 权威源 + 降级源,WeKnora = 检索运行时副本**;降级 = 静默回退读 md + 四维标签筛条。
|
|||
|
|
2. **切换范围**:分块定义/模板/标签闭集 = 规格 → **留文件**(规则类不进检索层);实素材条目 → 切 WeKnora;6 个空壳库的"字段结构"并入 `分块定义/` 后原文件退役。
|
|||
|
|
3. **能力置换(必须接受)**:失去四维标签**字段精确筛选**(FAQ 纯向量、CustomMetadata 不参与过滤,实测),换来素材 21 → 240 条。净收益为正。
|
|||
|
|
4. **账号隔离是硬边界**:FAQ 无 metadata 过滤 → 无法按账号隔离 → **04 对话库(账号专属)不切换**,保持文件形态按账号存,否则多账号串号。
|
|||
|
|
5. **前置成本**:进 WeKnora 的载体素材必须补「标准问+相似问」(FAQ 召回唯一杠杆)→ 21 条 × 5-6 问法 ≈ 120 条问法,复用 `2_import_batch.py`。
|
|||
|
|
- 产物:`极致事件素材接入创作流程方案_V1.1_20260924.md`(V1.0 已加"被取代"标注保留沿革)。**技能文件仍未改动**,待授权。
|
|||
|
|
- 六项待办顺序(V1.1 §六):补 21 条问答对入库 → 清 15 条泛化磁铁卡 + 6 条标签污染 → 改技能文件 10 项 → 卡片补「方法归属」→ 变更日志。
|
|||
|
|
|
|||
|
|
## 13:0x · 技能接入 WeKnora 的具体实现(实测定稿)
|
|||
|
|
- ⭐ **决定性发现:走 MCP 工具,不写脚本**。`weknora` MCP 已配在 `D:\.workbuddy\mcp.json`(stdio + `weknora-mcp-server.exe`,env 指向 `http://localhost:31607/api/v1` + Key)。**实测 `mcp__weknora__hybrid_search` 可直接召回 FAQ 库条目**:`kb_id` 传**库名**「MCN极致事件素材库」自动解析;命中 `28325-3`,`score=0.6058205716953738` —— 与 REST `/faq/search` **同 query 同分**(两条路径等价)。
|
|||
|
|
- **两条路径分工**:MCP = 创作端(会话内,S7 每视频 1-3 次);REST `/faq/search` = 生产端(`tools/weknora-ingest/*.py` 批量导入+终验,需 unset 代理、导入通道独占)。
|
|||
|
|
- **三个必须写进技能的坑(实测)**:
|
|||
|
|
1. **零命中不是错误**:返回 `{"data": null, "success": true}` → 判据是 `success=true 且 data=null`,不得判为调用失败,不重试不报错,走降级。
|
|||
|
|
2. **同一张卡内容返回三份**(`content` / `chunk_metadata.answers[0]` / `matched_content`)→ 创作端**只读 `chunk_metadata.answers[0]`**,其余为噪声。
|
|||
|
|
3. **`chat` 不能替代 `hybrid_search`**:`chat` 是 RAG+LLM 总结,会把卡「摘要化」,而卡的价值恰在不可概括的细节(原话/微反应/铺垫量级/镜头语言)→ S7 用 `hybrid_search` 取原文,**禁用 chat/agent_chat**。
|
|||
|
|
- **参数**:`hybrid_search` 默认 `vector_threshold=0.5`(恰好合规,仍应显式传)、`match_count=5` → **建议传 3**;`keyword_threshold` 对 FAQ 库**无效**(FAQ 恒纯向量召回),不传。
|
|||
|
|
- **上下文成本控制(实测推导)**:单条卡约 3.5-4KB(因三份重复),`match_count=5` 单次≈18KB≈6K tokens;5 节点全检 ≈30K tokens → 三条规则:① `match_count=3`(单次≈3.5K tokens);② **按需检索**(只检"想不出桥段的节点",通常一视频 1-3 次);③ 串行、读后即弃,不堆积。
|
|||
|
|
- **降级矩阵(P0)**:MCP 未挂载 / 服务不可用(用户环境无 Docker)/ 库不存在 / 零命中 → **静默回退读 `references/素材库/*.md`**;零命中退化为「仅用类型层子类指引」,不编造素材。技能文案须写成**能力探测式**(先试→失败则降级),不假定可用也不假定不可用。
|
|||
|
|
- **召回机制澄清(补充)**:`hybrid_search` 名字含 keyword,但 FAQ 库 `matched_content` 说明命中的是「标准问+相似问+答案」全文,`match_type=0` → 关键词不参与,仍是**纯向量**。
|
|||
|
|
- 产物:`技能接入WeKnora实施规范_V1.0_20260924.md` —— 含**可直接落地的新建文件全文草稿** `references/接口调用/WeKnora_极致事件检索.md`(5 节:调用/镜像问法/返回判据/降级/成本控制)+ 各技能文件改动落点表(SKILL.md 两处、S7 四处、`{material_content}` 定死结构)+ 环境矩阵。
|
|||
|
|
- 落地前 3 项待补测:① 载体类 21 条菜品与事件卡是否互挤召回;② `match_count=3` 对小众赛道(亲子 3 条/沉浸 0 条)是否够;③ 真实 S7 场景零命中率。
|
|||
|
|
- 技能文件仍未改动,待授权。
|
|||
|
|
|
|||
|
|
## 14:xx · 执行落地:素材层切换 WeKnora + 方法层接线 ✅(用户授权「按照方案执行」)
|
|||
|
|
- **新建**:`references/接口调用/WeKnora_极致事件检索.md` —— 调用契约权威源,8 节(定位 / 调用参数 / 镜像式五要素问法 / 返回判据三坑 / 复筛转译 / 降级矩阵 / 成本控制 / 实测依据 / 与其他接口分工)。`kb_id` 用库名、`match_count=3`、`vector_threshold=0.5` 显式、不传 `keyword_threshold`、零命中判据 `success==true 且 data==null`、只读 `chunk_metadata.answers[0]`、禁 `chat`/`agent_chat`。
|
|||
|
|
- **S7 核心改造**(`创作流程/7_生成短视频大纲.md`,9 处):布位表**新增「候选创作方法」列**(4→5 列)打通方法层 → 新增「极致触点素材检索」按需环节(已有桥段的节点跳过,通常一视频 1–3 次)→ `{material_content}` 注入格式定死 → 新增**极致触点机制自检**(L1 节点须写得出 `[期待A]—被X打破→[结果B]`,写不出降级为普通情节)→ 输入章节素材库改**双层源**(主源 WeKnora / 降级 md 文件,md 永不删除)→ System Prompt 与禁止行为同步(禁跳方法列 / 禁搬卡原文 / 禁零命中编造)。
|
|||
|
|
- **方法层接线**:`知识库/05_极致事件/` 6 个方法文件各补「素材供给」块(极致标签 / 定库检索入口 / 问法「② 打破方式」填法),治「方法层在创作流程中 0 调用」。
|
|||
|
|
- **配套**:SKILL.md(MCP 依赖节 + WeKnora 检索层 + S7 小节调用链 + frontmatter `updated_at`);`索引_知识素材库.md`(素材库章节改双层源 + 03/05/06/07/08/11 逐条标注「仅含字段结构模板,尚无实素材条目」+ 新增「接口调用」章节);S9 输入增 `{material_cards}` + 新增「台词毛边三档参考」(原话/微反应/意外);S11 类1「爆点贯穿」升级为**爆点溯源 4 判据**(次数/可溯源/落差三件套/转译合规),八类35项清单同步。
|
|||
|
|
- ⚠️ **踩坑(本轮)**:6 个方法文件写在 `references/知识库/05_极致事件/`(两层深),「素材供给」块里我写了 `../接口调用/WeKnora_极致事件检索.md` —— **层数算错**(`../` 只退到 `知识库/`)。阅 `references/规则/路径引用规范.md` 后确认:技能内既有惯例是**省略 `references/` 前缀写成 `接口调用/xxx.md`**(S7、索引、变更日志一致),故统一改为 `接口调用/WeKnora_极致事件检索.md`。**教训:跨层级引用前先 grep 同侪写法对齐惯例,别自己推层数**。
|
|||
|
|
- **复查(全仓)**:`../接口调用/WeKnora` = 0;敏感串(`sk-` / `31607` / `e6772e41`)= 0;盘符绝对路径 = 0;「编排层」旧表述仅剩 2 处且均在第三方整包 `nuwa-skill-main` 内(规范明示豁免);6 个方法文件「素材供给」引用写法完全一致。
|
|||
|
|
- ⚠️ **待用户确认**:用户级技能 junction `~/.workbuddy/skills/短视频工作台` **整体不存在**(不是 children=0 的失效态,而是条目缺失;项目级 `.workbuddy/skills/` 也没有)。未擅自重建——创建 junction 会改变技能加载行为,可能是用户主动移除。重建需 `node -e "fs.symlinkSync(...)"` + PowerShell `New-Item -ItemType Junction`。
|
|||
|
|
- **方案 §六 未执行项(本次范围外,待另行授权)**:6 个空壳库字段结构并入 `分块定义/` 后原文件退役;21 条载体素材补问答对入库;清 15 条泛化磁铁卡 + 6 条标签污染;240 条卡补「方法归属」字段。
|