时隔一年,再次讨论下AutoGPT-安装篇

news2025/2/6 12:58:56

AutoGPT是23年3月份推出的,距今已经1年多的时间了。刚推出时,我们还只能通过命令行使用AutoGPT的能力,但现在,我们不仅可以基于AutoGPT创建自己的Agent,我们还可以通过Web页面与我们创建的Agent进行聊天。这次的AutoGPT讨论可以分为两篇,第一篇,也就是现在这篇,主要是介绍Web版AutoGPT的安装教程(官方教程写的不太详细);第二篇,会介绍一下当前AutoGPT的技术架构,以及部分代码解读。

官方教程

官方给出了两种安装方式,第一种是基于源码进行安装,这种方式需要安装多个依赖,稍微复杂些;第二种是基于docker安装,不需要配置额外的依赖,使用起来简单一些,但是只能通过终端命令行的方式进行访问,无法使用Web页面🤔️。
官方教程详见:https://docs.agpt.co/autogpt/setup/

详细安装教程(以macOS系统为例)

前置依赖安装

AutoGPT项目由于支持执行Python代码,处于安全考虑,这个系统为每个Agent都创建了一个独立的虚拟环境,这套虚拟环境的管理就是通过Poetry实现的,关于Poetry的详细介绍,可见https://python-poetry.org/。
如果我们参考AutoGPT官方的安装文档,要安装Poetry,我们需要先安装brew(环境问题,官官方镜像经常链接不稳定)、pipx,然后再通过pipx安装poetry,流程较为复杂,且容易失败。其实,我们可以直接通过如下命令直接安装
这种方式更加简单易行。
如果这种方式安装不成功,或者还是想通过pipx安装,那可参考https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/,这个是清华镜像站给出的Homebrew安装教程,稳定可行(Home-brew官方教程很容易因网络原因导致安装失败)。然后再参考pipx安装教程安装pipx,最后再安装poetry。

项目依赖安装

首先,我们需要把autoGPT这个项目的源代码下载到本地,在这个阶段,官方文档里一直推荐我们先fork这个项目,然后再把fork后的项目克隆到本地。其实,如果我们只是想运行这个项目的话,不需要fork,直接克隆官方项目就可以,可以使用命令行的方式,如
也可以使用Pycharm的get from vcs克隆,其原理都是一样的。
将项目下载到本地后,需要进入到当前工程的目录下运行下面的命令安装相关依赖。
注意!!!!!,如果本地是使用conda管理的环境,在运行下面命令时,不要在自己已使用的环境中启动,该命令会删除当前python环境🥲。幸好当时我是新创建的环境。

工程配置&&启动

在启动Agent之前,我们还需要配置下相关文件,主要是openAI的key。如果是autogpt自己提供的Agent,则需要修改下autogpts/autogpt/.env.template这个文件,首先把文件重命名为.env,然后配置下key的值就可以了。如果使用的非官方API,而是第三方中转的,那除了配置key,还需要配置下API地址。具体示例如下:主要配置下OPENAI_API_KEY(中转key)和OPENAI_API_BASE_URL(中转地址)就可以,其他的按需配置即可。

################################################################################
### AutoGPT - GENERAL SETTINGS
################################################################################

## OPENAI_API_KEY - OpenAI API Key (Example: my-openai-api-key)
OPENAI_API_KEY=sk-m91Ug6HhWgQhk9w4573212345678990

## TELEMETRY_OPT_IN - Share telemetry on errors and other issues with the AutoGPT team, e.g. through Sentry.
##   This helps us to spot and solve problems earlier & faster. (Default: DISABLED)
# TELEMETRY_OPT_IN=true

## EXECUTE_LOCAL_COMMANDS - Allow local command execution (Default: False)
EXECUTE_LOCAL_COMMANDS=True

### Workspace ###

## RESTRICT_TO_WORKSPACE - Restrict file operations to workspace ./data/agents/<agent_id>/workspace (Default: True)
# RESTRICT_TO_WORKSPACE=True

## DISABLED_COMMAND_CATEGORIES - The list of categories of commands that are disabled (Default: None)
# DISABLED_COMMAND_CATEGORIES=

## FILE_STORAGE_BACKEND - Choose a storage backend for contents
## Options: local, gcs, s3
FILE_STORAGE_BACKEND=local

## STORAGE_BUCKET - GCS/S3 Bucket to store contents in
# STORAGE_BUCKET=autogpt

## GCS Credentials
# see https://cloud.google.com/storage/docs/authentication#libauth

## AWS/S3 Credentials
# see https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html

## S3_ENDPOINT_URL - If you're using non-AWS S3, set your endpoint here.
# S3_ENDPOINT_URL=

### Miscellaneous ###

## USER_AGENT - Define the user-agent used by the requests library to browse website (string)
USER_AGENT="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"

## AI_SETTINGS_FILE - Specifies which AI Settings file to use, relative to the AutoGPT root directory. (defaults to ai_settings.yaml)
# AI_SETTINGS_FILE=ai_settings.yaml

## PLUGINS_CONFIG_FILE - The path to the plugins_config.yaml file, relative to the AutoGPT root directory. (Default plugins_config.yaml)
# PLUGINS_CONFIG_FILE=plugins_config.yaml

## PROMPT_SETTINGS_FILE - Specifies which Prompt Settings file to use, relative to the AutoGPT root directory. (defaults to prompt_settings.yaml)
# PROMPT_SETTINGS_FILE=prompt_settings.yaml

## AUTHORISE COMMAND KEY - Key to authorise commands
# AUTHORISE_COMMAND_KEY=y

## EXIT_KEY - Key to exit AutoGPT
# EXIT_KEY=n

################################################################################
### LLM PROVIDER
################################################################################

## TEMPERATURE - Sets temperature in OpenAI (Default: 0)
# TEMPERATURE=0

## OPENAI_API_BASE_URL - Custom url for the OpenAI API, useful for connecting to custom backends. No effect if USE_AZURE is true, leave blank to keep the default url
# the following is an example:
OPENAI_API_BASE_URL=https://example.com/v1

# OPENAI_API_TYPE=
# OPENAI_API_VERSION=

## OPENAI_FUNCTIONS - Enables OpenAI functions: https://platform.openai.com/docs/guides/gpt/function-calling
## Note: this feature is only supported by OpenAI's newer models.
# OPENAI_FUNCTIONS=False

## OPENAI_ORGANIZATION - Your OpenAI Organization key (Default: None)
# OPENAI_ORGANIZATION=

## USE_AZURE - Use Azure OpenAI or not (Default: False)
# USE_AZURE=False

## AZURE_CONFIG_FILE - The path to the azure.yaml file, relative to the folder containing this file. (Default: azure.yaml)
# AZURE_CONFIG_FILE=azure.yaml

# AZURE_OPENAI_AD_TOKEN=
# AZURE_OPENAI_ENDPOINT=

################################################################################
### LLM MODELS
################################################################################

## SMART_LLM - Smart language model (Default: gpt-4-turbo-preview)
SMART_LLM=gpt-3.5-turbo-0125

## FAST_LLM - Fast language model (Default: gpt-3.5-turbo-0125)
FAST_LLM=gpt-3.5-turbo-0125

## EMBEDDING_MODEL - Model to use for creating embeddings
EMBEDDING_MODEL=text-embedding-3-small

################################################################################
### SHELL EXECUTION
################################################################################

## SHELL_COMMAND_CONTROL - Whether to use "allowlist" or "denylist" to determine what shell commands can be executed (Default: denylist)
# SHELL_COMMAND_CONTROL=denylist

## ONLY if SHELL_COMMAND_CONTROL is set to denylist:
## SHELL_DENYLIST - List of shell commands that ARE NOT allowed to be executed by AutoGPT (Default: sudo,su)
# SHELL_DENYLIST=sudo,su

## ONLY if SHELL_COMMAND_CONTROL is set to allowlist:
## SHELL_ALLOWLIST - List of shell commands that ARE allowed to be executed by AutoGPT (Default: None)
# SHELL_ALLOWLIST=

################################################################################
### IMAGE GENERATION PROVIDER
################################################################################

### Common

## IMAGE_PROVIDER - Image provider (Default: dalle)
# IMAGE_PROVIDER=dalle

## IMAGE_SIZE - Image size (Default: 256)
# IMAGE_SIZE=256

### Huggingface (IMAGE_PROVIDER=huggingface)

## HUGGINGFACE_IMAGE_MODEL - Text-to-image model from Huggingface (Default: CompVis/stable-diffusion-v1-4)
# HUGGINGFACE_IMAGE_MODEL=CompVis/stable-diffusion-v1-4

## HUGGINGFACE_API_TOKEN - HuggingFace API token (Default: None)
# HUGGINGFACE_API_TOKEN=

### Stable Diffusion (IMAGE_PROVIDER=sdwebui)

## SD_WEBUI_AUTH - Stable Diffusion Web UI username:password pair (Default: None)
# SD_WEBUI_AUTH=

## SD_WEBUI_URL - Stable Diffusion Web UI API URL (Default: http://localhost:7860)
# SD_WEBUI_URL=http://localhost:7860

################################################################################
### AUDIO TO TEXT PROVIDER
################################################################################

## AUDIO_TO_TEXT_PROVIDER - Audio-to-text provider (Default: huggingface)
# AUDIO_TO_TEXT_PROVIDER=huggingface

## HUGGINGFACE_AUDIO_TO_TEXT_MODEL - The model for HuggingFace to use (Default: CompVis/stable-diffusion-v1-4)
# HUGGINGFACE_AUDIO_TO_TEXT_MODEL=CompVis/stable-diffusion-v1-4

################################################################################
### GITHUB
################################################################################

## GITHUB_API_KEY - Github API key / PAT (Default: None)
# GITHUB_API_KEY=

## GITHUB_USERNAME - Github username (Default: None)
# GITHUB_USERNAME=

################################################################################
### WEB BROWSING
################################################################################

## HEADLESS_BROWSER - Whether to run the browser in headless mode (default: True)
# HEADLESS_BROWSER=True

## USE_WEB_BROWSER - Sets the web-browser driver to use with selenium (default: chrome)
# USE_WEB_BROWSER=chrome

## BROWSE_CHUNK_MAX_LENGTH - When browsing website, define the length of chunks to summarize (Default: 3000)
# BROWSE_CHUNK_MAX_LENGTH=3000

## BROWSE_SPACY_LANGUAGE_MODEL - spaCy language model](https://spacy.io/usage/models) to use when creating chunks. (Default: en_core_web_sm)
# BROWSE_SPACY_LANGUAGE_MODEL=en_core_web_sm

## GOOGLE_API_KEY - Google API key (Default: None)
# GOOGLE_API_KEY=

## GOOGLE_CUSTOM_SEARCH_ENGINE_ID - Google custom search engine ID (Default: None)
# GOOGLE_CUSTOM_SEARCH_ENGINE_ID=

################################################################################
### TEXT TO SPEECH PROVIDER
################################################################################

## TEXT_TO_SPEECH_PROVIDER - Which Text to Speech provider to use (Default: gtts)
## Options: gtts, streamelements, elevenlabs, macos
# TEXT_TO_SPEECH_PROVIDER=gtts

## STREAMELEMENTS_VOICE - Voice to use for StreamElements (Default: Brian)
# STREAMELEMENTS_VOICE=Brian

## ELEVENLABS_API_KEY - Eleven Labs API key (Default: None)
# ELEVENLABS_API_KEY=

## ELEVENLABS_VOICE_ID - Eleven Labs voice ID (Example: None)
# ELEVENLABS_VOICE_ID=

################################################################################
### CHAT MESSAGES
################################################################################

## CHAT_MESSAGES_ENABLED - Enable chat messages (Default: False)
# CHAT_MESSAGES_ENABLED=False

################################################################################
### LOGGING
################################################################################

## LOG_LEVEL - Set the minimum level to filter log output by. Setting this to DEBUG implies LOG_FORMAT=debug, unless LOG_FORMAT is set explicitly.
## Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
# LOG_LEVEL=INFO

## LOG_FORMAT - The format in which to log messages to the console (and log files).
## Options: simple, debug, structured_google_cloud
# LOG_FORMAT=simple

## LOG_FILE_FORMAT - Normally follows the LOG_FORMAT setting, but can be set separately.
## Note: Log file output is disabled if LOG_FORMAT=structured_google_cloud.
# LOG_FILE_FORMAT=simple

## PLAIN_OUTPUT - Disables animated typing and the spinner in the console output. (Default: False)
# PLAIN_OUTPUT=False


################################################################################
### Agent Protocol Server Settings
################################################################################
## AP_SERVER_PORT - Specifies what port the agent protocol server will listen on. (Default: 8000)
## AP_SERVER_DB_URL - Specifies what connection url the agent protocol database will connect to (Default: Internal SQLite)
## AP_SERVER_CORS_ALLOWED_ORIGINS - Comma separated list of allowed origins for CORS. (Default: http://localhost:{AP_SERVER_PORT})
# AP_SERVER_PORT=8000
# AP_SERVER_DB_URL=sqlite:///data/ap_server.db
# AP_SERVER_CORS_ALLOWED_ORIGINS=

最后,我们使用./run agent start autogpt即可启动官方提供的Agent,如果想使用自己创建的Agent,可以运行./run agent start your_agent_name就可以了,即把命令行中的autogpt替换成你创建的Agent名称即可,启动成功后,即可通过http://localhost:8000/进行访问。

使用示例

启动成功后,我们肯定很想试试这个Agent的效果如何,这里我给出了一个示例,让官方的Agent帮我推荐下居住在北京的话,明天应该穿什么。要回答这个问题,Agent首先要知道今天的日期,然后推算出明天的日期,然后查询北京明天的天气,最后给出穿衣建议。实际的Agent响应结果我截图放在下面了,大家感兴趣可以看下,在这个Agent中,为了省钱,我使用的是GPT-3.5-turbo这个模型,如果换成GPT4的话,效果应该会更好。
在这里插入图片描述

当前使用3.5的模型,在分析处理过程中,Agent体现出了一定的智能性,比如遇到异常时,Agent会自己思考并更换同类工具,在这个过程中,Agent成功的获取到了当前时间和明天北京的天气,但是不巧的事,到最后一步穿衣建议时,智能体出现了差错,只给出了一个问题的描述,而没有给出具体的内容。

后记

以当前的例子看,3.5版本的autoGPT还是难堪大用的。后续,我会使用GPT4的模型继续尝试让Agent解决问题,同时,也会从源码层面介绍下AutoGPT的技术实现,希望大家关注下😄😄

参考资料

  1. AutoGPT https://docs.agpt.co/autogpt/setup/
  2. https://ken.io/note/macos-homebrew-install-and-configuration
  3. https://zhuanlan.zhihu.com/p/536626536
  4. https://aiedge.medium.com/autogpt-forge-a-comprehensive-guide-to-your-first-steps-a1dfdf46e3b4
  5. https://pipx.pypa.io/stable/installation/
  6. https://aiedge.medium.com/autogpt-forge-e3de53cc58ec

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1598660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java智慧校园家校互通小程序源码 Android 7.16.+小程序原生开发的全套智慧校园电子班牌云平台源码

智慧校园云平台电子班牌系统&#xff0c;利用先进的云计算技术&#xff0c;将教育信息化资源和教学管理系统进行有效整合&#xff0c;实现基础数据共享、应用统一管理。借助全新的智能交互识别终端和移动化教育管理系统&#xff0c;以考勤、课表、通知、家校互通等功能为切入点…

如何准备2024年汉字小达人:18道历年考题示例和解析、备考提醒

现在距离2024年第11届汉字小达人比赛还有六个多月的时间&#xff0c;如何利用这段时间有条不紊地备考呢&#xff1f;我的建议是两手准备&#xff1a;①把小学1-5年级的语文课本上的知识点熟悉&#xff0c;重点是字、词、成语、古诗。阅读理解不需要。②把历年真题刷刷熟&#x…

第二证券今日投资参考:铜价持续上涨 医药政策向好态势明显

昨日&#xff0c;A股在金融板块的带动下强势拉升&#xff0c;沪指涨超1%。到收盘&#xff0c;沪指涨1.26%报3057.38点&#xff0c;深证成指涨1.53%报9369.7点&#xff0c;创业板指涨1.85%报1795.52点&#xff0c;上证50指数涨2.1%&#xff1b;两市合计成交9971亿元&#xff0c;…

Oracle和PG数据库临时表的差异,PG数据库如何删除临时表

现实的开发过程中使用 PG 数据库删除临时表发现如下报错&#xff0c;提示表 xxx 不存在&#xff1a; 问题原因&#xff1a; 调用删除语句&#xff0c;但是临时表不存在了。 解决方案&#xff1a; PG下用下面的方式来删除临时表或不进行删除&#xff08;会话级临时表会自动删除…

mac基础操作、快捷、软件快捷方式

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 mac基础操作、快捷、软件快捷方式 前言mac快捷操作快捷查找切换页面页面缩略访达和命令端切换创建文件夹创建文件删除文件/文件夹获取文件的路径移动文件或文件夹复制文件命令端常用命令 前言 主要是方…

姿态估计-人脸识别mesh-3d手势识别-3d目标检测-背景分割-人脸关键点

往期热门博客项目回顾&#xff1a;点击前往 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上…

用html画一个睡觉的熊动画

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>睡觉的熊动画</title><link rel"stylesheet" href"./style.css"> </head><body><div id"contain…

第二届数据安全大赛暨首届“数信杯”数据安全大赛数据安全积分争夺赛-东区预赛部分WP

这里写目录标题 1.理论题2.数据安全&#xff1a;3.数据分析&#xff1a;数据分析&#xff08;1&#xff09;数据分析&#xff08;3&#xff09; 前言&#xff1a;第一次参加数信杯&#xff0c;很荣信晋级线下&#xff0c;有点难度好多都要写脚本ovo。 1.理论题 略 2.数据安全…

git操作基本命令

Git命令操作&#xff1a; 1、服务器上面有新的修改&#xff0c;pull出现错误操作如下 git stash git pull origin master git stash pop 2、删除本地一个文件test.py,想重新download远程服务器最新的文件 #git checkout test.py 3、查看当前处于哪一个分支 #git …

中国八大古都,分别是哪8个?

中国历史上统一王朝或者在全局范围内看呈鼎立之势的大的政权的首都&#xff0c;称古都&#xff0c;又称都城、国都等&#xff0c;是古代王朝的政治中心&#xff0c;也是经济和文化中心。 1、西安 西安&#xff0c;古称长安&#xff0c;是中国历史上建都时间最长、建都朝代最多…

[管理者与领导者-167] :团队管理 - 高效执行力 -6-授权-领导者做个统筹调度的领导者,而不是做冲锋陷阵的士兵

目录 关键词&#xff1a; 前言&#xff1a; 一、管理者做自己该做的事&#xff0c;下属做下属该做的事 二、科学分配任务和职责 三、只有信任员工&#xff0c;才能有效授权 四、授权管头&#xff08;定目标&#xff09;管尾&#xff08;把结果&#xff09;&#xff0c;但…

前端开发攻略---在输入框中输入中文但是还没选中的时候,搜索事件依然存在;中文输入法导致的高频事件。

1、演示 解决前 解决后 2、输入框事件介绍 compositionstart事件在用户开始使用输入法输入时触发。这意味着用户正在进行组合输入&#xff0c;比如在中文输入法中&#xff0c;用户可能正在输入一个多个字符的词语。在这个阶段&#xff0c;输入框的内容可能还没有完全确定&#…

亚马逊云科技直冲云霄训练营活动开始啦(送考试半价券)

小李哥分享的是亚马逊科技官方免费直冲云霄训练营学习活动&#xff0c;通过该活动可以薅到以下的羊毛 1️⃣免费系统性技能培训&#xff0c;成为AWS技术大牛 2️⃣考试半价券&#xff0c;最高可省1086元人民币 3️⃣分享活动获得精美礼品 4️⃣亚马逊云科技年度全球技术大会门票…

avicat连接异常,错误编号2059-authentication plugin…

错误原因为密码方式不对&#xff0c;具体可自行百度 首先管理员执行cmd进入 mysql安装目录 bin下边 我的是C:\Program Files\MySQL\MySQL Server 8.2\bin> 执行 mysql -u -root -p 然后输入密码 123456 进入mysql数据库 use mysql 执行 ALTER USER rootlocalhost IDE…

了解以太网环网保护倒换(ERPS)

以太网环网保护交换&#xff08;ERPS&#xff09;有助于实现高可靠性和网络稳定性。本文概述了ERPS&#xff0c;包括其定义、基本概念和优点。 什么是ERPS&#xff1f; 以太网环网保护切换&#xff08;ERPS&#xff09;是一种标准化的网络设计方法&#xff0c;旨在确保以太网…

Day 23 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇

修剪二叉搜索树 给定一个二叉搜索树&#xff0c;同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[L, R]中 (R>L) 。你可能需要改变树的根节点&#xff0c;所以结果应当返回修剪好的二叉搜索树的新的根节点。 ​ 最直接的想法&#xff0…

iOS修改外部符号指针地址—fishhook原理

上篇文章解释了外部符号加载的原理&#xff0c;知道了外部函数地址最后都保存在__DATA_CONST,__got或__DATA,__lay_symbol_ptr。 因此我们如果想要hook外部函数&#xff0c;只需要在启动后修改这两个段内的值就行。 接下来就是怎么找到某个外部符号在__DATA_CONST,__got或__DA…

【MySQL笔记】InnoDB的插入缓存+非聚簇索引插入的离散性理解

文章目录 为什么需要插入缓存Insert Buffer非聚簇索引插入的离散性 Insert Buffer查看Insert Buffer信息 Insert Buffer的问题Change Buffer总结Reference 为什么需要插入缓存Insert Buffer 磁盘中的主键索引由于天然自增&#xff0c;无须磁盘的随机 I/O&#xff0c;只需不断追…

必示科技与日志易达成深度战略合作,携手共创智能运维新篇章

近日&#xff0c;智能运维企业必示科技与智能日志分析企业日志易达成深度战略合作&#xff0c;双方将在提升产品服务、技术融合创新应用、市场拓展、资源共享和协同效用等方面展开合作&#xff0c;为企业用户提供更全面优质的IT管理智能化服务&#xff0c;共同提升市场影响力&a…

【多线程】单例模式 | 饿汉模式 | 懒汉模式 | 指令重排序问题

文章目录 单例模式一、单例模式1.饿汉模式2.懒汉模式&#xff08;单线程&#xff09;3.懒汉模式&#xff08;多线程&#xff09;改进 4.指令重排序1.概念2.question:3.解决方法4总结&#xff1a; 单例模式 一、单例模式 单例&#xff0c;就是单个实例 在有些场景中&#xff0c…