什么是fabric
fabric作为一个开源框架,旨在通过提供一种工具,增强大模型的应用能力,提高大模型的实用性和易用性,方便使用大模型解决日常问题。通过此工具,可以简单的构建私有大模型应用,沉淀prompt库,高效搭建自由工作流。
特点
- 命令行操作,程序员操作友好
- 采用管道输入,可以与liunx命令结合,提升问题处理效率
- 内置大量模式(prompt),用户自定义模式(prompt)方便
- 支持openai,genmini,ollama等大模型或工具
- 采用go编写,安装方便,无需其他依赖
- 项目地址 : github.com/danielmiess…
设计哲学
类似于代码设计中的单一职责,任务抽象分离。提倡将一个大任务分解成不同的子任务,每次只使用ai解决一个子任务。通过子任务之间的组合,完成最终任务。如下图,将需要的做的事情,拆分成独立的模块。
安装
- 通过go工具安装,此条件需要本地提前安装go
// 通过go install安装
go install github.com/danielmiessler/fabric@latest
-
二进制编译版本安装
访问地址github.com/danielmiess… 按照需要下载对应版本,解压即可使用。
-
源码安装,需本地安装go
// 下载源码
git clone https://github.com/danielmiessler/fabric.git
// 执行go install 安装
go install
安装完毕后执行fabric --setup
,按照提示设置相关配置即可。
使用
参数解释
使用fabric -h
查看参数使用,示例如下:
- pattern: 每个pattern可以理解为一个应用,它是处理工作的最小应用单元。每一个pattern由一个完整的prompt组成,用户可以根据实际需求,自定义pattern,建立流程如下:
- 在配置目录下(一般是用户下的.config/fabric)的patterns目录下创建对应的pattern目录
- 在对应目录下,创建一个system.md文件,然后编写promot即可
- session: 主要用于连续对话使用,同一个session表示相同的对话。
- context: 用于设置一些固定的promot上下文,方便promot复用。
pattern和context默认在用户的目录下的 ./config/fabric下配置,如图
使用样例
- 场景: 使用extract_wisdom模式分析youtube内容
- 依赖:提前安装youtube字幕工具yt (go install github.com/danielmiessler/[yt@latest]) 操作命令如下:
yt -transcript https://www.youtube.com/watch\?v\=wPEyyigh10g | fabric --stream --pattern extract_wisdom
- 用context将输出结果翻译成中文, 使用的context内容如下
操作以及截图如下:
yt -transcript https://www.youtube.com/watch\?v\=wPEyyigh10g | fabric --stream --pattern extract_wisdom --context=CN
- 编写commit
代码变更结果如下:
操作命令以及结果如下:
git diff | fabric -sp create_git_diff_commit
- code review
操作以及截图如下
git diff | fabric -sp code_review
- 使用session进行记忆对话 历史操作结果如下:
继续咨询问题
总结
通过promot + fabric + liunx command模式,提升AI的易用性,提升使用AI处理工作和解决问题的效率
参考: