继Ollama之后,Go在AI领域再下一城

news2024/11/15 23:19:27

AI isn't a thing; it's a magnifier of a thing. And that thing is human creativity.

在AI领域,最火的使用Go开发的项目莫过于Ollama项目了,但近期有一个项目也吸引了Gopher眼球,它就是fabric。叫fabric的项目太多,这个fabric又是一个怎样的项目呢?这里我就为大家简单介绍一下。

danielmiessler/fabric[1]是一个旨在通过AI增强人类能力的开源框架。该项目由Daniel Miessler(号称Founder of Unsupervised Learning)于2024年1月创建,目前在GitHub上已获得20k+的star。最初该项目是用Python实现的,近期,fabric刚刚完成了从Python到Go的迁移。

906a2d4b752ffc4b856a6602863758ba.png

自2023年以来,GenAI的出现带来了大量用于完成任务的AI应用。然而,如何将这些强大的AI功能无缝集成到我们的日常生活中,仍是一个挑战。换句话说。AI目前面临的不是能力问题,而是集成问题。fabric项目正是为了解决这一问题而诞生的,它的目标是让每个人都能精细地将AI应用到日常挑战中。

fabric提供了一系列"模式"(Patterns),这些模式实际上是经过精心设计的AI提示(prompts)。

0ad3f67b9a93ea72cf6d7d0625f9761b.png

通过这些模式,用户可以轻松地将AI应用于各种生活和工作场景,例如:

  • 提取YouTube视频和播客中最有趣的部分

  • 仅凭一个想法就能以自己的风格写出一篇文章

  • 总结晦涩的学术论文

  • 为一段文字创建完美匹配的AI艺术提示

  • 评估内容质量,帮助决定是否值得阅读/观看全文

  • 获取冗长乏味内容的摘要

  • 解释代码

  • 将糟糕的文档转化为可用的文档

  • 从任何内容输入创建社交媒体帖子

  • ... ...

fabric的核心原理是将问题分解成单独的组件,然后逐一应用AI。

fabric项目采用了一种独特的提示方法,称为"Patterns"(模式)。这些模式与常见的AI提示有以下几个关键区别:

  • fabric使用Markdown(通常是一个system.md文件)来构建模式。这样做可以确保最大程度的可读性和可编辑性,并且帮助创建者更容易制作高质量的模式,同时便于其他人深入理解模式的功能,也有利于AI更好地理解和执行指令。

  • 指令清晰且结构化。利用Markdown的结构来强调AI应该执行的操作及其顺序这种方法使得AI能更准确地理解和执行所需任务。

这种结构化又不失灵活的方法允许用户针对各种任务创建精确的AI指令,同时保持了足够的适应性以应对不同的使用场景。

迁移到Go实现后,fabric的安装和使用更加方便了。只要你的系统内安装了Go,就可以通过下面命令安装和设置fabric:

$go install github.com/danielmiessler/fabric@latest
$fabric --setup

注:fabric --setup会用来设置一些大模型的key。

fabric的基本用法也很简单:

  • 查看选项:fabric -h

  • 使用特定模式:pbpaste | fabric --pattern <pattern_name> (该命令含义:读取剪贴板中的内容,然后使用fabric的"summarize"模式对这些内容进行摘要)

  • 流式输出:添加 --stream 选项

  • 使用自定义模型:使用 -m选项指定模型

fabric是开放的,它允许你创建和使用自定义模式,创建自定义模式仅需在~/.config/fabric/patterns/目录下创建对应的xxx.md文件。

Daniel Miessler还提供了一些工具(app)供fabric集成使用,比如yt[2]就是一个可以从油管视频提取脚本的工具,将yt与fabric一起使用,便可以实现对脚本信息中核心要点的提取:

$yt https://www.youtube.com/watch?v=lQVcbY52_gY | fabric --pattern extract_wisdom

综上,我们看到拥有20k star的fabric项目提供了一个灵活而强大的框架,让用户能够轻松地将AI集成到日常工作流程中。无论是使用预设模式还是创建自定义模式,fabric都为AI辅助人类创造力提供了广阔的可能性。


Gopher部落知识星球[3]在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时,我们也会加强代码质量和最佳实践的分享,包括如何编写简洁、可读、可测试的Go代码。此外,我们还会加强星友之间的交流和互动。欢迎大家踊跃提问,分享心得,讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落,享受coding的快乐! 欢迎大家踊跃加入!

f17acc3ac7682e7c3942b375196da892.jpeg585efdef6a20d202ef21b5d825e427fa.png

e84edf22850d7dd6a115371239d366bb.pngd1c915fb708a7a407971d28f8e1d6435.jpeg

著名云主机服务厂商DigitalOcean发布最新的主机计划,入门级Droplet配置升级为:1 core CPU、1G内存、25G高速SSD,价格5$/月。有使用DigitalOcean需求的朋友,可以打开这个链接地址[4]:https://m.do.co/c/bff6eed92687 开启你的DO主机之路。

Gopher Daily(Gopher每日新闻) - https://gopherdaily.tonybai.com

我的联系方式:

  • 微博(暂不可用):https://weibo.com/bigwhite20xx

  • 微博2:https://weibo.com/u/6484441286

  • 博客:tonybai.com

  • github: https://github.com/bigwhite

  • Gopher Daily归档 - https://github.com/bigwhite/gopherdaily

  • Gopher Daily Feed订阅 - https://gopherdaily.tonybai.com/feed

596d6d2ff5d4fcf6b2db0a10fc5c06fd.jpeg

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。

参考资料

[1] 

danielmiessler/fabric: https://github.com/danielmiessler/fabric

[2] 

yt: https://github.com/danielmiessler/yt

[3] 

Gopher部落知识星球: https://public.zsxq.com/groups/51284458844544

[4] 

链接地址: https://m.do.co/c/bff6eed92687

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

keil在debug时,watch窗口中变量不变化的解决方法

在DEBUG时&#xff0c;我们可能遇到自己定义的变量在watch窗口中一直是一个固定值&#xff0c;不会变化&#xff0c;我们只需要在debug时点开view勾选上最后一个选项periodic window update即可

airflow调度时间详解

⭐️ airflow调度概述 Apache Airflow 是一个开源的工作流调度和监控平台&#xff0c;广泛用于数据工程、ETL&#xff08;提取、转换、加载&#xff09;管道以及各种自动化任务。下面我将详细说明 Airflow 的调度算法。 1. DAG&#xff08;有向无环图&#xff09; Airflow 的…

萌拉数据需要下载吗,萌啦数据使用需不需要下载

在数字化浪潮席卷全球的今天&#xff0c;数据成为了驱动企业决策、优化产品服务、精准市场营销的关键要素。而提到数据处理与分析的利器&#xff0c;“萌拉数据”这一名字逐渐在业界崭露头角。面对这样一个功能强大的数据平台&#xff0c;不少用户心中或许会产生疑问&#xff1…

前端:内嵌微信扫码登陆在chrome浏览器失败

前端&#xff1a;内嵌微信二维码登录。 官方文档&#xff1a; 关于微信快速登录功能的说明 | 微信开放文档 按照官方文档书写后&#xff0c;二维码出现在了页面上。但是扫码登录时&#xff0c;浏览器控制台报错 Unsafe JavaScript attempt to initiate navigation for frame w…

无需多部备用机,云手机方便又便宜!

云手机&#xff0c;是云计算技术的又一创新应用&#xff0c;它通过在云服务器上虚拟出带有原生安卓操作系统的手机实例&#xff0c;为用户提供了一种全新的手机使用体验。无需携带多部手机&#xff0c;只需通过云手机&#xff0c;便可轻松实现多账号管理、应用运行及数据存储等…

用这个项目管理工具创建管理表,轻松实现项目管理!

在项目管理中&#xff0c;时间表不仅仅是一个简单的计划工具&#xff0c;而是确保项目按时完成的关键 许多项目经理和团队成员在推进项目时&#xff0c;常常因为缺乏明确的时间表而陷入混乱&#xff0c;导致进度拖延、资源浪费&#xff0c;甚至项目失败。 那么&#xff0c;如何…

无人机遥控器里的接收器工作原理解析!

无人机遥控器中的接收器工作方式主要基于无线信号传输技术 信号发射 遥控器上的发射器将用户的操作指令&#xff08;如推动操纵杆的动作&#xff09;转化为无线电信号。这些信号通过特定的频率&#xff08;如常用的2.4GHz&#xff09;在空气中传输。 信号接收 无人机上的接…

2024.8.23(docker)

一、打包传输 1、打包 [rootdocker ~]# docker save -o centos.tar centos:latest [rootdocker ~]# ls 2、删除镜像 [rootdocker ~]# docker ps -all CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 372f7f49e6df …

固废检测算法实际应用方案固废检测算法源码解析

固废检测算法是利用机器视觉和深度学习技术&#xff0c;对地面上的垃圾进行自动识别、分类和定位的一种算法。这类算法在环境管理、智慧城市、自动化清洁等领域具有广泛的应用前景。以下是对固废检测算法的详细介绍&#xff1a; 一、算法原理 固废检测算法主要基于深度学习和计…

小米14的射频芯片高通SDR753全景图

这周末,除非外面下钞票,否则谁也拦不住我玩《黑神话悟空》(附:两款可以玩转悟空的显卡推荐) 天玑助力联发科力压高通~探秘MTK 5G旗舰智能手机SoC芯片——MT6989(天玑9300) 原创 芯愿景软件 集成电路大数据平台 2024年05月08日 19:18 北京 封装图(正面) 封装图

第21周:中文文本分类-Pytorch实现

目录 前言 一、前期准备 1.1 数据示例 1.2 文本分类的流程图 1.3 导入所需库 1.4 加载数据 二、数据预处理 2.1 构建词典 2.2 生成数据批次和迭代器 三、模型构建 3.1 搭建模型 3.2 初始化模型和超参数定义 3.3 训练函数与评估函数定义 四、训练模型 4.1 拆分数…

整合sentinel遇到的小问题

1.运行jar包 &#xff0c;端口为默认8080 正确命令 java -Dserver.port8090 -Dcsp.sentinel.dashboard.server127.0.0.1:8090 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.6.jar -D这些指令要在 -jar前面 在宝塔部署时&#xff0c;直接复制到运行命令后…

深入探索分布式任务调度框架:MySQL实现高效锁机制

本文主要介绍项目中怎么使用 MySQL 实现分布式锁的 背景 假如我们现在要做一个高性能、可扩展的分布式任务调度框架&#xff0c;要怎么设计呢&#xff1f;下面是我之前自己设计的一个架构图。 为了方便后续的分布式锁的设计&#xff0c;我们大致描述下各个角色都做了哪些事情…

搭建springboot项目,并解决项目出现红色J问题

搭建springboot的2种方式 搭建springboot项目有多种方式&#xff0c;这里简单介绍2种&#xff0c;看您使用哪个更方便。 第一种&#xff1a;在idea里创建 第二种&#xff0c;在官网创建下载 spring官网地址&#xff1a;https://start.spring.io/ 解决项目出现红J问题 搭建好…

【OpenHarmony】openharmony移植到RK3568------获取源码编译OpenHarmony源码

一、源码获取 源码获取有好几种方式&#xff0c;在这里直接在镜像网站下载源码&#xff0c;点击下面连接下载全量版本的OpenHarmony4.1 https://repo.huaweicloud.com/openharmony/os/4.1-Release/code-v4.1-Release.tar.gz 将源码放到自己建立的目录下解压&#xff0c;我放…

[JavaEE] 工作流- Activiti7 框架详解

目录 1、Activiti介绍 1.1、BPMN设计器 1.2、常见流程符号 1.2.1、事件event 1.2.2、活动activiti 1.2.3、流向flow 2、入门案例 2.1、需求说明 2.2、初始环境 2.2.1、添加依赖 2.2.2、添加配置 2.2.3、添加引导类 2.2.4、启动项目 2.2.5、表结构 2.2.6、常见ap…

【解析几何笔记】5.仿射坐标系与二阶行列式

5.仿射坐标系与二阶行列式 5.1 定义 【定义1.2】空间中一点 O O O与三个不共面向量 e 1 , e 2 , e 3 \pmb{e}_{1},\pmb{e}_{2},\pmb{e}_{3} e1​,e2​,e3​一起构成空间的一个仿射标架&#xff0c;记作 [ O ; e 1 , e 2 , e 3 ] [O;\pmb{e}_{1},\pmb{e}_{2},\pmb{e}_{3}] [O;…

Android CCodec Codec2 (三)C2Param - Ⅰ

在Codec2框架中&#xff0c;对组件的配置&#xff08;Setting&#xff09;、微调&#xff08;Tuning&#xff09;以及组件回传的信息&#xff08;Info&#xff09;都是通过参数的形式进行传递的。无论是简单参数&#xff08;只包含一个值&#xff09;还是复杂参数&#xff08;包…

HEIC批量格式转化JPG怎么转?这四种方法很好用

HEIC批量格式转化JPG怎么转&#xff1f;随着智能手机技术的不断发展&#xff0c;HEIC&#xff08;High Efficiency Image Container&#xff09;作为一种高效的图像压缩格式&#xff0c;逐渐被广泛应用于iOS设备中。然而&#xff0c;由于HEIC格式的兼容性问题&#xff0c;许多非…

Echarts 散点图的 tooltip 自定义formatter方法(展示X、Y、value之外的数据)

1.效果展示&#xff0c;如图&#xff0c;tooltip的构成是指标名实际值【目标值】 2.后端的数据结构 3.完整代码&#xff1a;主要就是将需要展示的字段数据拼好放到tooltipInfo里 initLeftEcharts() {const now new Date();const year now.getFullYear();const month …