简介
在前面的学习过程中,已经了解到了 AutoGPT 基本的环境安装操作。接下来就可以基于 AutoGPT 完成一些有趣的任务。通过 AutoGPT 实现我们的需求
环境准备
在正式使用 AutoGPT 之前,确认以下环境没有任何问题:
- 稳定的上网环境。
- 配置好的 AutoGPT 环境。
- 可以使用的 token。
如果还没有配置好环境,请参考章节 AutoGPT 理念与应用 优先完成环境配置。
实践演练
接下来需要使用 AutoGPT 实现几个 ChatGPT 无法实现的需求:
- 生成一个文件。
- 连接外网,查询信息,并生成 Excel 结果。
注意事项
- 提示词要明确一些,并且在过程中,需要不停的确认 Command 是否正确。
- 注意避免让 AutoGPT 陷入死循环中。
生成文件
使用过 ChatGPT 的同学应该都知道 ChatGPT 只能生成文本类结果,是无法直接生成文件的。接下来就使用 AutoGPT 进行写入文件操作:
- 进入项目,启动虚拟环境:source venvAutoGPT/bin/activate
- 执行启动命令:./run.sh
- 此时 AutoGPT 提示我们输入信息,输入提示词:生成一个 txt 文件,内容为 霍格沃兹测试开发学社。
接下来 AutoGPT 会有一个思考的过程,并会将思考过程展示在终端中,提示要进行的下一步操作:
- 当发现 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...
- 如果确定执行 AutoGPT 所提示的命令,输入: y 即可。
点击y 之后,其实从日志也开始看到对应的提示信息:
- 接下来就可以终止任务,去本地的auto_gpt_workspace目录中看到对应的文件信息。
打开该文件,发现写入的内容满足需求。
查询信息,并生成文件
在成功实现生成文件之后,可以实现更进一步的难度。ChatGPT 还具备的一个缺点就是无法连接外网,而 AutoGPT 也补全了这一能力。接下来就使用 AutoGPT 进行数据查询以及生成文件操作。其实整体的流程和上面的生成文件的信息差不多,只是需要修改一下提示词信息。
- 进入项目,启动虚拟环境:source venvAutoGPT/bin/activate
- 执行启动命令:./run.sh
- 此时 AutoGPT 提示我们输入信息,输入提示词:查找 2023 年 9 月 6 日深圳的天气情况,生成一个 shenzhen.txt 文件,将天气结果写入其中。
- 根据返回信息,选择对应的命令。最后可以看一下结果,成功生成一个 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 在火爆过一阵之后,人们,尤其是开发者,也发现其问题所在比如:
- 它可能会卡住,或者在一个已经有解任务中不停循环求解。
- 花费超出预期的 token 使用量。
越为复杂的场景, AutoGPT 处理起来可能愈发困难。但是 Auto-GPT 的底层原理并不复杂,它是依靠 prompt 实现的。如果作为一个比较有开发功底的人,如果我们想自己定制类似 AutoGPT 的效果,其实是比较容易的。
后面会基于 LangChain 的封装打造一个类似于 AutoGPT 的人工智能应用工具。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。