人工智能
Auto-GPT & GPT-Engineer:对当今领先的AI代理的深入指南

当比较ChatGPT与Auto-GPT和GPT-Engineer等自主AI代理时,决策过程中出现了显著的差异。虽然ChatGPT需要人工干预来驱动对话,根据用户提示提供指导,但规划过程主要依赖于人工干预。
生成式AI模型,如变换器,是这些自主AI代理背后的最新技术。这些变换器是在大型数据集上训练的,使它们能够模拟复杂的推理和决策能力。
自主代理的开源根源:Auto-GPT和GPT-Engineer
许多这些自主AI代理源自由创新个人领导的开源计划,它们改变了传统的工作流程。与只是提供建议不同,像Auto-GPT这样的代理可以独立处理任务,从在线购物到构建基本应用程序。OpenAI的代码解释器旨在将ChatGPT从仅建议想法升级为积极解决问题的工具。
Auto-GPT和GPT-Engineer都具备GPT 3.5和GPT-4的能力。它们理解代码逻辑,合并多个文件,并加速开发过程。
Auto-GPT的核心功能在于其AI代理。这些代理被编程为执行特定的任务,从日常任务如安排会议到需要战略决策的复杂任务。然而,这些AI代理在用户设定的边界内运行。通过控制API访问,用户可以确定AI可以执行的操作的深度和范围。
例如,如果任务是创建一个集成ChatGPT的聊天网页应用,Auto-GPT会自主地将目标分解为可执行的步骤,例如创建HTML前端或编写Python后端。虽然应用程序自主生成这些提示,但用户仍然可以监视和修改它们。正如AutoGPT的创造者@SigGravitas所示,它能够根据Python构建和执行一个测试程序。
https://twitter.com/SigGravitas/status/1642181498278408193
虽然下面的图表描述了一个更一般的自主AI代理的架构,但它对幕后过程提供了有价值的见解。
该过程从验证OpenAI API密钥和初始化各种参数(包括短期内存和数据库内容)开始。一旦将关键数据传递给代理,模型就会与GPT3.5/GPT4交互以检索响应。然后将此响应转换为JSON格式,代理解释它以执行各种函数,例如进行在线搜索,读取或写入文件,甚至运行代码。Auto-GPT使用预训练模型将这些响应存储在数据库中,未来交互使用此存储信息作为参考。循环继续直到任务被认为是完成的。
Auto-GPT和GPT-Engineer的设置指南
设置像GPT-Engineer和Auto-GPT这样的尖端工具可以简化您的开发过程。以下是结构化指南,帮助您安装和配置这两个工具。
Auto-GPT
1. 先决条件:
- Python环境:确保您已安装Python 3.8或更高版本。您可以从官方网站获取Python。
- 如果您计划克隆存储库,请安装Git。
- OpenAI API密钥:与OpenAI交互需要API密钥。从您的OpenAI帐户获取密钥
内存后端选项:内存后端作为AutoGPT访问其操作所需数据的存储机制。AutoGPT使用短期和长期存储能力。 Pinecone、Milvus、Redis等都是可用的选项。
2. 设置工作空间:
- 创建虚拟环境:
python3 -m venv myenv - 激活环境:
- MacOS或Linux:
source myenv/bin/activate
- MacOS或Linux:
3. 安装:
- 克隆Auto-GPT存储库(确保您已安装Git):
git clone https://github.com/Significant-Gravitas/Auto-GPT.git - 要使用Auto-GPT的0.2.2版本,您需要检查出该特定版本:
git checkout stable-0.2.2 - 导航到下载的存储库:
cd Auto-GPT - 安装所需的依赖项:
pip install -r requirements.txt
4. 配置:
- 在主
/Auto-GPT目录中找到.env.template。复制并将其重命名为.env - 打开
.env并在OPENAI_API_KEY=旁边设置您的OpenAI API密钥 - 同样,要使用Pinecone或其他内存后端,请更新
.env文件中的Pinecone API密钥和区域。
5. 命令行指令:
Auto-GPT提供了一组丰富的命令行参数来自定义其行为:
- 一般用法:
- 显示帮助:
python -m autogpt --help - 调整AI设置:
python -m autogpt --ai-settings <filename> - 指定内存后端:
python -m autogpt --use-memory <memory-backend>
- 显示帮助:
6. 启动Auto-GPT:
一旦配置完成,使用以下命令启动Auto-GPT:
- Linux或Mac:
./run.sh start - Windows:
.\run.bat
Docker集成(推荐的设置方法)
对于那些想要将Auto-GPT容器化的人来说,Docker提供了一种简化的方法。然而,请注意Docker的初始设置可能有点复杂。请参考Docker的安装指南以获取帮助。
按照以下步骤修改OpenAI API密钥。确保Docker在后台运行。现在转到AutoGPT的主目录,并在终端上执行以下步骤
- 构建Docker镜像:
docker build -t autogpt . - 现在运行:
docker run -it --env-file=./.env -v$PWD/auto_gpt_workspace:/app/auto_gpt_workspace autogpt
使用docker-compose:
- 运行:
docker-compose run --build --rm auto-gpt - 对于额外的自定义,您可以集成其他参数。例如,要运行–gpt3only和–continuous:
docker-compose run --rm auto-gpt --gpt3only--continuous - 鉴于Auto-GPT从大型数据集中生成内容的广泛自主性,因此存在它无意中访问恶意Web源的潜在风险。
为了减轻这些风险,请在虚拟容器中运行Auto-GPT,例如Docker。这确保任何潜在的有害内容都保持在虚拟空间内,而您的外部文件和系统保持不受影响。或者,Windows沙盒也是一个选项,尽管它会在每个会话后重置并且无法保留其状态。
为了安全,请始终在虚拟环境中运行Auto-GPT,以确保您的系统免受意外输出的影响。
鉴于所有这些,仍然有可能您无法获得所需的结果。Auto-GPT用户报告了反复出现的问题,当他们尝试写入文件时,经常会遇到由于问题文件名而导致的失败尝试。以下是此类错误之一:Auto-GPT(版本0.2.2)不追加文本,错误“write_to_file返回:错误:文件已更新
解决这些问题的各种解决方案已在相关的GitHub线程中进行了讨论。
GPT-Engineer
GPT-Engineer工作流程:
- 提示定义:使用自然语言编写项目的详细描述。
- 代码生成:根据您的提示,GPT-Engineer开始工作,生成代码片段、函数,甚至整个应用程序。
- 改进和优化:生成后,总是有改进的余地。开发人员可以修改生成的代码以满足特定的要求,确保最高质量。
设置GPT-Engineer的过程已被浓缩成一个易于遵循的指南。以下是分步骤的分解:
1. 准备环境:在开始之前,请确保您已准备好项目目录。打开终端并运行以下命令
- 创建一个名为“网站”的新目录:
mkdir website- 转到目录:
cd website
2. 克隆存储库:git clone https://github.com/AntonOsika/gpt-engineer.git .
3. 导航和安装依赖项:克隆后,切换到目录cd gpt-engineer,并安装所有必要的依赖项make install
4. 激活虚拟环境:根据您的操作系统,激活创建的虚拟环境。
- 对于macOS/Linux:
source venv/bin/activate
- 对于Windows,由于API密钥设置,它略有不同:
set OPENAI_API_KEY=[your api key]
5. 配置 – API密钥设置:要与OpenAI交互,您需要API密钥。如果您还没有,请在OpenAI平台上注册,然后:
- 对于macOS/Linux:
export OPENAI_API_KEY=[your api key]
- 对于Windows(如前所述):
set OPENAI_API_KEY=[your api key]
6. 项目初始化和代码生成:GPT-Engineer的魔力从projects文件夹中的main_prompt文件开始。
- 如果您想启动一个新项目:
cp -r projects/example/ projects/website
这里,请用您的项目名称替换“网站”。
- 使用您选择的文本编辑器编辑
main_prompt文件,撰写您的项目要求。
- 一旦您对提示感到满意,请运行:
gpt-engineer projects/website
您的生成代码将驻留在项目文件夹内的workspace目录中。
7. 生成后:虽然GPT-Engineer很强大,但它可能并不完美。检查生成的代码,如果需要,请进行手动更改,并确保一切运行顺畅。
示例运行
提示:
“我想使用Python开发一个基本的Streamlit应用程序,通过交互式图表可视化用户数据。该应用程序应允许用户上传CSV文件,选择图表类型(例如,条形,饼图,线图),并动态可视化数据。它可以使用Pandas进行数据操作和Plotly进行可视化。”
</



