十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Fabric 中 create_mermaid_visualization 模式解析:把任意输入变为 Mermaid 图表的 AI 可视化工作流

Fabric 中 create_mermaid_visualization 模式解析:把任意输入变为 Mermaid 图表的 AI 可视化工作流 Fabric 中 create_mermaid_visualization 模式解析把任意输入变为 Mermaid 图表的 AI 可视化工作流【免费下载链接】FabricFabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.项目地址: https://gitcode.com/GitHub_Trending/fa/FabricFabric项目根目录 README是一个以模式Pattern为核心的 AI 增强框架而create_mermaid_visualization正是其中负责将任何输入转化为 Mermaid 图表的专用模式。本文以 system.md 为蓝本逐段拆解其指令结构、Fabric 中的调用方式并结合源码patterns.go、patterns_loader.go说明该模式从模式仓库加载到替换用户输入再到输出图表语法的完整运行链路帮助读者用一句命令即可获得结构清晰、语义自洽的 Mermaid 可视化结果。这个模式解决什么问题Fabric 将海量、可复用、去中心化的 AI 提示词组织为一个个模式存放在 data/patterns 目录下。create_mermaid_visualization的目标非常聚焦把任何类型的内容——一段文字、一份分析报告、一次讨论的要点、一篇论文的核心结论——转换成 Mermaid一种基于 Markdown 的图表语法描述的示意图。与普通让它画个图的临时请求不同该模式在提示词层面做了三重约束输出纯净性只输出可被直接渲染的 Mermaid 语法不加反引号、不加解释性代码围栏这一要求在 GitHub 变体 create_mermaid_visualization_for_github/system.md 中则相反要求用反引号包裹以便 README 直接渲染。语义自洽性要求图表能够独立、完整地传达概念并与附带的可读解释严格一致。复杂度自适应概念越复杂、数据越多图表就越细致、越庞大而非一律输出同一张简陋结构图。在 Fabric 的 260 模式生态中它属于可视化家族的一员其定位描述可参见 pattern_explanations.md创建详细的、可独立存在的概念可视化保证图表的清晰与连贯。system.md 的结构解剖模式的全部人格与工作规则都写在 create_mermaid_visualization/system.md 中。它遵循 Fabric 模式的标准分节法共四大部分。IDENTITY and PURPOSE设定身份第一段先把模型角色化你是数据与概念可视化专家擅长把复杂想法转换为可用 MermaidMarkdown语法表达的形式输入类型不限总能找到最简洁但仍能展示核心思想的可视化方式永远输出可渲染成图的 Markdown Mermaid 语法。这段的作用是给 LLM 一个稳定、高能力的角色锚点避免模型退化成散文式描述而非图表式输出。STEPS定义工作流程文档为执行定义了一系列操作步骤值得逐条理解其设计意图接收输入并用精细、复杂的 Mermaid 语法创作可视化鼓励表达而非缩水保证视觉稿可独立存在——即使脱离原输入文本仅看图也能完整理解概念恰当使用方框boxes、箭头arrows、标签labels等视觉元素来呈现数据、概念之间的相互关系复杂度随概念增长越复杂、数据越多的输入生成的图表越精细、越宏大在 Mermaid 语法下方追加一节名为VISUAL EXPLANATION的内容用每条 10 个单词的要点bullet解释输入是如何被转化为这张图的并要求解释与图完全匹配不匹配就重画如果一张图要覆盖的内容过多就把它收敛为最主要的核心结论只可视化这个核心结论绝不抱怨或放弃如果很难就再努力一点或者把概念抽象到更高层次再画。这一绘图 → 自解释 → 校验匹配 → 必要时重画的闭环是保证 LLM 图表质量的关键它迫使模型在图形表达与文字表达之间做一致性校验而不是画完就交差。OUTPUT INSTRUCTIONS限定输出格式输出指令是模式工程中最苛刻的部分也是对结果质量影响最大的一节不要抱怨直接输出 Mermaid 语法不要输出任何代码指示符反引号、代码块等确保图可以独立、完整传达概念并与文字解释严格一致做不到就重来只输出 Mermaid 语法杜绝任何非 Mermaid 的代码图中文字与图形采用高对比度的黑白配色保证在大多数文档与工具中清晰可读。这与 GitHub 变体形成了鲜明对比详见下文双胞胎模式章节本模式面向可以直接拿到纯 Mermaid 文本的场景而 GitHub 版面向粘贴进 GitHub Markdown 即可渲染的场景。INPUT输入占位文件末尾的# INPUT:是输入区的标记。根据 patterns.go 中ensureInput的逻辑模式加载后如果文本中不含{{input}}占位符Fabric 会自动在模式末尾追加换行与{{input}}随后把用户经标准输入stdin或交互输入传入的内容替换进去。也就是说INPUT:之后实际填充的就是用户要可视化的原材料。在 Fabric 中如何运行该模式运行一个模式统一使用-p/--pattern参数见 flags.go。典型调用方式是把待可视化的内容通过管道喂给 fabriccat notes.txt | fabric --pattern create_mermaid_visualization也可直接粘贴文本echo 某段会议记录或分析结论 | fabric --pattern create_mermaid_visualization常用相关参数如下均可在fabric --help中验证参见 flags.go 与 help.go参数作用-p, --pattern 名称选择要使用的模式-l, --listpatterns列出所有可用模式--readpattern 名称在终端打印某个模式的完整内容便于研究提示词本体-U, --updatepatterns从默认仓库更新模式集合-n, --latest 数量仅列出最近新增的 N 个模式-v, --variable key:value为模式中的模板变量传值如-v #role:expert--no-variable-replacement关闭模板变量替换保留字面#变量--stream流式输出结果模式加载后的变量处理细节可参见 patterns.goapplyVariables会先把{{input}}用哨兵令牌保护起来再执行模板引擎的变量替换如#role、#points这类以#开头的自定义变量最后把哨兵还原成真正的用户输入。create_mermaid_visualization本身不使用自定义变量因此对绝大多数输入都可直接运行。如果希望把它变成像summarize一样的直接命令README 提供了为全部模式批量生成 shell 别名的方案README.mdfor pattern_file in $HOME/.config/fabric/patterns/*; do pattern_name$(basename $pattern_file) alias_commandalias $pattern_namefabric --pattern $pattern_name eval $alias_command done之后即可执行create_mermaid_visualization先读取标准输入内容再回车快速生成图表。源码级原理模式如何被找到并加载要理解该模式在 Fabric 内部的工作方式需要追踪三条链路。1. 模式存储与读取Fabric 的模式本体按一个目录一个模式组织每个目录内存放system.md系统提示词即本模式正文以及可选的user.md、README.md。存储层常量SystemPatternFile system.md定义于 db.go。读取时patterns.go 的getFromDB会先校验模式名合法性若配置了自定义模式目录CustomPatternsDir优先在其中查找{自定义目录}/{名称}/system.md否则回退到主模式目录{patterns目录}/{名称}/system.md读取成功后包装为{Name, Pattern}结构返回。因此你看到的 system.md 全文就是模型实际收到的系统指令。2. 模式分发与更新patterns_loader.go 定义了模式的默认来源Git 仓库data/patterns目录即当前仓库内 data/patterns 的真实目录结构。PopulateDB会先克隆到临时目录再拷贝到本地配置目录并把用户自定义模式中与新版不冲突的部分保留下来PersistPatterns最后生成unique_patterns.txt索引文件createUniquePatternsFile供--listpatterns与--latest使用。值得注意的是其中的老路径自动迁移逻辑tryPathMigration当检测到旧路径patterns下没有内容时会尝试自动切换到新路径data/patterns并重新拉取。3. 输入注入如前所述ensureInput会在模式不含{{input}}时自动补齐占位随后applyInput用标准输入内容完成替换patterns.go。这也解释了为什么模式文件结尾只写了INPUT:标记——真实内容是由 Fabric 在运行时动态拼接的。姊妹模式create_mermaid_visualization_for_github在 data/patterns 中紧邻该模式还有其面向 GitHub 的版本 create_mermaid_visualization_for_github/system.md。二者身份与步骤几乎相同关键差异集中在输出指令上本模式明确要求不输出任何代码指示符反引号/代码块产出的是可被任意 Mermaid 渲染器直接消费的纯文本语法GitHub 版要求把 Mermaid 代码放进反引号围栏例如并额外强调仔细检查确保没有任何 Mermaid 语法错误——因为 GitHub README 渲染器对语法错误零容忍。使用建议想拿到干净语法、粘贴到本地工具/网页 Mermaid Live Editor用create_mermaid_visualization想把图表直接贴进 GitHub README / Issue / PR 描述用create_mermaid_visualization_for_github。用fabric --readpattern create_mermaid_visualization_for_github即可在终端随时核对这两个版本的差异。模式的运行边界与可视化生态需要说明的是create_mermaid_visualization的输出是纯 Mermaid 文本它本身不做渲染。Mermaid 的渲染环节落在 Fabric 的 Web 聊天前端从 chat-interface.ts 可以看出消息格式类型包含markdown | mermaid | plain | loading而 ChatMessages.svelte 会对format ! mermaid的消息走普通渲染路径——即存在专门的 Mermaid 格式通道来呈现这类图表。因此用户可以在 Web 界面获得模式生成 Mermaid 前端渲染成图的完整体验在纯 CLI 场景下则需要把输出复制到支持 Mermaid 的 Markdown 编辑器或渲染工具中查看。如果需求是其他图表类型Fabric 的可视化家族还提供了更细分的替代均在 data/patterns 下可对照选用create_markmap_visualization输出 MarkMap 语法适合思维导图式层级展示create_conceptmap用 Vis.js 生成交互式 HTML 概念图create_excalidraw_visualization输出 Excalidraw 手绘风结构化图表create_investigation_visualization输出 Graphviz DOT 图偏调查取证分析场景。如何把这个模式的思路迁移到自己的使用场景该模式的价值不仅在于开箱即用其提示词设计本身就是可复用的工程范式先定人格再定步骤最后死磕输出约束——身份决定能力上限步骤决定稳定性输出约束决定可用性强制图文字自解释一致性——要求模型解释自己的绘图决策并与图匹配是过滤幻觉与低质量输出的低成本手段内容过载时主动收敛——当概念过多放弃面面俱到只可视化首要信息保证信息密度不稀释区分渲染目标——同一能力可以按最终落地介质本地编辑器 vs GitHub README拆成两个模式这是 Fabric 目录中很典型的差异化复用思路。想要深入学习模式写作可结合 create_pattern生成新模式的元模式与 official_pattern_template官方模式模板它们与本文介绍的模式遵循同一套分节规范能够帮你写出同样可被稳定执行的专用模式。小结create_mermaid_visualization是 Fabric 可视化类模式中非常轻量但设计精巧的一个它用身份设定限定能力、用步骤控制质量、用输出约束保证纯净化、用复杂度自适应适配不同输入最终在终端只产出一段可直接渲染的 Mermaid 文本。理解它的结构等于理解了 Fabric 中上百个模式通用的系统提示词工程骨架而将其与其他可视化模式、与 GitHub 版本对比使用则可以按渲染场景灵活取舍。对该模式的实现机制有疑问时可优先阅读 system.md提示词本体、patterns.go加载与变量替换、patterns_loader.go模式仓库更新并结合fabric --readpattern create_mermaid_visualization查看终端内的完整原文。【免费下载链接】FabricFabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.项目地址: https://gitcode.com/GitHub_Trending/fa/Fabric创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表