danielmiessler / Fabric

danielmiessler/Fabric

open_in_new前往仓库

Fabric 是一个开源 AI 增强框架,通过模块化系统将众包的 AI 提示词(Patterns)组织起来,用于解决特定问题,可在任何地方使用。

项目概览

项目概述

Fabric 是一个开源框架,旨在通过 AI 增强人类能力。它提供了一个模块化系统,利用众包的 AI 提示词(称为 Patterns)来解决特定问题,并可在任何地方使用。该项目由 Daniel Miessler 创建,采用 Go 语言编写,遵循 MIT 许可证。

核心功能

  • Patterns 系统:组织、收集和分享针对特定任务的 AI 提示词,涵盖生活与工作的方方面面。
  • 多供应商支持:原生集成 OpenAI、Anthropic、Google Gemini、Ollama、Azure OpenAI、Amazon Bedrock 等,并兼容众多 OpenAI 兼容供应商。
  • 命令行界面:提供功能丰富的 CLI,支持流式输出、会话管理、上下文管理、YouTube 视频处理、网页抓取等。
  • REST API 服务器:内置 REST API,可通过 HTTP 访问核心功能,并支持 Ollama 兼容模式。
  • 自定义 Patterns:支持用户创建私有 Patterns,且不会被内置 Patterns 更新覆盖。
  • 提示词策略:实现多种提示词策略,如思维链(CoT)、思维草稿(CoD)等。
  • 辅助工具:提供 to_pdf、code2context、generate_changelog 等辅助命令。
  • Web 界面:提供内置的 Web 图形界面。

适用与不适用场景

适用场景:

  • 希望将 AI 集成到个人工作流中的个人用户。
  • 需要为特定任务(如总结、分析、内容创作)寻找和使用高质量提示词的场景。
  • 开发者希望构建或分享可复用的 AI 提示词。
  • 需要通过命令行或 API 与多种 AI 模型交互的场景。

不适用场景:

  • 需要图形化拖拽式 AI 工作流编排的平台(Fabric 更侧重于 CLI 和提示词管理)。
  • 需要特定领域深度定制 AI 模型训练的场景。
  • 需要内置数据存储或业务逻辑的完整应用。

技术架构与依赖

  • 编程语言:Go
  • 主要依赖:
    • 各 AI 供应商的官方 SDK(如 OpenAI、Anthropic、AWS Bedrock、Azure 等)。
    • yt-dlp:用于 YouTube 视频处理。
    • ffmpeg:用于媒体文件处理(如语音转文字时的文件分割)。
    • Jina AI:用于网页抓取。
  • 项目结构:遵循标准 Go 项目布局,主要代码位于 cmd/ 和 internal/ 目录。

安装与快速开始

一键安装(推荐):

Unix/Linux/macOS:

curl -fsSL https://raw.githubusercontent.com/danielmiessler/fabric/main/scripts/installer/install.sh | bash

Windows PowerShell:

iwr -useb https://raw.githubusercontent.com/danielmiessler/fabric/main/scripts/installer/install.ps1 | iex

使用包管理器:

  • macOS (Homebrew): brew install fabric-ai
  • Arch Linux (AUR): yay -S fabric-ai
  • Windows (Winget): winget install danielmiessler.Fabric
  • Windows (Scoop): scoop install fabric-ai

从源码安装:

go install github.com/danielmiessler/fabric/cmd/fabric@latest

Docker:

docker run --rm -it kayvan/fabric:latest --version

快速开始:

  1. 运行 fabric --setup 进行配置,选择 AI 供应商并设置 API 密钥。
  2. 使用 fabric --listpatterns 查看可用 Patterns。
  3. 使用 echo "你的文本" | fabric --pattern summarize 运行 Pattern。

典型使用方法

使用 Pattern 处理文本:

pbpaste | fabric --pattern summarize

处理 YouTube 视频:

fabric -y "https://youtube.com/watch?v=uXs-zPc63kM" --stream --pattern extract_wisdom

抓取网页并分析:

fabric -u https://github.com/danielmiessler/fabric/ -p analyze_claims

使用提示词策略:

echo "Analyze this code" | fabric --strategy cot -p analyze_code

启动 REST API 服务器:

fabric --serve

配置与部署要点

  • 配置文件:主要配置存储在 ~/.config/fabric/ 目录下,包括 .env(API 密钥)和 config.yaml。
  • 环境变量:需要根据操作系统设置 GOROOT、GOPATH 和 PATH 环境变量。
  • 供应商配置:通过 fabric --setup 交互式配置,或手动编辑 .env 文件。
  • 自定义 Patterns:在 fabric --setup 中指定自定义 Patterns 目录,或手动创建于 ~/.config/fabric/patterns/。
  • Docker 部署:可通过 Docker 运行,需挂载配置目录 $HOME/.fabric-config。
  • REST API 安全:可通过 --api-key 参数设置 API 密钥以保护服务器路由。

限制、风险与许可证

  • 许可证:MIT License。
  • 依赖外部 AI 服务:Fabric 本身不提供 AI 能力,依赖外部 AI 供应商,其安全性、可用性和数据策略由供应商决定。
  • Patterns 安全性:自定义 Patterns 可能处理敏感数据或产生不当输出,建议仔细审查来源不明的 Patterns。
  • API 密钥安全:API 密钥存储在 ~/.config/fabric/.env 文件中,需妥善保管,避免泄露。
  • Azure AI Gateway 限制:不支持流式响应,请求超时上限为 5 分钟。
  • GitHub Models 速率限制:免费层有每日请求次数限制。

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、文档目录(docs/)及最新 Release 信息。
  • 分析时间:2026年8月29日(基于最新 Release 发布日期)。