综合介绍
Fabric 是由 Daniel Miessler 开发的开源 AI 框架,旨在简化和自动化日常计算机任务,使人工智能更易于使用。它通过模块化设计和预设提示词(Patterns)帮助用户高效处理各种事务,如内容总结、数据提取和自动化写作。Fabric 支持多种大语言模型的集成,用户可以根据需求自定义设置,极大地提升了工作效率和学习能力。
Fabric
的主要功能之一是帮助人们收集提示并将其整合到他们生活的各个方面,我们称之为 Patterns。
功能列表
- 模块化设计:通过 Patterns 将复杂任务拆解为简单步骤。
- 多平台支持:可在不同操作系统上轻松安装和使用。
- 命令行界面:用户可通过 CLI 操作,适合喜欢命令行的用户。
- API 集成:支持与 OpenAI、Anthropic 等多家 AI 模型供应商的集成。
- 自定义提示:用户可以创建和编辑自己的提示,以满足特定需求。
- 本地模型支持:允许用户设置本地 AI 模型进行处理。
- 交互式设置:安装过程简单,提供交互式配置选项。
使用帮助
安装流程
# Windows: curl -L https://github.com/danielmiessler/fabric/releases/latest/download/fabric-windows-amd64.exe > fabric.exe && fabric.exe --version# MacOS (arm64): curl -L https://github.com/danielmiessler/fabric/releases/latest/download/fabric-darwin-arm64 > fabric && chmod +x fabric && ./fabric --version # MacOS (amd64): curl -L https://github.com/danielmiessler/fabric/releases/latest/download/fabric-darwin-amd64 > fabric && chmod +x fabric && ./fabric --version # Linux (amd64): curl -L https://github.com/danielmiessler/fabric/releases/latest/download/fabric-linux-amd64 > fabric && chmod +x fabric && ./fabric --version # Linux (arm64): curl -L https://github.com/danielmiessler/fabric/releases/latest/download/fabric-linux-arm64 > fabric && chmod +x fabric && ./fabric --version
要安装 Fabric,请确保已安装 Go,然后运行以下命令。
# Install Fabric directly from the repo go install github.com/danielmiessler/fabric@latest
设置
# Run the setup to set up your directories and keys fabric --setup
使用流程
- 基本命令使用:
Fabric 提供了一系列命令来执行不同的任务。例如,从 YouTube 视频中提取要点并生成博客文章,可以使用以下命令:yt https://www.youtube.com/watch?v=视频ID | fabric -p extract_wisdom | fabric -p write_essay | fabric -sp translate_cn
- 自定义模型选择:
在每次调用 Fabric 时,可以通过-m
参数选择不同的模型。例如,将默认模型更改为开源模型:fabric -m nousresearch/hermes-3-llama-3.1-405b: free
- 常见问题解决:
如果在安装或使用过程中遇到问题,可以访问 GitHub 的 Issues 页面查看其他用户的反馈或提出自己的问题。 - 社区支持与扩展:
Fabric 鼓励用户参与开发新的 Patterns 和功能,用户可以在 GitHub 上提交自己的贡献。
全部命令
用法: fabric [OPTIONS] 应用程序选项: -p, --pattern= 从可用的模式中选择一个模式 -v, --variable= 设置模式变量的值,例如 -v=#role:expert -v=#points:30 -C, --context= 从可用的上下文中选择一个上下文 --session= 从可用的会话中选择一个会话 -S, --setup 为 fabric 的所有可重新配置部分运行设置 -t, --temperature= 设置 temperature 值(默认: 0.7) -T, --topp= 设置 top P 值(默认: 0.9) -s, --stream 流式传输 -P, --presencepenalty= 设置 presence penalty 值(默认: 0.0) -r, --raw 使用模型的默认设置,不发送聊天选项(例如 temperature 等),并使用用户角色而非系统角色来匹配模式 -F, --frequencypenalty= 设置 frequency penalty 值(默认: 0.0) -l, --listpatterns 列出所有模式 -L, --listmodels 列出所有可用的模型 -x, --listcontexts 列出所有上下文 -X, --listsessions 列出所有会话 -U, --updatepatterns 更新模式 -c, --copy 复制到剪贴板 -m, --model= 选择模型 -o, --output= 输出到文件 --output-session 将整个会话(包括临时会话)输出到文件 -n, --latest= 列出最近的模式数量(默认: 0) -d, --changeDefaultModel 更改默认模型 -y, --youtube= 指定 YouTube 视频 "URL",以从中抓取转录内容和评论并发送到聊天 --transcript 从 YouTube 视频抓取转录内容并发送到聊天(默认使用此选项) --comments 从 YouTube 视频抓取评论并发送到聊天 -g, --language= 指定聊天的语言代码,例如 -g=en -g=zh -u, --scrape_url= 使用 Jina AI 将网站 URL 转换为 Markdown 格式 -q, --scrape_question= 使用 Jina AI 搜索问题 -e, --seed= 为 LMM 生成指定种子 -w, --wipecontext= 清除上下文 -W, --wipesession= 清除会话 --printcontext= 打印上下文 --printsession= 打印会话 --readability 将 HTML 输入转换为干净的可读视图 --dry-run 显示将发送给模型的内容而不实际发送 --version 打印当前版本 帮助选项: -h, --help 显示此帮助信息
实践建议
建议用户在实际操作中多尝试不同的功能,以便更好地理解 Fabric 的强大之处。通过实践,你将能充分利用这个工具来提升工作效率和学习效果。
接下来,我们的说明非常清晰,我们使用 Markdown 结构来强调我们希望 AI 做什么,以及以什么顺序。示例:https://github.com/danielmiessler/fabric/blob/main/patterns/extract_wisdom/system.md
fabric还提供了一个prompt模板,你可以参考这个结构轻松写出高质量的稳定的prompt:
https://github.com/danielmiessler/fabric/tree/main/patterns/create_pattern
最后,我们倾向于几乎只使用 Prompt 的 System 部分。在一年多的时间里,我们一直在埋头研究这些东西,我们刚刚看到了这样做的更多效果。如果情况发生变化,或者我们看到的数据显示情况并非如此,我们将进行调整。
例子
现在让我们看看您可以使用 Fabric 做的一些事情。
- 根据 stdin 的输入运行 summarize 模式。在本例中,为文章的正文。
pbpaste | fabric --pattern summarize
- 使用 --stream 选项运行 analyze_claims 模式,以获得即时和流式处理结果。
pbpaste | fabric --stream --pattern analyze_claims
- 使用 --stream 选项运行 extract_wisdom 模式,以从任何 Youtube 视频中获取即时和流式结果(与原始介绍视频非常相似)。
fabric -y "https://youtube.com/watch?v=uXs-zPc63kM" --stream --pattern extract_wisdom
- 创建图案 - 您必须使用该图案创建一个 .md 文件并将其保存到 ~/.config/fabric/patterns/[yourpatternname]。
拷贝出来就能用。如果您不想做任何花哨的事情,而只想要很多很棒的提示,您可以导航到 /patterns 目录并开始探索!所有模块化的提示词都在这个路径下面,使用方便,不需要写代码: 每个字目录下都有一个system.md,