Files

103 lines
6.7 KiB
Markdown
Raw Permalink Normal View History

# 极致事件卡片 · MCP 批量生产流程试跑报告 V1.0
> 日期:2026-09-23 | 性质:**试跑验证**(2 条视频 → 4 张卡 → 入 WeKnora FAQ 容器 → 检索终验)
> 结论:**流程通,可以放量。** 4/4 张卡导入成功,标准问 4/4 top1,口语问法 4/4 top1。
> 未改动任何技能文件;只往 `MCN极致事件素材库` 追加了 4 张卡(11 → 15 条)。
---
## 一、流程(四步,已验证可复现)
```
① MCP 取解析 short_video_detail(id) → content(文案)+ analysis(解析 JSON)
② 拆事件 按「一个完整『建立期待 → 打破』闭环」拆,一条视频 1–3 个
③ 出卡片 按 V1.3 口径:10 固定字段 + 所属库专属 N(不属 8 库 → 填「横切未定」)
④ 入 FAQ 容器 标准问=主检索意图 / 相似问=真实问法 / 反例问=边界 / 答案=整张卡原文 / 标签=主标签
⑤ 检索终验 A 标准问 + C 未登录口语问法,vector_threshold 必须显式 0.5
```
| 步骤 | 实现 | 产物 |
|:--:|:--|:--|
| ① | MCP `myai-mcp-production.short_video_detail`(登录态:人觉 / 6ga153ef ✅) | 内联返回,无落盘 |
| ②③ | 人工/模型提炼 | `tools/weknora-ingest/1_cards_batch1_20260923.md` |
| ④⑤ | HTTP API(MCP 无 FAQ 工具) | `tools/weknora-ingest/2_import.py` → `out/2_import.txt` |
---
## 二、试跑结果
**样本**:`38098` 晚叙miki《我的游泳教练好像有两幅面孔?》(剧情·情感反差,89s,34.4w 赞)+ `28274` 旧梦留声机《最暖的归栖,是爷爷在的小屋》(剧情·亲情,247s,507.5w 赞)
| 卡 | 事件 | 极致类型 | 主标签 | 答案字数 | 标准问 top1 | 口语问 top1 |
|:--:|:--|:--|:--:|:--:|:--:|:--:|
| A1 | 「冷面私教」与「网恋撒娇小狗」同体错位 | 戏剧极致·错位 | 反差 | 776 | ✅ 0.7926 | ✅ 0.6833 |
| A2 | 雨夜湿身敲门 · 高冷男神的卑微挽留 | 戏剧极致·反转 | 反差 | 723 | ✅ 0.8411 | ✅ 0.6759 |
| B1 | 爷爷逆光推门 ·「娃不用你们轮了,以后我带」 | 戏剧极致·反转 | 反常识 | 789 | ✅ 0.8081 | ✅ 0.7342 |
| B2 | 「帮我带娃」的善意谎言 · 用求助的名义给爱 | 感官极致·细致 | 反常识 | 929 | ✅ 0.8003 | ✅ 0.7046 |
- 导入:`dry_run` 4/4 通过 → 正式导入 `success_count=4, failed_count=0`(约 2 秒)
- **原子性验证**:检索返回的答案长度 776 / 723 / 789 / 929 **与卡片原文逐条相等** → 整卡未被切分
- 幂等:脚本按 `standard_question` 判重,重跑只导缺失的卡(本次第二次重跑只导了 A1 一条)
- 误召回检查:每一问 top3 内出现的其他条目都仍是同标签的合法素材(无跨标签污染)
**库状态**:`MCN极致事件素材库`(`e6772e41-…`)= **15 条**,标签分布 反差 6 / 反常识 4 / 难度极限 2 / 自嘲反差 1 / 食材极致 1 / 预见式服务 1
---
## 三、两个新发现(本次实测,非推演)
### 3.1 ⛔ 追加相似问**不会重建向量索引** → 改问法必须「删条目 + 重导」
`POST /knowledge-bases/{id}/faq/entries/{entry_id}/similar-questions` 返回 200,`GET` 读回也确实变成 6 条,**但检索分数按位未变**:
| 探针「有没有那种对外高冷、私下对我特别软的素材」 | A1 分数 | A2 分数 |
|:--|--:|--:|
| 追加相似问**前** | 0.6477 | 0.6587 |
| 追加相似问**后**(读回 6 条相似问) | **0.6477** | 0.6587 |
A1 的向量若真的重建,4 位小数不可能一个字节都不动(A2 未触碰,分数不变是正常的)。
**处置(已验证有效)**:`DELETE /faq/entries {"ids":[100000050]}` → 用更新后的问法重导 → A1 分数升到 **0.6833**,top1 从 A2 翻回 A1,口语探针从 3/4 变 **4/4**。
> 结论:**「按检索口径调相似问」这条路走得通,但必须走重导,不能用增量接口。**
### 3.2 `POST /faq/entry`(单条同步创建)建的条目**检索不到**
用单条建卡接口建的临时条目,等到 10 秒后仍搜不到(`match_count=0`);而走批量导入通道(`POST /faq/entries` + `dry_run`)的条目立即可见。
→ **入库一律走批量导入通道**,不要用单条 create。(该临时条目已 `DELETE` 清理,回执 `{"success": true}`)
### 3.3 解析里的「极致触点」是**布位层口径**,不能直接搬进卡片
`analysis` 的场次表里,每场都带 `极致触点 / 极限维度 / 制造手法 / 极致感 / 真实感`。这里的「极致触点」= **该场的爆点内容描述**(对应 `01_极致类型-素材标签映射表.md` 4.5 的 **A 布位层** 甚至 C 内容层),**不是**卡片层第 3 字段的「极致触点(用户为什么被击中,效果侧 B)」。
> 搬运时**必须改写**:`极致感` 里的「极限维度」多属机制侧(反差/身份落差),应归 `事件标签`;「真实感」里的「真实毛边」可直接进 `极致内容`。**照着场次表原样搬 = 把 A 层塞进 B 层字段**,属口径错置。
---
## 四、放量测算(待你定范围)
| 口径 | 视频数 | MCP 调用 | 预计卡片数(1–3 张/条) | 备注 |
|:--|--:|--:|--:|:--|
| 本次试跑 | 2 | 2 | 4 | 已完成 |
| 近 7 天 ≥20w | 33 | 33 | 33–99 | 可与既有 11 张卡合并成 50–110 条 |
| 推荐TOP ≥50w(3 个月) | 413 | 413 | 413–1239 | 单次跑量已很大 |
| 全量 3 个月 ≥20w | 2202 | 2202 | 2200–6600 | 需分批 + 断点续跑 |
**已具备的护栏**:脚本按 `standard_question` 判重(可反复重跑不会重复灌)、`dry_run` 预校验、`DELETE` 精确回退、卡片以 md 落盘(git 可 diff,WeKnora 只是派生检索层)。
**放量前建议先定的 3 件事**:
1. **范围**:先 33 条(近 7 天)还是 413 条(推荐TOP)?
2. **归属库字段**:剧情/亲情/情感类都填「横切未定」→ 只写 10 固定字段;美食/生活仪式类才追加专属 N。是否只抽「8 库可归属」的样本?
3. **卡片命名与编号**:批量后卡片标题需要统一编号规则(如 `{来源详情ID}-{序号}|事件名`),便于回溯到源视频与去重。
---
## 五、证据索引
| 类别 | 位置 |
|:--|:--|
| 卡片源(V1.3 口径) | `tools/weknora-ingest/1_cards_batch1_20260923.md` |
| 入库脚本 | `tools/weknora-ingest/2_import.py` |
| 原始输出 | `tools/weknora-ingest/out/2_import.txt` |
| 容器 | `http://127.0.0.1:31607` → `MCN极致事件素材库`(`e6772e41-7b72-499d-b46c-e5ca7c9d1740`) |
| 卡片口径 | `素材库/分块定义/00_模板-各库分块模板.md` §极致事件 ·V1.3 |
| 类型↔标签 | `知识库/05_极致事件/01_极致类型-素材标签映射表.md`(含 4.5 三义裁决) |
| 容器选型论证 | `极致事件卡片_WeKnora适配性评估_V1.0_20260923.md` |