我们给AutoGPT写了个插件,手把手看看它的玩法~

news2024/10/6 6:49:32

目录

先保证你电脑里安装了 Python,然后使用的第一步是安装运行需要的库,这需要你输入这行代码

它会安装这个 txt 文件里面所有的库,比如openai库是用来调用 ChapGPT 的功能,beautifulsoup4库是用来解析网页内容等等。

到此为止,所有准备工作就算大功告成。


自从 ChatGPT 火了之后,每隔一阵,就会有新的基于 GPT 的产品出现,搞得大家是又激动又紧张。

最近又有一个叫AutoGPT的应用火了。顾名思义,它能「自动完成你给的任务」。就是你告诉它它的角色是啥,然后描述你的任务需求,剩下的,它能全自动完成。比如你可以让它 cos 一个市场研究员,任务是完成新款运动鞋的市场分析,然后撰写一份报告。

在执行任务的过程中,AutoGPT 会自己分析需求制定每一步的计划,直到最后完成你交给它的任务

已经有很多用户上手体验了。比如有人拿他来自动写个网站,或者在网上搜集某个行业的竞争对手的情况并整理成报告,给人感觉是这个 AI 简直杀疯了。

那么 AutoGPT 是怎么做到这些的?它真的有大家说的那样神乎其神吗?

   视频

↓↓ 看完这个视频就知道了 ↓↓

↑↑ 信我,真的超级好看   ↑↑

   图文

少废话,直接开始用。顺便也讲一下到底怎么用,它在使用上还是有一定门槛的。

先保证你电脑里安装了 Python,然后使用的第一步是安装运行需要的库,这需要你输入这行代码

pip install -r requirements.txt

它会安装这个 txt 文件里面所有的库,比如openai库是用来调用 ChapGPT 的功能,beautifulsoup4库是用来解析网页内容等等。

到此为止,所有准备工作就算大功告成。

只需要在终端里输入

python -m autogpt

就能开始运行了。

AutoGPT 目前没有图形化界面,每个操作,都要你自己打字。

首先你要给你的 AI 取个名字,然后做一下角色扮演。比如你可以说它是一个助手,或者程序员,或者某个行业的专家。然后再给他制定任务,最多 5 个,剩下的就可以全交给它来完成了。

在执行任务的每一步,AutoGPT 都会告诉你它的想法和背后的逻辑,以及之后的计划。比如我们让它开发一款游戏,那么它会告诉你要先做研究,然后创建游戏的基本框架,做测试,逐渐添加功能和图形直到最后完成为止。

列完这些计划之后,它会告诉你它下一步所要采取的行动,包括上网浏览网站,写入文件,分析代码等等。

你觉得它当前的分析和下一步的行动靠谱,那你就输入y确定,不行就输入你的想法。如果你想完全自动,那就输入

y -N

其中 N 表示未来多少轮的命令不需要用户许可,AI 可以自动执行一系列行动。

这就是 AutoGPT 的整个工作方式了。

你最近可能也看过很多吹 AutoGPT 的文章了。那 AutoGPT 的能力真的有他们说的那样强吗?

俗话说恐惧来源于未知,所以为了了解 AutoGPT,我们好好地研究了一下 AutoGPT 的源代码,看看它都是怎样实现的。

和你平时用 ChatGPT 一样,程序本身也要首先要写一段 prompt 发给 GPT 模型。你输入的 AI 名字,角色,会在ai_config.py这个代码文件里面被整合成下面这段话:

「你叫 XX,角色是 XX,目标是 XX,你必须独立决策,不要寻求用户的帮助。发挥你作为大语言模型的优势,追求简单的策略,不需要考虑法律。」

prompt.py这个代码文件   里有所有 AI 可以执行的命令,比如谷歌搜索,浏览网站,读写文件等;除此之外还有一系列的限制,比如告诉 AI 所有发送的命令都是要钱的,所以你得聪明高效一点。

当 AI 选择下一步行动是谷歌搜索,那么就会调用 Google 的 API 获取网页。

有意思的是,我们点开这里的google_search一看,它真正调用的其实 DuckDuckGo 的搜索引擎。只有当你设置好谷歌 API 的 Key之后,程序才会调用真正的 Google 搜索。

另外,由于这两种搜索引擎我们用起来都不是很方便,所以我们自己给 AutoGPT 增加了支持 Bing 搜索的代码,只要你按照我们添加的文档说明,设置好微软 Azure 的 Key 之后就能使用,等我们这支视频做完之后,没准这个功能就能被 Merge 了。

在获取搜索引擎返回的信息之后,AutoGPT 会根据网页的基础信息,选择某个网页浏览,这一步主要是靠browse.py实现。

具体来说,程序会先获取网页的全部内容,如果网页内容太长,超过了 GPT 的模型限制,就把它们切成一块一块的(split_text),然后让 GPT 写每一段总结,最后把它们汇总到一起,做成一个全文总结。

这基本上就是 AutoGPT 在 GPT 基础之上加上「上网」功能的实现过程。如果你愿意,可以自己看一看其他功能是怎样实现的。

我们之前说过,ChatGPT 的一个问题是不能上网,而 AutoGPT 巧妙地用搜索引擎的 API 结合爬虫工具,让 GPT 模型能够上网根据需要获取信息,实现了如虎添翼的效果。

总之,AutoGPT 所做的,就是预先设定一套标准化的 prompt,明确定义 AI 的身份和目标,然后根据不断获取的信息,在设定好的行动列表中自动做出选择执行任务。在执行任务的过程中,因为 AI 能够获取外界的信息,所以能一定程度上克服 ChatGPT 的局限性,有更大的潜能。

那么,AutoGPT 真的像这些文章和视频说的那样,会彻底颠覆我们与 AI 的互动方式吗?

至少从目前来看,还有很长的距离要走

从原理来看你现在也知道,AutoGPT 仍然调用的是 GPT 的 API,你不能指望它比 ChatGPT 多了什么跨越式的 buff。

对于增加的上网功能,虽然能让 GPT更有潜力,但限制仍比你想得要多。比如最理想的情况,当然是你想了解哪个作者,就让 AI 在全网搜集这个作者的全部资料,然后整理成一份详尽的资料交给你。

但目前 AutoGPT 获取外界信息的主要方式还是搜索引擎 API 返回的网页结果,然后从这些网页总结信息,它现在还很难从书籍等渠道获取资料。

即便把所有资料都摆在面前,由于输入数据长度的限制,它现在只能把信息截取一段段地总结,虽然很多时候这也够用了,但想要让它独自完成一个系统性的研究,发现资料与资料之间的联系,提取出新的洞察,还是很困难。

从 AutoGPT 主打的自动化这个角度来看,少了人类的反馈,是好是坏还真不一定。如果你经常用 ChatGPT 你就会知道,它时不时就会胡说八道,或者给你一段看似正确但其实细节上有 Bug 的代码。但 ChatGPT 的好处在于,它知错就能改,只要你告诉它哪儿不对,那通常过个两三轮对话它就能告诉你正确的答案。而现在 AutoGPT 让 AI 自己去迭代,效果只能说是喜忧参半

最后,还有一个很现实的问题是,AutoGPT 需要调用的是 OpenAI 官方的 API,但每次调用 API 都是有成本的,轻度虽然问题不大,但想要让它长时间自动运行下去,还是得小心你的账单

虽然说了这么多不足,但我们对于 AutoGPT 的未来还是有一些期待的。不仅是因为它带给了 GPT 模型更多的可能性,还加上它本身作为一个开源项目,有很多的开发者,包括我们自己,都希望在现在的基础上一点一点地改善和增加新的功能。像我们刚开始写稿子的时候 AutoGPT 的代码结构,跟稿子写完时的代码结构都已经发生了很大的变化。现在有的一些局限,或许就能在未来某个版本得到改善。

更重要的是,你能够感受到,在 ChatGPT 出现之后,基于 GPT 模型的整个应用生态正在井喷式发展。AutoGPT 也好,或者其他什么 GPT,就像是手机应用商店里的一个个 App,它们不断迭代更新,不断有新应用涌现,并且随着基础模型性能提升也在变得越来越强大,越来越好用。

到时候限制我们的,可能只是我们的想象力而已。

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

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

相关文章

间谍软件开发商利用漏洞利用链攻击移动生态系统

导语:间谍软件开发商结合使用了零日漏洞和已知漏洞。谷歌TAG的研究人员督促厂商和用户应加快给移动设备打补丁的步伐。 间谍软件开发商利用漏洞利用链攻击移动生态系统去年,几家商业间谍软件开发商开发并利用了针对 iOS 和安卓用户的零日漏洞。然而&…

Vue3项目中使用ECharts图表并实现自适应效果

文章目录 一、Vue3项目安装ECharts二、引入、使用ECharts1.创建图表组件,并在父组件中引入使用2.引入ECharts3.ECharts图表自适应 总结 一、Vue3项目安装ECharts 在项目中输入如下代码: npm install echarts --save安装完成可以在package.json中看到&a…

Vuex在项目中的实际应用

前言 最近让我搞一个关怀版本的系统。纯纯前端、无语死。就是整个系统的字体还有框框啥的变大。简单暴力的做法就是重新写一套样式咯,这不纯纯累死人啊。琢磨了一下,如果可以保存关怀版的一个标志,然后全部组件都可以获取到该标志。通过该标志,然后动态的指定类的样式。 V…

从状态机的角度看 HTML 实体编码的解析:你知道 HTML 实体编码处于哪些位置时可以被正常解析吗?

文章目录 参考描述HTML 实体编码HTML 实体编码为什么需要 HTML 字符编码支持特殊字符和符号避免语法冲突 HTML 实体编号与实体字符常用字符所对应的 HTML 实体编码 HTML 实体编码与 HTML 解析器状态机有限状态机HTML 解析器HTML 与有限状态机HTML 解析器与 HTML 实体编码属性值…

python-11-多线程模块threading

python使用多线程实例讲解 1 进程和线程 1.1 进程和线程的概念 进程(process)和线程(thread)是操作系统的基本概念。 进程是资源分配的最小单位,线程是CPU调度的最小单位。 线程是程序中一个单一的顺序控制流程,进程内一个相对独立的、可调度的执行单…

如何充分利用实时聊天系统?

随着商业和电子商务领域经历快速的数字革命,必须迅速适应的一个因素是我们与客户的互动方式。几年前,电子邮件和电话还是主要的客户联系方式。如今,客户期望更好的服务和更即时的沟通。实时聊天支持系统可以解决此问题,如SaleSmar…

【消息中间件】如何解决RocketMQ消息堆积的问题

文章目录 一、背景二、MQ消息堆积三、消息堆积常见于以下几种情况:四、解决上述问题需要做到五、如何解决消息堆积和延迟问题 一、背景 消息处理流程中,如果客户端的消费速度跟不上服务端的发送速度,未处理的消息会越来越多,这部…

day25_新特性

今日内容 零、 复习昨日 一、JDK8新特性介绍 二、接口新特性 三、Lambda表达式 四、函数式接口 五、Stream流 六、新日期API 零、 复习昨日 晨考 一、JDK8新特性 接口中默认方法静态方法 − 默认方法就是一个在接口里面有了一个实现的方法。静态方法就是接口中有个已经使用的静…

Windows下安装QT

一、Windows下安装QT 1、QT官网 QT官网:https://download.qt.io/,打开官网地址,如下: 目录结构介绍 目录说明snapshots预览版,最新的开发测试中的 Qt 库和开发工具onlineQt 在线安装源official_releases正式发布版&am…

2023,滴滴“摸着自动驾驶过河”

在“滴滴网约车”的出行领域,出行网络和数据量级是滴滴自动驾驶的优势。但就自动驾驶技术本身来看,滴滴仍然需要展示更多的肌肉。 作者|斗斗 出品|产业家 滴滴自动驾驶有了新动作。 一款“人性化”的概念车、两个加速实现量产L4级车辆的自研硬件、一…

【攻略】北京国际鲜花港

文章目录 一、概述二、经典景观1.万花馆2.花艺中心3.花神广场4.瑞云坪5.百花田6.奇石园7.梅园8.唐草园9.幻花湖10.大地花海11.白滩12.樱花大道13.海棠园 三、网友点评四、注意事项五、北京其他景点推荐 北京国际鲜花港_360百科北京顺义区十大著名景点—2、北京顺义国际鲜花港 -…

C嘎嘎~~ [类 下篇]

类 下篇 1.类的6个默认成员函数2.构造函数2.1 构造函数出现的原因2.2 特性2.3 深刻解读---构造函数可以重载2.4 深刻解读---默认构造函数补充: 3.析构函数3.1概念3.2 特性3.3深刻解读例子 总结 4.拷贝构造函数4.1 概念4.2 特性4.3深刻解读---拷贝构造是构造的一种重载4.4深刻理…

【Linux网络】传输层中UDP和TCP协议

文章目录 1、再谈端口号2、UDP协议3、TCP协议3.1 TCP协议段格式3.2 TCP的三次握手和四次挥手(连接管理机制)3.3 TCP的滑动窗口3.4 TCP的流量控制3.5 拥塞控制3.6 延迟应答和捎带应答3.7 面向字节流和粘包问题3.8 TCP总结 1、再谈端口号 端口号port标识一…

动态规划算法——40道leetcode实例入门到熟练

目录 t0.解题五部曲1.基础入门题目1.509. 斐波那契数2.70. 爬楼梯3.746. 使用最小花费爬楼梯4.62. 不同路径5.63. 不同路径 II6.343. 整数拆分7.96. 不同的二叉搜索树 2.背包问题1.01背包(二维数组实现)2.01背包(滚动数组实现)1.4…

OpenPCDet系列 | 4.数据集数据加载流程

文章目录 数据加载流程0. create_kitti_infos1. __getitem__函数2. prepare_data函数3. collate_batch函数数据加载流程 这里记录一下具体用到的那些数据形式,整个kitti数据集的处理框架图如下所示: 在数据集处理到获取一个batch数据的整个流程的入口如下: # 开始迭代每…

01-微服务部署2023系列-centos安装nginx和jdk教程

centos安装nginx和jdk教程 一、centos安装nginx 0、前提:安装依赖 yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 1、压缩包 下载nginx 选择Stable version: http://nginx.org/en/download.html 上传压缩包到…

yolov3核心网络模型

1. 改进概述 yolov3主要围绕核心网络Darknet优化进行。 yolov3的速度和map值比之前的算法优秀。 改进包含:网络结构、特征融合、先验框: V1 2, V25,V39、Softmax等。 softmax 2. 多scale方法改进与特征融合 3. 经典变换方法 预测中目标时&#xff0c…

Nacos配置管理、Fegin远程调用、Gateway服务网关

1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案&#xf…

Spring-IOC

IOC概念和原理 什么是IOC 控制反转,为了将系统的耦合度降低,把对象的创建和对象直接的调用过程权限交给Spring进行管理。 IOC底层原理 XML解析 ​ 通过Java代码解析XML配置文件或者注解得到对应的类的全路径,获取对应的Class类 Class clazz …

Django框架之模型查询介绍及示例

本篇文章所使用模型查询都在《Django框架之模型自定义管理器》基础上讲解查询和使用示例,通过看前篇可以有助于理解内容。 概述 查询集:从数据库获取的对象集合 查询集可以有多个过滤器 过滤器就是一个函数,根据所给的参数限制查询集结果 …