导航
[!注意] 2024年5月23日——我们将在几周内将 Fabric 切换到 Go 语言,以避免 Python 安装问题。Go 版本将非常简单易用,速度更快,而且更容易更新。多亏了 @xssdoctor 的英勇努力,我们已经让它运行起来了,现在只是在进行测试!请继续关注发布日期的更多信息!
由 Network Chuck 提供的介绍视频!
这是 Network Chuck 制作的一个 精彩 视频,详细介绍了他为什么开始使用 Fabric 来处理所有与 AI 相关的事物。他谈到了项目的精神,如何安装它,以及他如何使用它,并且他非常好地阐述了我们在这里做的事情的精神。感谢 Chuck!
什么和为什么
自2023年和生成式 AI 以来,我们看到大量 AI 应用用于完成任务。这很强大,但 将这种功能集成到我们的生活中并不容易。
换句话说,AI 不是能力问题——它是一个集成问题。
Fabric 的创建旨在通过使每个人都能够细致地将 AI 应用于日常挑战来解决这一问题。
理念
AI 不是一种事物;它是事物的_放大器_。而这个事物就是人类创造力。
我们相信技术的目的是帮助人类繁荣,因此当我们谈论 AI 时,我们首先关注我们要解决的人类问题。
将问题分解成组件
我们的方法是将问题分解成单个部分(见下文),然后逐个应用 AI。请参见下文中的一些示例。
过多的提示
提示对此有好处,但我在2023年面临的最大挑战——至今仍然存在——是大量的 AI 提示。我们都有有用的提示,但很难发现新的提示,知道它们是否有效,并管理我们喜欢的不同版本。
fabric
的主要功能之一是帮助人们收集和集成提示,我们称之为_模式_,将其融入到生活的各个方面。
Fabric 具有适用于各种生活和工作活动的模式,包括:
- 提取 YouTube 视频和播客中最有趣的部分。
- 仅凭一个想法写出一篇符合自己风格的文章。
- 总结晦涩的学术论文。
- 为某篇文章创建完美匹配的 AI 艺术提示。
- 评估内容质量,以确定是否值得阅读/观看完整内容。
- 获得冗长、无聊内容的摘要。
- 向你解释代码。
- 将糟糕的文档转化为可用的文档。
- 从任何内容输入创建社交媒体帖子。
- 还有更多更多……
我们的提示方式
Fabric 的_模式_与大多数你会看到的提示不同。
- 首先,我们使用
Markdown
来确保最大程度的可读性和可编辑性。这不仅有助于创建者制作一个好的提示,也帮助任何想要深入理解其作用的人。重要的是,这也包括你发送提示的 AI!
这是一个 Fabric 模式的示例
https://github.com/danielmiessler/fabric/blob/main/patterns/extract_wisdom/system.md
-
其次,我们在指令中非常清晰,并且使用 Markdown 结构来强调我们希望 AI 做什么以及按什么顺序进行。
-
最后,我们几乎专门使用提示的系统部分。在一年多的深入研究中,我们发现这样做更有效。如果情况发生变化,或者我们有数据显示其他情况,我们会进行调整。
快速开始
使用 Fabric 的最丰富功能的方式是使用 fabric
客户端,可以在此存储库中的/client
目录下找到。
所需 Python 版本
确保你的操作系统至少安装了 python3.10。否则,当你尝试运行 pip install 命令时,项目会因某些依赖关系而构建失败。
设置 fabric 命令
按照以下步骤安装和配置所有 fabric 相关的应用程序。
- 导航到你希望 Fabric 项目在系统上存放的半永久性位置。
# 为 Fabric 找一个家
cd /where/you/keep/code
- 将项目克隆到你的计算机。
# 将 Fabric 克隆到你的计算机
git clone https://github.com/danielmiessler/fabric.git
- 进入 Fabric 的主目录。
# 进入项目文件夹(你克隆到的位置)
cd fabric
- 安装 pipx:
macOS:
brew install pipx
Linux:
sudo apt install pipx
Windows:
使用 WSL 并按照 Linux 指令操作。
- 安装 fabric:
pipx install .
- 运行设置:
fabric --setup
-
重启 shell 以重新加载所有内容。
-
现在你已经可以开始运行了!你可以通过运行帮助命令来进行测试。
选项: -h, --help 显示此帮助信息并退出 --text TEXT, -t TEXT 要从中提取摘要的文本 --copy, -C 将响应复制到剪贴板 --agents, -a 使用 praisonAI 创建一个 AI 代理并使用它。例如:“帮我写一个电影剧本” --output [OUTPUT], -o [OUTPUT] 将响应保存到文件 --session [SESSION], -S [SESSION] 继续你之前的对话。默认是你之前的对话 --gui 使用图形界面(需要安装 Node 和 npm) --stream, -s 如果你想实时查看结果,请使用此选项。注意:你将无法将输出传输到另一个命令中。 --list, -l 列出可用的模式 --temp TEMP 设置模型的温度。默认值为 0 --top_p TOP_P 设置模型的 top_p。默认值为 1 --frequency_penalty FREQUENCY_PENALTY 设置模型的频率惩罚。默认值为 0.1 --presence_penalty PRESENCE_PENALTY 设置模型的存在惩罚。默认值为 0.1 --update, -u 更新模式。 --pattern PATTERN, -p PATTERN 要使用的模式(提示) --setup 设置你的 Fabric 实例 --changeDefaultModel CHANGEDEFAULTMODEL 更改默认模型。要查看可用模型列表,请使用 --listmodels 标志。 --model MODEL, -m MODEL 选择要使用的模型 --listmodels 列出所有可用的模型 --remoteOllamaServer REMOTEOLLAMASERVER 要使用的远程 Ollama 服务器的 URL。仅在你使用本地 Ollama 服务器并且位置或端口非默认时使用 --context, -c 使用上下文文件(context.md)为你的模式添加上下文
示例命令
客户端默认情况下运行 Fabric 模式,而无需服务器(模式在设置期间已下载)。这意味着客户端直接连接到 OpenAI 使用给定的输入和使用的 Fabric 模式。
- 基于
stdin
输入运行summarize
模式。在这种情况下,文章的正文。
pbpaste | fabric --pattern summarize
- 使用
--stream
选项运行analyze_claims
模式,以便即时获取流式结果。
pbpaste | fabric --stream --pattern analyze_claims
- 使用
--stream
选项运行extract_wisdom
模式,以便从任何 YouTube 视频中即时获取流式结果(类似于原始介绍视频)。
yt --transcript https://youtube.com/watch?v=uXs-zPc63kM | fabric --stream --pattern extract_wisdom
- 新功能 所有模式都已作为别名添加到你的 bash(或 zsh)配置文件中
pbpaste | analyze_claims --stream
[!注意] 接下来几天将提供更多示例,包括一个演示视频!
只使用模式
如果你不想做任何花哨的事情,只是想要很多优秀的提示,你可以导航到 /patterns
目录并开始探索!
我们希望即使你只使用 Fabric 的模式,这个项目本身也能对你有用。
你可以在任何 AI 应用程序中使用你在此看到的任何模式,无论是 ChatGPT 还是其他应用程序或网站。我们的计划和预测是,人们很快就会分享比我们发布的更多的模式,而且它们会比我们的更好。
群众的智慧才是胜利的关键。
创建你自己的 Fabric Mill
但我们不仅仅提供模式。我们还提供代码供你构建你自己的 Fabric 服务器和个人 AI 基础设施!
结构
Fabric 的主题是,嗯……“fabric”——也就是……编织材料。因此,想象一下毯子、被子、模式等等。这是概念和结构:
组件
Fabric 生态系统有三个主要组件,都以纺织品为主题命名。
- Mill 是(可选的)使 Patterns 可用的服务器。
- Patterns 是实际的细粒度 AI 用例(提示)。
- Stitches 是串联在一起的 Patterns,创建高级功能(见下文)。
- Looms 是客户端应用程序,它们调用由 Mill 托管的特定 Pattern。
CLI 原生
项目最酷的部分之一是它是 命令行原生 的!
你在 /patterns
目录中看到的每个模式都可以在你使用的任何 AI 应用程序中使用,但你也可以使用 /server
代码设置你自己的服务器,然后直接调用 API!
设置完成后,你可以做如下操作:
# 将任何想法从 `stdin` 发送到 `/write_essay` API!
echo "编程就像是带有规则的说话。" | write_essay
直接调用模式
fabric
及其基于 Markdown 的格式的一个关键特性是能够 直接引用(并编辑)单个 Patterns,无需任何外围代码。
例如,以下是如何调用 extract_wisdom
模式的 直接位置。
https://github.com/danielmiessler/fabric/blob/main/patterns/extract_wisdom/system.md
这意味着你可以清晰、直接地引用任何模式,用于网页 AI 应用、你自己的代码或其他地方!
更好的是,你还可以让你的 Mill 功能直接调用 fabric
中的 system 和 user 提示,这意味着你可以让你的个人 AI 生态系统自动保持最新版本你最喜欢的 Patterns。
代码如下所示:
https://github.com/danielmiessler/fabric/blob/main/server/fabric_api_server.py
# /extwis
@app.route("/extwis", methods=["POST"])
@auth_required # 需要认证
def extwis():
data = request.get_json()
# 如果没有输入,发出警告
if "input" not in data:
return jsonify({"error": "缺少 input 参数"}), 400
# 从客户端获取数据
input_data = data["input"]
# 设置系统和用户 URL
system_url = "https://raw.githubusercontent.com/danielmiessler/fabric/main/patterns/extract_wisdom/system.md"
user_url = "https://raw.githubusercontent.com/danielmiessler/fabric/main/patterns/extract_wisdom/user.md"
# 获取提示内容
system_content = fetch_content_from_url(system_url)
user_file_content = fetch_content_from_url(user_url)
# 构建 API 调用
system_message = {"role": "system", "content": system_content}
user_message = {"role": "user", "content": user_file_content + "\n" + input_data}
messages = [system_message, user_message]
try:
response = openai.chat.completions.create(
model="gpt-4-1106-preview",
messages=messages,
temperature=0.0,
top_p=1,
frequency_penalty=0.1,
presence_penalty=0.1,
)
assistant_message = response.choices[0].message.content
return jsonify({"response": assistant_message})
except Exception as e:
return jsonify({"error": str(e)}), 500
示例
以下是extract_wisdom
模式的简要输出示例(每节仅限 10 项)。
# 粘贴 Riva Tez 在 David Perrel 播客上的 YouTube 视频的字幕
pbpaste | extract_wisdom
## 总结:
内容包括两个人之间的对话,讨论了各种主题,包括西方文化的衰落、生活中美和细腻的重要性、技术和 AI 的影响、里尔克诗歌的共鸣、深度阅读和重读文本的价值、安·兰德写作的吸引力、哲学在理解世界中的作用以及药物对社会的影响。他们还讨论了创造力、注意力跨度和自省的重要性
1. 避免主流媒体的消费,以更深入地参与历史文本和个人研究。
2. 定期重读年轻时影响深远的书籍,随着年龄的增长获得新的见解。
3. 进行深度阅读,而不是浏览或快速阅读材料。
4. 背诵重要文本的整个章节或段落,以更好地理解内容。
5. 退出社交媒体和快节奏的新闻循环,以更专注的思考过程。
6. 通过长距离散步作为冥想和反思的一种方式。
7. 通过内省和静止为思想的凝固创造空间。
8. 完全接受诸如悲伤或愤怒等情绪,而不是压抑它们。
9. 寻求在不同职业和生活方式中的多样化经验。
10. 优先进行没有特定目标或限制的好奇心驱动的研究。
## 事实:
1. 西方被认为因文化转变而偏离传统价值观而正在衰退。
2. 由于技术进步和媒体消费习惯,人们的注意力跨度缩短了。
3. 里尔克的诗歌强调通过细致观察在日常物品中发现美。
4. 现代社会往往由于各种刺激的感官过载而忽视了细微之处。
5. 阅读习惯已经从与文本的深度互动演变为快速消费大量内容。
6. 重读影响深远的书籍可以根据累积的生活经验获得新的见解。
7. 小说可以通过人物发展和叙事弧有效地阐明哲学概念。
8. 哲学在塑造推理能力和理解复杂思想方面起着重要作用。
9. 创造力可能会受到社会中的文化虚无主义和保护主义态度的压制。
10. 短期思维破坏了创造具有持久美感或意义的作品的努力。
## 参考文献:
1. 赖纳·玛利亚·里尔克的诗歌
2. Netflix
3. Underworld音乐会
4. 凯蒂·佩里的戏剧性表演
5. 泰勒·斯威夫特的表演
6. 圣经研究
7. 艾茵·兰德的《阿特拉斯耸耸肩》
8. 罗伯特·皮尔西格的著作
9. 伯特兰·罗素对哲学的定义
10. 尼采的散步