大模型爆款应用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。

shell 复制代码
$ 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 中使用以下方法读取剪切板内容。

shell 复制代码
$ echo "Hello, world!" | xsel --clipboard --input # 复制
$ xclip -o -selection clipboard # 粘贴

4 具体示例

4.1 创建常用提示

编辑 $HOME/.config/fabric/patterns/xy_sum_trans/system.md,示例如下:

markdown 复制代码
# IDENTITY and PURPOSE

You 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 系统,从剪切板读取内容

shell 复制代码
$ 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 这样的提示工程项目相结合,轻松实现更多功能。
相关推荐
陈天伟教授11 分钟前
人工智能应用- 语言理解:05.大语言模型
人工智能·语言模型·自然语言处理
晚霞的不甘17 分钟前
守护智能边界:CANN 的 AI 安全机制深度解析
人工智能·安全·语言模型·自然语言处理·前端框架
空白诗1 小时前
CANN ops-nn 算子解读:大语言模型推理中的 MatMul 矩阵乘实现
人工智能·语言模型·矩阵
玄同7652 小时前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
Kiyra2 小时前
作为后端开发你不得不知的 AI 知识——RAG
人工智能·语言模型
lili-felicity3 小时前
CANN优化LLaMA大语言模型推理:KV-Cache与FlashAttention深度实践
人工智能·语言模型·llama
kjkdd6 小时前
5. LangChain设计理念和发展历程
python·语言模型·langchain·ai编程
算法狗26 小时前
大模型面试题:大模型的训练和推理中显存和计算量的情况
人工智能·深度学习·机器学习·语言模型
盼小辉丶7 小时前
Transformer实战——Transformer跨语言文本分类
深度学习·语言模型·自然语言处理·transformer
fanstuck16 小时前
从0到提交,如何用 ChatGPT 全流程参与建模比赛的
大数据·数学建模·语言模型·chatgpt·数据挖掘