大模型爆款应用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 小时前
Exploring Large Language Models for Knowledge Graph Completion
人工智能·深度学习·算法·语言模型·chatgpt·langchain·知识图谱
Y.G Bingo11 小时前
Text2SQL论文笔记 A Survey on Employing Large Language Models for Text-to-SQL Tasks
论文阅读·sql·语言模型
从入门到入土Q11 小时前
Ollama:本地大语言模型(LLM)部署 && 使用 Ollama 构建一个智能问答系统
人工智能·语言模型·自然语言处理
新加坡内哥谈技术13 小时前
微软AI核电计划
大数据·人工智能·语言模型·自然语言处理
老A的AI实验室13 小时前
AI Agent的20个趋势洞察
人工智能·ai·语言模型·llm·genai
DA树聚15 小时前
Transformer模型-7- Decoder
人工智能·深度学习·神经网络·算法·目标检测·语言模型·transformer
SpikeKing17 小时前
LLM - 理解 多模态大语言模型(MLLM) 的 对齐微调(Alignment) 与相关技术 (五)
人工智能·深度学习·语言模型·rlhf·alignment·dpo·instructgpt
sp_fyf_202418 小时前
当大语言模型应用到教育领域时会有什么火花出现?
人工智能·语言模型·自然语言处理
AI大模型知识分享1 天前
零基础入门AI:一键本地运行各种开源大语言模型 - Ollama
人工智能·gpt·语言模型·自然语言处理·chatgpt·开源·prompt
没枕头我咋睡觉1 天前
【大语言模型_1】VLLM部署Qwen模型
python·语言模型