实现定制化 AutoGPT 实战

news/2024/11/17 0:38:32/文章来源:https://www.cnblogs.com/hogwarts/p/18382433

简介

在前面的学习过程中,已经了解到了 AutoGPT 基本的环境安装操作。接下来就可以基于 AutoGPT 完成一些有趣的任务。通过 AutoGPT 实现我们的需求

环境准备

在正式使用 AutoGPT 之前,确认以下环境没有任何问题:

  1. 稳定的上网环境。
  2. 配置好的 AutoGPT 环境。
  3. 可以使用的 token。

如果还没有配置好环境,请参考章节 AutoGPT 理念与应用 优先完成环境配置。

实践演练

接下来需要使用 AutoGPT 实现几个 ChatGPT 无法实现的需求:

  1. 生成一个文件。
  2. 连接外网,查询信息,并生成 Excel 结果。

注意事项

  1. 提示词要明确一些,并且在过程中,需要不停的确认 Command 是否正确。
  2. 注意避免让 AutoGPT 陷入死循环中。

生成文件

使用过 ChatGPT 的同学应该都知道 ChatGPT 只能生成文本类结果,是无法直接生成文件的。接下来就使用 AutoGPT 进行写入文件操作:

  1. 进入项目,启动虚拟环境:source venvAutoGPT/bin/activate

  2. 执行启动命令:./run.sh

  3. 此时 AutoGPT 提示我们输入信息,输入提示词:生成一个 txt 文件,内容为 霍格沃兹测试开发学社。

  4. 接下来 AutoGPT 会有一个思考的过程,并会将思考过程展示在终端中,提示要进行的下一步操作:

  1. 当发现 AutoGPT 提示以下信息时,代表我们需要进行选择:
#  输入“y”授权命令,“y -N”运行 N 个连续命令,“n”退出程序,或输入 FileCreatorGPT 的反馈...Enter 'y' to authorise command, 'y -N' to run N continuous commands, 'n' to exit program, or enter feedback for FileCreatorGPT...
  1. 如果确定执行 AutoGPT 所提示的命令,输入: y 即可。

  2. 点击y 之后,其实从日志也开始看到对应的提示信息:

  1. 接下来就可以终止任务,去本地的auto_gpt_workspace目录中看到对应的文件信息。

  2. 打开该文件,发现写入的内容满足需求。

查询信息,并生成文件

在成功实现生成文件之后,可以实现更进一步的难度。ChatGPT 还具备的一个缺点就是无法连接外网,而 AutoGPT 也补全了这一能力。接下来就使用 AutoGPT 进行数据查询以及生成文件操作。其实整体的流程和上面的生成文件的信息差不多,只是需要修改一下提示词信息。

  1. 进入项目,启动虚拟环境:source venvAutoGPT/bin/activate
  2. 执行启动命令:./run.sh
  3. 此时 AutoGPT 提示我们输入信息,输入提示词:查找 2023 年 9 月 6 日深圳的天气情况,生成一个 shenzhen.txt 文件,将天气结果写入其中。
  4. 根据返回信息,选择对应的命令。最后可以看一下结果,成功生成一个 shenzhen.txt 文件,并且有天气的数据写入。

其他复杂场景

在使用 AutoGPT 的过程中,AutoGPT 可能会给相关的提示信息,主要包含以下几个字段:

字段名称 作用
ai_goals 表示用户想要完成的目标,最多可以配置 5 个,也可以少于 5 个。
ai_name 本次服务的名称,可以理解为实现你目标的程序是一个机器人,ai_name 就是你给机器人取的名字。
ai_role 主要是为了辅助完成用户目标,对机器人的角色设定,更好的完成用户的任务。
api_budget 是调用 openai 服务接口的预算,单位是美元。

所以需要根据使用的情况,输入适合自己的选项。

AutoGPT Command 原理

其实 AutoGPT 中提示的 Command 其实只是一种由人类编写的程序函数,但它是提供给 GPT 调用的。比如谷歌搜索命令、文件操作命令、python 执行命令等。这一点,从它的底层源码也不难发现。有了这些内容,GPT 就知道它可以如何调用这些人类编写的函数,从而“获得”了网络访问能力和计算能力。

在这里插入图片描述

但是其实 AutoGPT 在火爆过一阵之后,人们,尤其是开发者,也发现其问题所在比如:

  1. 它可能会卡住,或者在一个已经有解任务中不停循环求解。
  2. 花费超出预期的 token 使用量。

越为复杂的场景, AutoGPT 处理起来可能愈发困难。但是 Auto-GPT 的底层原理并不复杂,它是依靠 prompt 实现的。如果作为一个比较有开发功底的人,如果我们想自己定制类似 AutoGPT 的效果,其实是比较容易的。

后面会基于 LangChain 的封装打造一个类似于 AutoGPT 的人工智能应用工具。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

osg与IFC(BIM)

IFC(BIM) BIM管理中使用的模型格式:IFC IFC简介 IFC模型体系结构由四个层次构成, 从下到上依次是 资源层(Resource Layer)、核心层(Core Layer)、交互层(Interoperability Layer)、领域层(Domain Layer)。 每层中都包含一系列的信息描述模块,并且遵守一个规则:每个层次只能…

面试官:Leader崩溃Follower不够新怎么办?

这是一道非常经典的 Kafka 问题,是关于 Leader 在“异常”情况下的选举问题。 背景 我们知道 Kafka 中的 Partition(分区)是存储消息的最终介质,但 Partition 又有两种分类:Leader Partition:主分区,负责数据写入和读取。 Follower Partition:副本分区,用于数据备份和…

线性规划单纯形求解理论

线性规划(Linear Programming, LP)是优化理论中用于在给定约束条件下最大化或最小化线性目标函数的一种数学方法。线性规划的最优解总是出现在可行域的顶点上,这是因为目标函数在可行域内的变化是线性的,因此在顶点处函数的值可能达到极值(最大或最小)。求解线性规划问题…

如何考取PostgreSQL认证证书?

PostgreSQL数据库炙手可热,国内知名的腾讯云TDSQL、阿里云PolarDB都有PostgreSQL版本的产品,还有人大金仓、华为opengauss、翰高数据库等都跟PostgreSQL有关系,所以考一个PostgreSQL认证非常有必要。要获得PostgreSQL认证,可以从以下几个方面着手: 一、了解PostgreSQL认证…

AI agent里的长期记忆和短期记忆

AI Agent 是时下热门的一个方向,在 OpenAI 应用研究主管 LilianWeng 写的万字长文中[1],她提出 Agent = LLM+ 记忆 + 规划技能 + 工具使用。图1 Overview of a LLM-powered autonomous agent system组件二:记忆我们可以将上下文学习(context)看成是利用模型的短期记忆(也…

Yolov5模型训练+转ncnn模型

配置YOLOv5依赖 打开yolov5开源地址:https://github.com/ultralytics/yolov5 可根据自身要求下载对应版本(无要求可跳过): 下载:下载完成安装依赖包: 如需使用显卡进行训练需按照显卡版本安装部分依赖包:这两个包注掉,然后根据显卡版本安装依赖 在cmd获取显卡版本:nvi…

windows更新在哪里删除,教你关闭windows更新

电脑自动更新的彻底关闭方法可以根据不同的Windows系统版本(如Windows 10、Windows 11等)和用户的具体需求来选择。以下是一些常用的方法: 一、 使用系统设置关闭自动更新 步骤: 1.点击开始菜单,在搜索栏中输入“设置”,并打开设置窗口。 2.在设置窗口中,找到“更新和安…

k8s给多个外部静态IP作负载均衡、反向代理

在 Kubernetes (K8s) 中,Ingress、Endpoints 和 Service 是三个重要的概念,它们协作实现了集群内部和外部应用程序的访问和服务发现。 Ingress:Ingress 用于提供集群外部到集群内部服务的 HTTP/HTTPS 路由。 Ingress 定义了访问集群内部服务的规则,如路径映射、虚拟主机等。 In…

nuxt3项目自定义环境变量,typescript全局提示

最近使用nuxt3框架来写项目,其中有一点就是 typescript 语法提示让人闹心,使用 vscode 编辑器,如果有语法提示进行编码,工作效率可以提升一个档次。本篇文章说的就是如何在 vscode 中使用 nuxt3 框架,自定义环境变量,支持 typescript 语法提示。列出当前使用的环境版本no…

STM32与Linux串口双向通信

STM32 与 linux 双向串口通信实验本文记录STM32 与 linux 双向串口通信,包含stm32发送、Linux阻塞式接收;Linux发送,STM32阻塞式接收;本实验的目的在于调通数据链路,为之后使用奠定基础。 实验平台为:STM32方面用的是STM32H723ZGT6为核心的开发板;开发环境为 VSCode + AC…

Java基础-学习笔记14

Collection、Map 类实现14 集合 Collection、Map 第一部分 Collection的框架体系 1) 可以动态保存任意多个对象,使用比较方便 2) 提供了一系列方便的操作对象的方法:add、remove、set、get等 3) 使用集合添加、删除新元素简单便捷。 集合 Collection 主要是两组:单列集合…

Apache SeaTunnel技术架构演进及其在AI领域的应用

随着数据集成需求的增长,Apache SeaTunnel作为新一代的数据同步引擎,不仅在技术架构上不断演进,也在AI领域展现出其独特的应用价值。在CommunityOverCode Asia 2024大会上,Apache SeaTunnel PMC Chair 高俊 深入探讨SeaTunnel的技术演进路径,分析其在AI领域的应用案例,并…