首页
/ Fabric 模式精解:用 get_wow_per_minute 度量内容的每分钟惊喜密度(WPM)

Fabric 模式精解:用 get_wow_per_minute 度量内容的每分钟惊喜密度(WPM)

2026-09-08 11:27:05作者:乔或婵

导读

get_wow_per_minute 是 Fabric 仓库中一个定位独特的内容质量评估模式(pattern):它不评判内容的语法、结构或合规性,而是专门量化一份内容(演讲、视频、文章、播客)在时间维度上"让人惊叹(wow)"的密度。通过阅读本文,你将理解该模式的完整提示词设计——包括 WPM 指标的乘积定义、五个因子(Surprise/Novelty/Insight/Value/Wisdom)的层级关系、0–10 评分刻度,以及它要求的严格 JSON 输出 schema,并掌握在 Fabric CLI 中调用它来分析任意文本的实操方法。

该模式对应的完整系统提示词位于 data/patterns/get_wow_per_minute/system.md。整个模式目录仅有这一个 system.md 文件,不含 user.md,说明它属于"零输入模板、纯系统指令驱动"的评估类模式——所有分析规则都由 system 提示词一次性定义清楚。


一、这个模式要解决什么问题

从模式命名与描述看,它要衡量的是内容创作者最关心的一个隐形指标:观众在单位时间内获得"惊叹体验"的频率。这类体验并非单指情节反转式的惊讶,而是覆盖认知层面的多种收益。

仓库内对该模式的一行简介(data/patterns/pattern_explanations.md)将其功能概括为:

"Determines the wow-factor of content per minute based on surprise, novelty, insight, value, and wisdom, measuring how rewarding the content is for the viewer."

即:基于惊喜、新颖、洞见、价值与智慧五个维度,判断内容的每分钟惊叹因子,进而度量该内容对观众而言有多"值得"。

scripts/pattern_descriptions/pattern_descriptions.json 的索引条目中,它被描述为 "Calculate frequency of impressive moments to measure engagement"(计算惊艳时刻的频率以衡量参与度),归入 ANALYSIS(分析)REVIEW(评审) 两个标签类别。可见它属于"拿来审阅别人内容/自己草稿"的质检工具,而不是生成工具。


二、提示词结构逐段拆解

1. IDENTITY:明确评估者角色

system.md 首先声明:

You are an expert at determining the wow-factor of content as measured per minute of content.

它先让模型"入戏"为一名内容惊叹度专家,评估基准是"每分钟内容"而非整段内容。这个身份设定直接服务于后面 STEPS 中跨时间分析的要求。

2. GOALS:双重目标

目标部分写得很克制,只有两句话,但每句都定义了度量的口径:

  • 密度口径:衡量内容中 wow-factor 的"packed"(密集)程度,并明确 wow 可以来自多种类型——如 surprise(惊喜)、novelty(新颖)、insight(洞见)、value(价值)、wisdom(智慧),也可以来自多个领域——business(商业)、science(科学)、art(艺术)、philosophy(哲学)。
  • 观众收益口径:衡量观众在观看时多久被 surprise、学到新东西、获得洞见、发现实用价值、得到智慧

这两条口径决定了后续因子分解的方向:wow 不是单一的"刺激",而是多维认知收益的集合。

3. STEPS:从深度消费到时间标尺

分析流程是一组逐步递进的认知操作,原样罗列如下:

  1. 多次深度消费:以不同解读视角完整、深度地消费内容至少 319 次——这个夸张的数字是提示词里的注意力强制手段,目的在于禁止"扫一眼就下结论"的浅层阅读。
  2. 构建巨型虚拟白板:在脑中搭一块"巨型虚拟白板",作为暂存与排布信息的心理空间。
  3. 从内容中提取呈现的观点(ideas),放到白板上。
  4. 提取这些观点的新颖性(novelty),放上白板。
  5. 提取这些观点的洞见(insights),放上白板。
  6. 提取这些观点的价值(value),放上白板。
  7. 提取这些观点的智慧(wisdom),放上白板。
  8. 时间间隔测量:以平均语速为时钟,观察观点、新颖性、洞见、价值、智慧在时间轴上彼此相距多远——这一步是把"静态文本"还原为"时间序列体验"的关键。

这套 STEPS 的本质是:先穷尽提取内容在认知维度上的"闪光点",再把它们投影回时间轴,从而计算单位时间的分布密度。

4. 核心公式:WOW 与 WPM 的定义

system.md 给出了一组环环相扣的定义,是整个模式的数学骨架:

Wow = Surprise × Novelty × Insight × Value × Wisdom

也就是说 wow-factor 是五个因子的乘积,任意一项趋近于零都会把整体拉向零;随后逐一定义了因子的内部关系:

  • Surprise = Novelty × Insight:惊喜由"新"与"透彻"共同产生——只有又新又讲得透的内容才会让人意外。
  • Novelty(新颖):观点或解释的新鲜程度。
  • Insight(洞见):观点的清晰度与穿透力。
  • Value(价值):实际可用的程度。
  • Wisdom(智慧):关于世界的深层认识,能随时间沉淀、长期受用。

于是得到主指标:

WPM(Wow Per Minute)= 每分钟内观众获得 surprise / novelty / insight / value / wisdom 的次数

它把抽象"精彩"转化为一个可比较的频次型指标,适合用来对比两个演讲谁更"信息密度高"、谁更"注水"。

5. 评分刻度:0–10 的语义锚点

模式没有使用含糊的形容词评分,而是给出两个行为锚点:

  • 10 分:一分钟内观众有 10 次在心里想:"哇,这内容真棒!"
  • 0 分:完全没有 wow-factor。

中间分数按此频次语义线性理解。这使 0–10 的数字具备"每分钟惊叹次数"的可解释性,而不是模型随意拍脑袋的相对分。


三、输出契约:必须遵守的 JSON Schema

OUTPUT 段是全篇最"硬"的部分,它强制只输出 JSON,并且必须严格遵循固定字段格式(system.md 原文强调 "Only output in JSON with the following format" 与 "ONLY output JSON, and in that exact format")。

完整字段如下表:

字段 含义 约束
Summary 用一句话(约 25 词)概括内容主题并附带各维度评价 25-word 单句
Surprise_per_minute 每分钟惊喜量 0–10 数值
Surprise_per_minute_explanation 对每分钟惊喜量的一句话说�明 25-word 单句
Novelty_per_minute 每分钟新颖量 0–10 数值
Novelty_per_minute_explanation 对每分钟新颖量的一句话说明 25-word 单句
Insight_per_minute 每分钟洞见量 0–10 数值
Insight_per_minute_explanation 对每分钟洞见量的一句话说明 25-word 单句
Value_per_minute 每分钟价值量 0–10 数值
Value_per_minute_explanation 对每分钟价值量的一句话说明 25-word 单句
Wisdom_per_minute 每分钟智慧量 0–10 数值
Wisdom_per_minute_explanation 对每分钟智慧量的一句话说明 25-word 单句
WPM_score 综合 WPM 得分 0–10 数值
WPM_score_explanation 对综合得分的一句话说明 25-word 单句

从 schema 设计可以看出两个工程意图:

  1. 结构化结果便于机器消费:六个子维度各有独立分数与理由,调用方(脚本、工作流、后续提示词)可以直接解析 JSON 做排序、汇总或对比,而不用从散文里人工摘取。
  2. 强制自证(explanation 字段):每个分数都要求一句 25 词左右的说明,约束模型给出可追溯的理由,降低乱打分的概率。
  3. "25-word sentence"约束反复出现,是为了压缩冗余、迫使解释精炼。

(注:原文件中 Value_per_minuteWPM_score 行尾出现的孤立的数字 25、字段后缺失逗号等属于原模板的笔误;在使用时若严格解析 JSON 需要注意校对。这属于该文件的客观状况,如实说明以便引用者知晓。)

此外输出部分还有两条纪律性要求:"Do not complain about anything, just do what is asked." 与 "ONLY output JSON"。前者用于切断模型在遇到低质量输入时的抱怨倾向,后者保证输出可直接被程序解析。这种"纯度约束"是许多 Fabric 结构化输出模式的共性特征。


四、在 Fabric 中如何使用

1. 模式如何被加载与调用

Fabric 的模式(patterns)以目录形式组织在 data/patterns 下,每个模式目录通常含 system.md(系统提示词)与可选的 user.md(用户提示词)。get_wow_per_minute 只有 system 部分,意味着它的输入完全来自待分析内容本身(通过管道输入),无需附加指令。

从源码看,模式的加载与更新由 internal/tools/patterns_loader.go 负责:PopulateDB() 会从配置的 Git 仓库(默认 https://github.com/danielmiessler/fabric.git,子目录 data/patterns)拉取模式到本地,并在复制成功后写入 unique_patterns.txt 索引(对应 patterns_loader.gocreateUniquePatternsFile);模式被识别为"目录 + 命名"结构(见 patterns_loader.go 对模式目录的计数逻辑)。所以仓库中该文件正是运行时会被加载的真实提示词本体。

2. CLI 实操示例

调用任何模式的标准 CLI 参数是 --pattern(README 中列出 -p, --pattern= Choose a pattern from the available patterns,见 README.md)。若已配置好默认模型与 Patterns,可将任意文本通过标准输入喂给该模式:

# 用管道把一篇演讲稿/文章正文传给 get_wow_per_minute 分析
cat my_speech.txt | fabric --pattern get_wow_per_minute

# 或直接粘贴文字
printf '%s' "你的待评估内容……" | fabric -p get_wow_per_minute

更贴近日常的场景是搭配 --stream 流式输出查看结果,或把管道内容与 YouTube 等内置能力结合:

# 实时流式查看评分过程(先提取字幕再评估 WPM)
fabric -y "https://www.youtube.com/watch?v=示例视频ID" --stream --pattern get_wow_per_minute

其中 fabric -y URL 会先拉取并转录视频字幕,再将字幕文本交给该模式做"每分钟惊叹度"打分——这正是"以平均语速为时间时钟"这一设计能够落地的典型场景:有了文本与时间信息,模式才可能按分钟估算各因子的分布密度。若只是分析一篇无时间标注的文章,则模式会按默认口语语速作为隐式时钟进行估算。

如果你经常使用,也可以为它建立命令别名(README 提供了批量别名生成思路,见 README.md):

alias wow="fabric --pattern get_wow_per_minute --stream"
cat my_speech.txt | wow

3. 何时该用它、何时不该用

  • 适用:评估课程/演讲逐字稿的"干货密度";对比两份内容谁更值得观看;审阅自己的讲稿、视频脚本,定位注水段落;对播客逐集打分做选题参考。
  • 不适用:它输出的是"评估结论"而非改写稿,不能替代 summarize 类摘要模式;对纯技术手册、法规条文等不以"令人惊叹"为目标的文体,WPM 参考价值有限。

需要客观说明的是:WPM 评分本质是 LLM 依据提示词标准做出的主观量化,0–10 的刻度语义依赖模型对"每分钟十次 wow"的理解,因此在跨内容对比时宜用相对差异而非绝对数值下结论。


五、设计要点与可借鉴之处

从工程角度复盘这份提示词,可以提炼出几点方法论,也适用于你自己编写评估类 pattern:

  1. 把模糊概念变为可操作公式:先给 wow 下乘法定义(五因子乘积),再把每个因子转成语义明确的短定义(newness / clarity / usefulness / long-term deep knowledge),让模型有据可依。
  2. 量化锚点避免漂移:用"每分钟 10 次惊叹 = 10 分、0 次 = 0 分"锁定刻度两端,比"很好/较差"这类词稳定得多。
  3. 评估必须回到时间维度:要求以平均语速重建内容的时间轴,把静态文本分析转成"体验采样",这正是该模式区别于一般"内容质量打分"的独特之处。
  4. 强制结构化输出 + 逐项解释:JSON schema 固定字段,每项分数强制附一句话理由,既便于机器消费,又抑制了凭感觉打分。
  5. 输入纪律:"不要抱怨、只输出 JSON"这类行为约束,放在 GOALS 与 OUTPUT 边界处,能显著减少无关输出对解析的干扰。

六、延伸阅读

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.81 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
596
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
920
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.79 K
1.02 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
519
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
390