大模型爆款应用fabric_构建优雅的提示
项目地址:https://github.com/danielmiessler/fabric
1 引言
目前 fabric 已经获得了 5.3K Star,其中上周获得了 4.2K,成为了上周热榜的第二名(第一名是免费手机看电视的 Android 工具),可以算是爆款应用了。
其原因可能是 fabric 打到大家的痛点:不是工具不够好,是用起来这工作流太不顺畅了,比如想用一个提示,连找带贴弄了半天,打断了当前思路……
因为我多数时间是让大模型帮我解决具体问题,而不是聊天,好像也没听说谁每天都和它聊两小时的。所以,fabric 可能是我用过的最舒服的大模型封装工具。虽然技术含量并不是特别高,但是使用起来非常方便。别人都在考虑如何做得大而全,这位作者却想着如何解决最核心、最常见的问题,思考问题的角度比较独特。
它具有以下特点:
- 命令行操作,几乎没有学习成本,便于安装,使用、集成。
- 封装了最为常用的几个功能。
- 把复杂问题分解为多步处理。
- 配置文件和输出均使用 markdown 格式,易于阅读。
- 设计结构,便于管理多种提示。
2 功能
Fabric 的核心功能是调用大型模型,并帮助人们收集和整合提示。它将解决一种问题对应的提示称为模式 pattern。
3 代码分析
项目非常简单,包含 370 行 Python 代码,外加 2072 行 Markdown Prompt。
$ git clone https://github.com/danielmiessler/fabric
$ cd fabric/client
$ pip install -r requirements.txt
$ echo "export PATH=$PATH:$(pwd)" >> ~/.bashrc
$ ./fabric --setup
输入 OPEN_API_KEY 之后,会下载最新的提示文件到:$HOME/.config/fabric/patterns/
echo "你是什么模型"|fabric --pattern ai --stream
还可以使用剪切板内容提问,网站上给出的是 pbpaste 是 mac 系统使用剪切板的方法,我在 linux 中使用以下方法读取剪切板内容。
$ echo "Hello, world!" | xsel --clipboard --input # 复制
$ xclip -o -selection clipboard # 粘贴
4 具体示例
4.1 创建常用提示
编辑 $HOME/.config/fabric/patterns/xy_sum_trans/system.md,示例如下:
# IDENTITY and PURPOSEYou are an expert content summarizer and translator. You take content in and output a Markdown formatted summary using the format below.# OUTPUT SECTIONS- 翻译成中文
- 将生涩的语言转换成浅显易懂
- 概括总结成两句话# OUTPUT INSTRUCTIONS- Create the output using the formatting above.
- You only output human readable Markdown.
- Output numbered lists, not bullets.
- Do not output warnings or notes—just the requested sections.
- Do not start items with the same opening words.# INPUT:INPUT:
4.2 使用常用提示
我使用 Linux 系统,从剪切板读取内容
$ xclip -o -selection clipboard|fabric --pattern xy_sum_trans --stream
4.3 注意
- 默认使用 gpt-4-1106-preview,相对 gpt3.5 要贵一些,可在代码 client/utils.py 中替换成 3.5;另外,也可以在这里替换成其它中转服务。
- 输出可能英文,如果需要中文回答,需要修改 pattern 或者在代码中指定用中文回答。
5 使用感受
- 如果用聊天界面提问,会把之前的聊天记录也传给 gpt,而翻译,润色这类功能不需要传入上下文,从而造成了浪费。使用fabric能很好地解决这一问题。
- 该工具的底层逻辑是把相对复杂的工作拆成多步处理,像 gpt-4 这类工具,一次调用,往往不能满足太多要求,拆成多步后效果会好得多;即使出问题,也知道问题出在哪步。用了才知真的好,确实是对大脑的减负。
- 我一直不太习惯用图形聊天界面,感觉很受限制,常常拖来拖去地翻找,保存内容也比较麻烦,更别说从其它工具调用了。另外,想用一个提示,还要从其它工具搜索,再粘过来,非常麻烦。
- 在学术论文方面,我试用 gpt-3.5 和 gpt-4,正常时效果差不多,但有时 gpt3.5 常常生成完全不对的回答(我试验约占 1/4),gpt3.5 的费用 gpt4 是 1/10,建议略改下代码交叉使用。
- 可以把常用的 prompt 加入 pattern,或者与 awesome-chatgpt-prompts-zh 这样的提示工程项目相结合,轻松实现更多功能。
相关文章:
大模型爆款应用fabric_构建优雅的提示
项目地址:https://github.com/danielmiessler/fabric 1 引言 目前 fabric 已经获得了 5.3K Star,其中上周获得了 4.2K,成为了上周热榜的第二名(第一名是免费手机看电视的 Android 工具),可以算是爆款应用…...
js 对象属性描述符详解
文章目录 一、value二、writable三、访问器属性:get和set四、configurable五、注意事项 在 JavaScript 中,我们经常需要控制对象属性的特性,包括可写、可枚举等,本篇博客将介绍常见的对象属性使用及其特点。 本篇博客我们用首先O…...
文件操作QFile
C中,QT的QFile 类是 Qt 框架中用于文件处理的一个类,它继承自 QIODevice。该类提供了一系列用于文件读写的功能,支持文本和二进制文件的处理。QFile 允许开发者方便地在本地文件系统中创建、读取、写入和操作文件。 主要功能 文件打开与关闭…...
【Langchain】+ 【baichuan】实现领域知识库【RAG】问答系统
本项目使用Langchain 和 baichuan 大模型, 结合领域百科词条数据(用xlsx保存),简单地实现了领域百科问答实现。 from langchain.text_splitter import CharacterTextSplitter, RecursiveCharacterTextSplitter from langchain_co…...
Anaconda、conda、pip、virtualenv的区别
① Anaconda Anaconda是一个包含180的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。 Anaconda具有如下特点: ▪ 开源 ▪ 安装过程简单 ▪ 高性能使用Python和R语言 ▪ 免费的社区支持 其特点的实现…...
【数据结构】每天五分钟,快速入门数据结构(一)——数组
目录 一.初始化语法 二.特点 三.数组中的元素默认值 四.时间复杂度 五.Java中的ArrayList类 可变长度数组 1 使用 2 注意事项 3 实现原理 4 ArrayList源码 5 ArrayList方法 一.初始化语法 // 数组动态初始化(先定义数组,指定数组长度…...
NBlog个人博客部署维护过程记录 -- 后端springboot + 前端vue
项目是fork的Naccl大佬NBlog项目,页面做的相当漂亮,所以选择了这个。可以参考2.3的效果图 惭愧,工作两年了也没个自己的博客系统,趁着过年时间,开始搭建一下. NBlog原项目的github链接:Naccl/NBlog: &#…...
WireShark 安装指南:详细安装步骤和使用技巧
Wireshark是一个开源的网络协议分析工具,它能够捕获和分析网络数据包,并以用户友好的方式呈现这些数据包的内容。Wireshark 被广泛应用于网络故障排查、安全审计、教育及软件开发等领域。接下将讲解Wireshark的安装与简单使用。 目录 Wireshark安装步骤…...
PyTorch detach():深入解析与实战应用
PyTorch detach():深入解析与实战应用 🌵文章目录🌵 🌳引言🌳🌳一、计算图与梯度传播🌳🌳二、detach()函数的作用🌳🌳三、detach()与requires_graddz…...
uniapp 开发一个密码管理app
密码管理app 介绍 最近发现自己的账号密码真的是太多了,各种网站,系统,公司内网的,很多站点在登陆的时候都要重新设置密码或者通过短信或者邮箱重新设置密码,真的很麻烦 所以准备开发一个app用来记录这些站好和密码…...
Postman详细攻略
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法…...
如何在本地服务器部署TeslaMate并远程查看特斯拉汽车数据无需公网ip
文章目录 1. Docker部署TeslaMate2. 本地访问TeslaMate3. Linux安装Cpolar4. 配置TeslaMate公网地址5. 远程访问TeslaMate6. 固定TeslaMate公网地址7. 固定地址访问TeslaMate TeslaMate是一个开源软件,可以通过连接特斯拉账号,记录行驶历史,统…...
如何在CentOS安装SQL Server数据库并实现无公网ip环境远程连接
文章目录 前言1. 安装sql server2. 局域网测试连接3. 安装cpolar内网穿透4. 将sqlserver映射到公网5. 公网远程连接6.固定连接公网地址7.使用固定公网地址连接 前言 简单几步实现在Linux centos环境下安装部署sql server数据库,并结合cpolar内网穿透工具࿰…...
备战蓝桥杯 Day5
1191:流感传染 【题目描述】 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得…...
爬虫学习笔记-scrapy爬取电影天堂(双层网址嵌套)
1.终端运行scrapy startproject movie,创建项目 2.接口查找 3.终端cd到spiders,cd scrapy_carhome/scrapy_movie/spiders,运行 scrapy genspider mv https://dy2018.com/ 4.打开mv,编写代码,爬取电影名和网址 5.用爬取的网址请求,使用meta属性传递name ,callback调用自定义的…...
Unity笔记:数据持久化的几种方式
正文 主要方法: ScriptableObjectPlayerPrefsJSONXML数据库(如Sqlite) 1. PlayerPerfs PlayerPrefs 存储的数据是全局共享的,它们存储在用户设备的本地存储中,并且可以被应用程序的所有部分访问。这意味着…...
MySQL 基础知识(八)之用户权限管理
目录 1 MySQL 权限管理概念 2 用户管理 2.1 创建用户 2.2 查看当前登录用户 2.3 修改用户名 2.4 删除用户 3 授予权限 3.1 授予用户管理员权限 3.2 授予用户数据库权限 3.3 授予用户表权限 3.4 授予用户列权限 4 查询权限 5 回收权限 1 MySQL 权限管理概念 关于 M…...
QT编写工具基本流程(自用)
以后有人让你写工具的时候,可以方便用这个模版及时提高工作效率,可以争取早点下班。包含库目录,头文件目录,输出目录以及翻译和部署,基本上都全了,也可以做收藏用用。 文章目录 1、创建项目Dialog Widget都…...
代码随想录算法训练营第三六天 | 无重叠区间、划分字母区间、合并区间
目录 无重叠区间划分字母区间合并区间 LeetCode 435. 无重叠区间 LeetCode 763.划分字母区间 LeetCode 56. 合并区间 无重叠区间 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠…...
DP读书:《openEuler操作系统》(十)套接字 Socket 数据传输的基本模型
10min速通Socket 套接字简介数据传输基本模型1.TCP/IP模型2.UDP模型 套接字类型套接字(Socket)编程Socket 的连接1.连接概述(1)基本概念(2)连接状态(3)连接队列 2.建立连接3.关闭连接 socket 编程接口介绍数据的传输1. 阻塞与非阻塞2. I/O复用 数据的传输…...
Dify如何助力企业提升销售业绩
Dify作为一款企业级AI应用开发平台,可以通过赋能销售团队、优化销售流程,直接提升企业的销售业绩。其核心在于利用大模型能力,让销售变得更智能、更精准、更高效。🎯 精准获客与线索生成智能潜客筛选:通过Dify工作流&a…...
3步解决多显示器DPI调节难题:让你的显示效果精准一致的显示优化方案
3步解决多显示器DPI调节难题:让你的显示效果精准一致的显示优化方案 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 在现代办公环境中,多显示器配置已成为提升工作效率的标准选择,但随之而来的DPI缩放…...
十分钟搞定登录原型:用快马AI快速生成全站登录应用前端与后端
今天想和大家分享一个快速搭建全站登录应用原型的经验。最近在做一个新项目,需要验证登录模块的流程设计,传统开发方式至少要花一两天时间配置前后端环境,但这次尝试用InsCode(快马)平台的AI生成功能,十分钟就搞定了可交互的原型。…...
【Ease UI】2026-04-03组件更新:新增组件xly-file-preview文件预览组件
🚀 即插即用的 Vue 3 业务组件库,让中后台开发回归简单 Ease UI 是一套为「快速复制」而生的 Vue 3 业务组件库。每个组件都是独立的 .vue 单文件,不依赖任何外部样式或工具函数,直接复制到你的项目即可使用。它仅依赖 Element P…...
如何为Windows 11 LTSC系统一键安装微软商店:3分钟解决应用生态难题
如何为Windows 11 LTSC系统一键安装微软商店:3分钟解决应用生态难题 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否在使用Windows …...
终极Zrythm混音教程:从基础到高级的完整工作流程
终极Zrythm混音教程:从基础到高级的完整工作流程 【免费下载链接】zrythm a highly automated and intuitive digital audio workstation - official mirror 项目地址: https://gitcode.com/gh_mirrors/zr/zrythm Zrythm是一款高度自动化且直观的数字音频工作…...
OpenClaw多模态实践:Qwen3-14B分析截图生成操作指南
OpenClaw多模态实践:Qwen3-14B分析截图生成操作指南 1. 为什么需要截图分析自动化 上周团队来了三位新同事,我需要反复演示软件操作流程。每次截屏标注步骤后,还要手动整理成PDF发送。这种重复劳动让我开始思考:能否让AI自动识别…...
人形机器人手指关节选材:铝合金 vs PEEK,谁才是轻量化的终极方案?
在人形机器人研发中,末端执行器(手部)的性能直接决定了机器人的交互上限。而在手指关节这种“空间极度受限、重量极度敏感、运动频率极高”的部位,选铝合金还是 PEEK(聚醚醚酮),本质上是在“结构…...
KMS_VL_ALL_AIO企业级激活解决方案:从部署到合规的全流程指南
KMS_VL_ALL_AIO企业级激活解决方案:从部署到合规的全流程指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 一、问题诊断:企业批量激活的核心痛点 1.1 传统激活方式的…...
GitHub Desktop汉化终极指南:3步快速完成中文界面配置
GitHub Desktop汉化终极指南:3步快速完成中文界面配置 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 【GitHub桌面客户端中文汉化】 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop…...
