Auto-GPT可以说是目前AI应用方向最火爆的项目了,自从3月份上线以来,一个月疯狂拦下将近7万star(截至本文写稿时69.5k)。它的目的是探索诸如GPT-4这样的大语言模型自主完成任务的能力。业界也有一些大佬出来表示这个项目真的很有趣。
这么疯狂的实验,咱也不能闲着……于是花了一个下午搭建了一下运行环境,记录一下中间踩过的坑。文章先介绍一下安装流程,再简单说一下使用体验。
项目地址:https://github.com/Significant-Gravitas/Auto-GPT
安装流程
0. 注意事项
- 目前暂时没有使用elevenlabs提供的语音输入,未来会继续尝试+更新;
- 目前暂时没有使用pinecone database(因为要排队),等排到了会尝试并在这里更新;
- 版本:0.2.0
1. 系统
带terminal的操作系统即可。推荐使用带有X display的系统,安装起来更方便。云端VM要装很多东西,debug的流程很长。Mac、Windows都可以。
笔者恰好发现Google Compute Engine目前正在beta测试c3类型的VM,一个月只要1刀,等于是白嫖了,所以设置了一个VM,也正好可以踩一遍所有的坑。
2. 安装过程
2.1 clone项目
https://github.com/Significant-Gravitas/Auto-GPT.git
cd Auto-GPT
2.2 准备OpenAI API key
去到https://platform.openai.com/account/api-keys,生成一个新的API key。记得复制到记事本里,因为关闭了页面就看不到了。
同时,需要开启账户的付款机制。去到billing菜单,然后点击“set up paid account”,然后输入付款的银行卡信息。
2.3 设置python环境
笔者直接采用miniconda创建了运行环境,免得扰乱系统环境。miniconda的安装包可以去其官网下载,在这里就不赘述了。建议采用python 3.10,因为issues里面有人提及3.8以下的版本会出错。
conda create -n autoGPT python=3.10
执行完之后开始安装auto-GPT的依赖库:
conda activate autoGPT
pip install -r requirements.txt
2.4 设置运行时配置
将名字为.env.template
的文件重命名为.env
,然后执行以下动作:
- 把刚才保存下来的OpenAI api key粘贴到
OPENAI_API_KEY
项中; - 设置
EXECUTE_LOCAL_COMMANDS=True
。这个是为了让程序运行时能够执行一些本地操作,比如写入文件等。如果不希望程序执行,可以保留False。
设置完之后的.env文件大致长这样:
到这里,安装过程就结束了,可以开始运行:
python -m autogpt
然后按照terminal里面的输出一步步执行即可。Auto-GPT是基于多轮会话的,也就是说给定一个目标,AI通过调用chatGPT api自我生成一连串问题、问题答案和执行方案。下图为笔者运行的一轮输出:
3. 安装时遇到的问题
3.1 Chromedriver 无法启动
因为使用的是cloud VM,很多系统库都没有,所以程序在执行COMMAND=browse_website
的时候首先遇到了chromedriver无法链接到两个库:libnss3.so和libxcb.so.1。通过以下指令解决:
sudo apt-get install libnss3 libnss3-dev
sudo apt-get install libxcb1-dev
3.2 找不到chrome binary
chromedriver
当程序运行的时候,如果没有找到,是会给系统自动安装的,但chrome浏览器则不会安装(应该仅发生在VM上,因为如果是桌面系统那多半都安装了chrome浏览器)。
安装chrome浏览器:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
默认的可执行路径为/usr/bin/google-chrome
(Linux系统)。
除此之外,因为没有X display,chrome直接执行会crash。需要定位到项目中名为web.py
文件,增加两个启动chrome时候的选项:
这样,程序就能够无障碍地浏览网络、执行搜索了。
4. 初步使用体验
很有意思的项目,个人认为是下一步AI应用值得发展的一个方向。不过在使用过程中,发现目标不能定得太大,比如“挣它一个亿”这样的目标,AI执行起来就比较困难(尤其是在没有pinecone db的支持下,长期记忆显得不那么稳定),需要通过更多轮的对话才有可能得出一个相对可行的解决方案。
当然,笔者也只是粗粗试了一下,很多体验都比较浅,暂时不能给出全面的感受。后续会继续在这里更新一下语音和pinecone加持后的使用体验,尝试不一样的使用目标等。会及时更新。
2023年04月15日