草庐IT

在Github中77k星的王炸AutoGPT,会独立思考,直接释放双手

Bioinfo Guy 2023-10-25 原文

文章目录

1 前言

迄今为止,Github已经7.7万stars了,项目真的顶

GitHub 地址:https://github.com/torantulino/auto-gpt

这里提前下载好了,如果登不上Github或者下载失败的可以在后台回复autogpt领取v0.2.1的源码压缩包

1.1 什么是AutoGPT

十分重磅!GPT3.5都还没玩明白,傍着GPT4的AutoGPT就又要乱杀了,特斯拉前 AI 总监、刚刚回归 OpenAI 的 Andrej Karpathy也提到**“AutoGPT”将成为提示工程的下一个前沿**,网上很多人只提突破性,不提局限性,twitter的原话是prompt engineering领域,因此其他领域还是坐观新测

Auto-GPT 是一个实验性的开源 Python 应用程序,它使用GPT-4自主运行。听名字也知道,auto,自主人工智能,这意味着 Auto-GPT 可以在几乎没有人为干预的情况下执行任务,并且可以自我提示。一言以蔽之,AutoGPT可以实现:分配一个任务,它能自行生成一个结果及任务的每一个提示,其实这类的AI还有AgentGPT、BabyAGI,但,真不够AutoGPT火,其也有火的道理

1.2 为什么是AutoGPT

Auto-GPT 可以将 AI 的行为分解为“思想”、“推理”和“批评”,这展示了 GPT 令人印象深刻的文本生成能力。此功能使用户能够准确了解 AI 在做什么以及为什么这样做。简单说是,**有一个人能帮你完成任务,还会告诉你怎么做。**例如,就 Chef-GPT 而言,AI 的第一个“想法”是“搜索即将发生的事件以找到合适的事件来创建独特的食谱”。这一行动背后的“原因”是“找到即将发生的事件将帮助我想出一个相关且令人兴奋的食谱。”

Auto-GPT 的“批评”分析了对其行为的潜在约束或限制,进一步展示了其在实现用户设定的目标的同时自主运行的能力。此外,Auto-GPT 具有长期和短期记忆功能,以及通过 ElevenLabs 进行的文本转语音功能。这些功能的融合使 Auto-GPT 更像人,增强了它与人互动的能力。

有人会问ChatGPTAuto-GPT区别,哪个更好?

都好,且不同一个纬度,无法平行比较。首先知道一下人工智能AI通用人工智能AGI的区别:人工智能 (AI) 是一个广义术语,指的是能够执行需要人类智能才能完成的任务的计算机系统。然而,通用人工智能 (AGI) 指的是可以像人类一样使用自己的过程、推理和智力执行任务的人工智能。

尽管 ChatGPT 是一个非常有能力的聊天机器人,但它仍然只是一个聊天机器人。作为聊天机器人,它仅限于仅对通过提示立即询问的内容做出回应。因此,它可以完成惊人的事情,但只有通过人类的指导。 Auto-GPT 的能力远不止于此,可以要求它完成一项一无所知的任务,然后看着它完成所有工作。即:ChatGPT需要人去引导他,得到自己想要的东西;AutoGPT是给他指令,他自己去思考,自己去想办法完成结果交付。这可以很明显看出后者的特色Auto,更自主化。

2 AutoGPT部分实例

2.1 类似一个Workflow

生成一个 GPT-4 代理来完成添加到待办事项列表中的任何任务

视频链接:https://twitter.com/i/status/1645918390413066240

2.2 市场调研

运营一个 AI 代理,负责进行产品研究并撰写有关最佳耳机的摘要

第二个视频是关于博客研究的,此外Nathan Lands还展示了用于销售勘探的 BabyAGI

视频1链接:https://twitter.com/i/status/1646095934177124353
视频2链接:https://twitter.com/i/status/1645898646762782735

2.3 自己写播客

自行阅读近期发生的事件自行总结并且撰写播客内容

视频链接:https://twitter.com/i/status/1645898646762782735

2.4 接入客服

AutoGPT可以不需要使用者一直输入指令,直接化身24h全天候智能客服,通达全语种,理解客户查询,提供支持,甚至建议追加销售

推文链接:https://twitter.com/gregisenberg/status/1645817335024869376?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1645817335024869376%7Ctwgr%5E1bcdfa0f1f346feb279a7821bda593c41ddc14de%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fautogpt.net%2Famazing-use-cases-for-auto-gpt-on-twitter%2F

3 安装和使用AutoGPT

安装要求

  • Python 3.8 或更高版本
  • OpenAI API 密钥
  • Pinecone API 密钥
  • ElevenLabs Key(这个是可以转换成语音,非必要要求)

3.1 安装

确保满足安装要求,记得下载git工具,然后在bash或者cmd或者turminal克隆库:

git clone https://github.com/Torantulino/Auto-GPT.git

进入库

cd Auto-GPT

安装依赖项

pip install -r requirements.txt

重命名.env.template.env 并填写 OPENAI_API_KEY. 如果打算使用语音模式,也需要填写 ELEVEN_LABS_API_KEY

  • OpenAI API 密钥:https: //platform.openai.com/account/api-keys
  • ElevenLabs API 密钥(在个人资料——xi-api-key):https://elevenlabs.io

这样就可以了,如果需要在Azure实例上使用 GPT,请设置USE_AZURETrue然后:

  • 重命名azure.yaml.template为 并提供部分 中相关模型的azure.yaml相关 azure_api_base和 所有部署 ID : azure_api_versionazure_model_map
    • fast_llm_model_deployment_id:gpt-3.5-turbo 或 gpt-4 部署 ID
    • smart_llm_model_deployment_id:gpt-4 部署 ID
    • embedding_model_deployment_id:text-embedding-ada-002 v2 部署 ID
  • 将所有这些值指定为双引号字符串
# Replace string in angled brackets (<>) to your own ID
azure_model_map:
  fast_llm_model_deployment_id: "<my-fast-llm-deployment-id>"
  ...

3.2 基础用法

  1. 在目录运行py文件
python scripts/main.py

# 授权单个命令,输入y
# 授权一系列N个连续命令,输入y -N
# 退出程序,进入n

也可以在 AUTO-GPT 的每个动作之后,键入“NEXT COMMAND”以授权它们继续。

要退出程序,请键入“exit”并按 Enter。

  1. 可以在文件夹中找到活动和错误日志./output/logs,输出调试日志:
python scripts/main.py --debug
  1. 语音模式:
python scripts/main.py --speak

#目前已有的11个lab id
Rachel : 21m00Tcm4TlvDq8ikWAM
Domi : AZnzlk1XvdvUeBnXmlld
Bella : EXAVITQu4vr4xnSDxMaL
Antoni : ErXwobaYiN019PkySvjV
Elli : MF3mGyEYCl7XYWbV9V6O
Josh : TxGEqnHWrfWFTfGW9XjX
Arnold : VR6AewLTigWG4xSOukaG
Adam : pNInz6obpgDQGcFmaJgB
Sam : yoZ06aMxZJJ28mfd3POQ
  1. docker:
# 调用和运行
docker build -t autogpt .
docker run -it --env-file=./.env -v $PWD/auto_gpt_workspace:/app/auto_gpt_workspace autogpt

# 或者
docker-compose run --build --rm auto-gpt

# 其他参数
docker run -it --env-file=./.env -v $PWD/auto_gpt_workspace:/app/auto_gpt_workspace autogpt --gpt3only --continuous
docker-compose run --build --rm auto-gpt --gpt3only --continuous
  1. 命令行常用命令:
# 查看所有可行参数
python -m autogpt --help

# 用其他ai设置文件运行
python -m autogpt --ai-settings <filename>

# 指定内存后端
python -m autogpt --use-memory  <memory-backend>
  1. 内存后端设置
    启动redis的docker
docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest

然后配置.env

MEMORY_BACKEND=redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=<PASSWORD>
  1. 设置缓存类型
    默认情况下,Auto-GPT 将使用 LocalCache 而不是 redis 或 Pinecone。

若要切换到任一值,请将 env 变量更改为所需的值:MEMORY_BACKEND

local(默认值)使用本地 JSON 缓存文件
pinecone使用在 ENV 设置中配置的 Pinecone.io 帐户
redis将使用配置的 Redis 缓存
milvus将使用配置的 milvus 缓存
weaviate将使用配置的编织缓存
  1. 连续模式

无需用户授权即可运行AI,100%自动化。 不建议使用连续模式。 这是潜在的危险,可能会导致你的 AI 永远运行或执行您通常不会授权的操作。 使用风险自负

python -m autogpt --speak --continuous

Ctrl + C退出程序

  1. 设置GPT-3.5

如果用不了GPT4可以改成3.5

python -m autogpt --speak --gpt3only

3.3 配置OpenAI的API

大家最熟悉了,https://platform.openai.com/account/api-keys

3.4 配置谷歌API

在谷歌云控制台https://console.cloud.google.com/,在左栏中找到API,新建一个项目,命名随意,这里用了demo

然后create 一个 credentials,API

每日免费自定义搜索配额最多只允许 100 次搜索。要增加此限制,需要为项目分配一个计费帐户,以从每天多达 10,000 次搜索中获利

设置自定义搜索引擎:https://cse.google.com/cse/all,命名随性,搜索范围可以全网,或者自定义。建议按领域来,像做生物生命科学的定向pubmed和谷歌学术镜像,可以稍微省时

准备好了API,开始设置环境变量:

Windows 用户:

setx GOOGLE_API_KEY "YOUR_GOOGLE_API_KEY"
setx CUSTOM_SEARCH_ENGINE_ID "YOUR_CUSTOM_SEARCH_ENGINE_ID"

macOS 和 Linux 用户:

export GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY"
export CUSTOM_SEARCH_ENGINE_ID="YOUR_CUSTOM_SEARCH_ENGINE_ID"

3.5 配置Pinecone API

  • 去Pineconehttps://app.pinecone.io/并创建一个帐户。
  • 选择计划以避免被收费。Starter
  • 在左侧边栏的默认项目下找到API密钥和区域

windows用户:

setx PINECONE_API_KEY "<YOUR_PINECONE_API_KEY>"
setx PINECONE_ENV "<YOUR_PINECONE_REGION>" # e.g: "us-east4-gcp"
setx MEMORY_BACKEND "pinecone"

macOS 和 Linux 用户:

export PINECONE_API_KEY="<YOUR_PINECONE_API_KEY>"
export PINECONE_ENV="<YOUR_PINECONE_REGION>" # e.g: "us-east4-gcp"
export MEMORY_BACKEND="pinecone"

4.讨论

这个虽然是刚出来的实验性项目,但是潜力,真的很大很大,关于Memory pre-seedingImage GenerationMilvus笔者这里没有提,内容太多太干太硬了,跟着上面的代码可以部署体验一波,需要重度使用务必仔细研究Github

有关在Github中77k星的王炸AutoGPT,会独立思考,直接释放双手的更多相关文章

  1. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  2. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  3. C51单片机——实现用独立按键控制LED亮灭(调用函数篇) - 2

    说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时

  4. 语法类似于 GitHub Flavored Markdown 的 Ruby markdown 解释器? - 2

    我使用Jekyll运行博客,并认为我会解决RedcarpetMarkdown解释器,因为它是developedandusedbyGitHub.好吧,我只是碰巧遇到了一个错误,去检查问题,然后foundthis.Maintainersays,"Asyouprobablyhavenoticed(harharharhar)Idon'thavetimetomaintainRedcarpetanymore.It'snotapriorityforme(IfindMarkdownthoroughlyboring)andit'snotapriorityforGitHub,becausewenolong

  5. ruby - vagrant 从 github 安装插件 - 2

    我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com

  6. ruby - 如何让 GitHub 页面使用 master 分支? - 2

    我有一个使用Jekyll托管在GitHub上的静态网站。问题是,我真的不需要master分支,因为存储库唯一包含的是网站。这样我就必须gitcheckoutgh-pages,然后gitmergemaster,然后gitpushorigingh-pages。有什么简单的方法可以摆脱gh-pages分支并直接从master推送? 最佳答案 Theproblemis,Idon'treallyneedthemasterbranch,astheonlythingtherepositorycontainsisthewebsite.Isthere

  7. ruby-on-rails - 如何在 Rails 中的不同数据库上执行直接 SQL 代码 - 2

    我正在编写一个Rails应用程序,它将监视某些特定数据库的数据质量。为了做到这一点,我需要能够对这些数据库执行直接SQL查询——这当然与用于驱动Rails应用程序模型的数据库不同。简而言之,这意味着我无法使用通过ActiveRecord基础连接的技巧。我需要连接的数据库在设计时是未知的(即:我不能将它们的详细信息放在database.yaml中)。相反,我有一个模型“database_details”,用户将使用它来输入应用程序将在运行时执行查询的数据库的详细信息。因此与这些数据库的连接实际上是动态的,细节仅在运行时解析。 最佳答案

  8. ruby - 警告 : PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, 请参阅 : https://github. com/wayneeseguin/rvm/issues/3212 - 2

    我每次打开终端时都会收到这个错误:警告:PATH设置为RVMruby​​但未设置GEM_HOME和/或GEM_PATH,请参阅:https://github.com/wayneeseguin/rvm/issues/3212这是在我最近安装zsh(oh-my-zsh)后开始发生的我不知道如何设置GEM_HOME和/或GEM_PATH的路径。 最佳答案 我也面临同样的问题,更改.zshrc中的以下行,exportPATH="/usr/local/heroku/bin:.........."到exportPATH="$PATH:/usr/

  9. ruby - github api v3 创建问题消息未找到 - 2

    当我尝试创建一个github问题时,它给出消息未找到回复。以及如何发送身份验证header。因为创建问题需要用户登录或验证curl-XPOST-i-d'{"title":"my-new-repo","body":"mynewissuedescription"}'https://api.github.com/repos/barterli/barter.li/issuesHTTP/1.1404NotFoundServer:GitHub.comDate:Wed,19Feb201407:11:33GMTContent-Type:application/json;charset=utf-8Sta

  10. ruby-on-rails - 独立测试 Rails 部分 View - 2

    我在标准rails2.1项目中使用Test/Unit。我希望能够独立于任何特定的Controller/操作来测试分部View。好像ZenTest'sTest::Rails::ViewTestCase会有所帮助,但我无法让它工作,与view_testhttp://www.continuousthinking.com/tags/view_test类似Google出现的大部分内容似乎都已经过时了,所以我猜它并不真正适用于Rails2.1非常感谢任何帮助。谢谢,罗兰 最佳答案 我们正在使用RSpec在我们的Rails2.1项目中,我们可以做

随机推荐