Fabric:把 AI 提示词做成命令行 Pattern 的框架
Fabric 是一套 Go 编写的开源框架,把 AI 提示词整理成可复用的 pattern,支持在命令行里把文本或 YouTube 转录交给多家 AI 模型处理。这篇文章讲它做什么、怎么安装与调用、关键参数有哪些,以及它在 YouTube 转录和供应商鉴权上踩过的坑,帮读者判断自己该不该用它。
Fabric 是一套 Go 编写的开源框架,把 AI 提示词整理成可复用的 pattern,用命令行把文本或 YouTube 转录交给任意模型处理并输出结果。
2022 年底以来,AI 应用的数量涨得很快,网站、聊天机器人、手机 App 都在做,可要把模型能力接进自己的日常工作流并不顺手。Fabric 把提示词本身当作基础模块,按现实任务分类组织,让人在一个地方创建、收集和管理自己的 AI 方案。
输入可以是从管道传进来的文本,也可以是一个 YouTube 链接或本地媒体文件;输出是模型在终端给出的回答。pattern 决定模型收到什么指令,--model 决定由哪个模型执行。仓库当前有 44101 个 Star、4285 个 Fork,主语言是 Go,采用 MIT 许可证,代码在 https://github.com/danielmiessler/Fabric。

它不做什么
Fabric 不含模型。仓库里没有模型权重,要跑通必须先接一个外部供应商,或者在本机跑 Ollama 这类本地服务。本地模型支持是社区提需求之后补上的,Issue 里那条「LocalLLM(ollama) support」现在标着已解决。
凭据要自备。用哪家供应商就得准备哪家的账号和 API key,仓库不代管这一层。凭据没配好时,命令行拿到的是鉴权类报错。
YouTube 相关能力依赖视频本身有可读字幕。Issue 记录里出现过 transcript not available 的报错,说明不是每个视频都能拉到转录文本。
README 提到,习惯用命令行的用户可以直接把 Fabric 本身当界面用;web/ 目录和 Svelte 那部分服务的是 REST API server 的文档页。
用之前先准备好什么
- 一个 AI 供应商的账号与 API key,或一台能跑 Ollama 的机器
- 能访问外网,用 YouTube 转录时尤其需要
- 一条安装途径:pipx、Homebrew,或者直接下载对应平台的二进制
README 的 Installation 章节写了各平台的完整步骤,本次拿到的摘录没有包含这部分正文,安装命令以仓库文档为准。从 Issue 记录能看到,用户实际用过 pipx、Homebrew,以及直接装 Go 版本这几种方式。
主要功能
Pattern 提示词调用:pattern 是 Fabric 的核心单位,每个 pattern 对应一类现实任务,比如摘要、要点提取、代码解释。用法是 fabric --pattern extract_wisdom,管道接上文本即可。也可以指定执行模型,写成 --pattern explain_code --model codellama:latest。
YouTube 转录:用 -y 或 --youtube 接视频链接,先拉字幕再交给 pattern 处理;--transcript 只取转录文本,--stream 让结果流式输出。典型写法是 fabric --youtube "https://www.youtube.com/watch?v=..." --stream --pattern extract_wisdom。
workflow 顺序编排:v1.4.484 加入 --workflow 参数,可以从一个 YAML 文件里把多个 pattern 串起来按顺序执行,让上一步的输出成为下一步的输入。
语音转文字:v1.4.291 加入 OpenAI 语音转文字支持,对应 --transcribe-file、--transcribe-model、--split-media-file 三个参数,用来处理音频或视频文件。
多供应商接入:可用后端包括 OpenAI、Anthropic Claude、Ollama、Azure OpenAI、AWS Bedrock、Google Vertex AI、Digital Ocean GenAI、GitHub Models、Venice AI、Abacus、Z AI,以及 v1.4.486 加入的阿里云 DashScope(通义千问)等。换供应商主要改配置和 --model。
REST API server:v1.4.350 加入 Swagger/OpenAPI 界面,挂在 /swagger/index.html,把 pattern 能力通过 HTTP 暴露出去,方便别的程序调用。
自定义 pattern 与多语言:pattern 是可扩充的,自己写一份就能挂进来用。v1.4.311 之后补了德语、波斯语、法语、意大利语、日语、葡萄牙语、中文等界面语言,v1.4.356 把 setup 提示的国际化补齐到 10 种语言。
安装与最短示例
安装方式在 README 的 Installation 章节,本次摘录未包含。仓库提供多平台二进制发布,v1.4.303 之后增加了 Linux ARM 和 Windows ARM 目标,可以在树莓派和 Windows Surface 上运行。
装完先走一次 setup 流程配好供应商,然后就能直接用。下面两条命令的形态来自 Issue 里用户实际贴出的写法:
echo "要处理的文本" | fabric --pattern create_summary
fabric --youtube "https://www.youtube.com/watch?v=..." --stream --pattern extract_wisdom
第一条把标准输入交给 pattern 处理,第二条先抓 YouTube 字幕再处理。短参数可以合并写,Issue 里出现过 fabric -sp create_summary -y <url>,其中 -s 是 stream,-p 是 pattern。
关键参数
--pattern/-p:指定用哪个 pattern--model:指定执行模型,比如codellama:latest--youtube/-y:传入 YouTube 链接并抓取字幕--transcript:只取转录文本,不送进模型--stream/-s:结果流式输出--workflow:从 YAML 串起多个 pattern 顺序执行--transcribe-file、--transcribe-model、--split-media-file:本地媒体的语音转文字
仓库里没有为每个参数列出默认值与取值范围,具体取值以 fabric --help 和文档为准。
结果在哪里看
默认输出到终端标准输出。用 --stream 时结果是边生成边打印。--transcript 模式下拿到的是视频字幕文本本身,不经过模型。
REST API server 起来之后,结果从 HTTP 接口返回,交互式文档在 /swagger/index.html。仓库里没有说明会把结果写入本地文件,需要留存就自己做重定向。
实际使用中的坑
默认设置下,管道喂进去的原文会同时出现在 system prompt 和 user prompt 里,这是 Issue 里反馈较集中的一条,现在标记为已解决。
有一段时间 fabric -sp create_summary -y <url> 拉不到 YouTube 字幕,用户是隔天发现不工作的。同一条抓取链路上还有 Windows 下转录失败,以及 YT helper 输出的撇号被转义成 \u0026#39; 两个问题,都已解决。
流式返回会碰到 STREAM_CONTENT_ERROR,报 422 Unprocessable Entity,原因是请求体里的 messages 字段缺失,这条同样已经修掉。
这些 Issue 多数已解决,但集中在 YouTube 转录和供应商鉴权两处,说明这两条链路对外部服务的变化比较敏感,升级前最好先确认这两块还能用。
同类项目对比
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 |
|---|---|---|---|---|---|
| Fabric | 习惯命令行、想把反复用到的提示词沉淀成可复用模块的开发者与内容工作者 | 先装 CLI,再配供应商密钥或本地 Ollama | 不含模型,必须接外部供应商或本地服务;YouTube 转录受字幕可用性限制 | 想有一套成体系的 pattern 库、需要在多家模型供应商之间切换时 | Fabric |
| sakata114/work | 想用轻量脚本管理任务与工作流的个人用户 | 仓库没有说明 | 未逐一核实 | 只需要简单的任务与工作流小工具,不想引入完整框架时 | sakata114/work |
| rice0649/fabric-lite | 想了解 Fabric 思路、但要更小体量的读者 | 仓库没有说明 | 未逐一核实 | 它是受 Fabric 启发的轻量 AI 增强框架,和 Fabric 要解决的问题不是同一件事,放在这里只是给同类选型的读者一个参照 | rice0649/fabric-lite |
Fabric 的配置链比对比项长:先装 CLI,再接供应商或本地模型,pattern 也要花时间熟悉。只打算在脚本里做一次简单的 LLM 调用、又不想维护完整供应商配置的时候,sakata114/work 这类小工具或者 fabric-lite 这类轻量框架上手更快。反过来,一旦你要管几十个提示词、还要在几家模型之间来回切换,Fabric 的组织方式才显出价值。
合规边界
YouTube 转录功能会把视频字幕抓下来交给模型处理。这类抓取要遵守平台的服务条款与著作权规定,只能用在自有内容或者已经拿到授权的素材上,把抓下来的字幕再分发或商用,可能同时触及平台规则与法律风险。
批量抓取还容易被目标平台限流甚至封禁,账号和内容的责任在使用者这边。做这类操作前,先确认授权范围。
适合谁
Fabric 适合已经习惯命令行、手里有一批反复用到的提示词、又需要在几家模型之间切换的人,也适合想把 AI 处理能力通过 REST API 接进自己程序的后端开发者。
不适合期待开箱即用图形客户端的人,也不适合不愿意准备 API key 或者本地模型服务的用户——没有这两样,装上之后一步都走不动。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 10.0 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 10.0 / 10 |
| 社区响应(权重 15%) | 10.0 / 10 |
| 文档质量(权重 15%) | 10.0 / 10 |
| 发布节奏(权重 10%) | 10.0 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
这篇把 Fabric 的调用方式和已知故障点讲清楚了:pattern、--model、--youtube、--workflow 各参数做什么,YouTube 转录和鉴权两条链路出过什么问题。适合习惯命令行、提示词多到需要管理、又要在多家模型间来回切换的人。安装步骤与参数默认值文中没给全,以仓库文档和 fabric --help 为准;
文中的 Star/Fork 数、版本号、参数名与 Issue 案例引自 GitHub 仓库及公开 Issue,诀.com 未做实测;安装章节正文原文未收录,焚评各维度得分来自焚.com 公开评分口径,未独立复算。文中使用经验与报错结果在同版本之外不保证复现。用户反馈摘要
根据仓库 Issue 来看,反馈集中在两处:YouTube 字幕抓取多次报 transcript not available,同一链路还有 Windows 下 YT helper 把撇号错误转义的问题;另一处是流式返回的 STREAM_CONTENT_ERROR,422 且提示 messages 字段缺失,以及管道原文同时进入 system 与 user prompt。需求侧围绕本地模型(Ollama、LM Studio)、Azure OpenAI 接入、Claude Pro 鉴权、抑制 thinking block 和给 pattern 加简短说明展开。上述条目状态多为已解决。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:danielmiessler(danielmiessler)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库