首页 > 其他分享 >实现定制化 AutoGPT 实战

实现定制化 AutoGPT 实战

时间:2024-08-27 12:25:48浏览次数:3  
标签:实战 文件 AutoGPT 提示 生成 定制 ChatGPT 输入

简介

在前面的学习过程中,已经了解到了 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 的人工智能应用工具。

标签:实战,文件,AutoGPT,提示,生成,定制,ChatGPT,输入
From: https://www.cnblogs.com/hogwarts/p/18382433

相关文章

  • 书生大模型实战营3期 - 进阶岛 - 6 - MindSearch 快速部署
    文章目录闯关任务完成结果闯关任务任务描述:MindSearchCPU-only版部署任务文档:MindSearchCPU-only版部署完成结果按照教程,将MindSearch部署到HuggingFace,并提供截图。新建一个目录用于存放MindSearch的相关代码,并把MindSearch仓库clone下来:mkdir-......
  • 滚雪球学Java(91):Java GUI编程实战:精通组件开发技巧,真有点东西!
      咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及JavaSE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~......
  • Python 3.11 从入门到实战1(环境准备)
            本篇文章是python3.11的学习开篇,我们的目标是:通过这一套资料学习下来,获得python基础学习与实例、实践相结合,使我们完全掌握python。并做到独立完成项目开发的能力。    今天的谈论的比较简单,也是后续学习的基础。python安装和工具pycharm的安装。pyth......
  • Python数据结构实战:列表、字典与集合的高效使用
    在日常的编程工作中,选择合适的数据结构对于提高程序效率至关重要。Python提供了丰富的内置数据结构,其中最常用的就是列表(List)、字典(Dictionary)和集合(Set)。本文将深入探讨这些数据结构,并介绍它们的内部实现以及如何高效地使用它们。1.列表(List)1.1定义与创建列表是......
  • 计算机毕业设计-基于Java+SSM架构的高校毕业生就业管理系统项目开发实战(附源码+论文)
    大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。......
  • java在项目中实现个性化定制的数据可视化图表———静态,动态获取数据
    一、Echarts介绍ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ECharts最初由百度团队开源,并于2018年初捐赠给Apache基金会,成为ASF孵化级项目。2021年1月26日晚,Apache基金会官方宣布ECharts项目正式毕业。1月28日,EChar......
  • 推荐算法实战五-召回(下)
    一、FM的召回功能(一)打压热门物料FM主要应用于U2I召回场景,正样本采用与用户正向交互过的样本。负样本来源于两个途径,一个是随机采样,一个是曝光但未点击的负向物料。由于热门物料曝光率高,因此正负样本中热门物料参与度都不小,为了确保推荐结果的多样性,对正负样本分别采取不同的......
  • 探索 graphrag-local-ollama:项目优势及实战应用
    目录引言一、项目背景与意义二、项目核心特性与优势三、详细的安装与使用步骤1.环境准备2.安装ollama3.下载所需模型4.克隆项目并安装依赖5.数据准备与初始化6.配置与构建索引7.执行查询四、项目的应用场景与未来展望结语引言在当今科技飞速发展的时代,人工......
  • 谷粒商城实战笔记-259-商城业务-消息队列-可靠投递-发送端确认
    文章目录一,确认机制简介二,ConfirmCallback三,returnCallback事务消息的问题一,确认机制简介RabbitMQ的消息确认机制主要包括以下几种:发布者确认(PublisherConfirm):在发布者和代理之间建立一个确认协议。当发布者发送一条消息到代理时,代理会返回一个确认信息给发布者......
  • 谷粒商城实战笔记-260-商城业务-消息队列-可靠投递-消费端确认
    文章目录一,Ack消息确认机制简介1,简介2,两个常用的Api二,消费者端消息确认实战三,RabbitMQ可靠性保障总结1,生产者2,消费者一,Ack消息确认机制简介消费者端的确认机制(ACK/NACK)是RabbitMQ中一种重要的特性,它允许消费者告知Broker它们是否成功处理了接收到的......