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

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.mzph.cn/news/819030.shtml

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

相关文章

设计模式——观察者模式17

观察者模式指多个对象间存在一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式。 中介者模式是N对N的双向关系。观察者模式是1对N的单向关系。 设计模式&#xff0c;一定要敲代码…

腾讯EdgeOne产品测评体验—金字塔般的网络安全守护神

作为一名对网络安全和性能优化充满热情的用户&#xff0c;我决定体验腾讯云下一代 CDN 服务 - EdgeOne。这款引以为傲的全方位服务如数来到&#xff0c;从域名解析、动静态智能加速到四层加速及DDoS/CC/Web/Bot 防护&#xff0c;一应俱全。随着时代风云变幻&#xff0c;日均数千…

高级数据结构与算法习题(7)

一、单选题 1、When solving a problem with input size N by divide and conquer, if at each stage the problem is divided into 8 sub-problems of equal size N/3, and the conquer step takes O(N2logN) to form the solution from the sub-solutions, then the overall…

Linux调试器之gdb

前言 我们前面介绍了几个基本的环境开发工具。例如通过yum我们可以安装和卸载软件、通过vim我们可以写代码、通过gcc和g我们可以编译代码成可执行程序。但是如何在Linux下调试代码呢&#xff1f;我们并未介绍&#xff0c;本期我们将来介绍最后一个工具 --- 调试器gdb。 本期内…

DAY13|239. 滑动窗口最大值、347.前K个高频元素

239. 滑动窗口最大值、347.前 K 个高频元素 239. 滑动窗口最大值347.前 K 个高频元素 239. 滑动窗口最大值 难度有些大啊… 其实队列没有必要维护窗口里的所有元素&#xff0c;只需要维护有可能成为窗口里最大值的元素就可以了&#xff0c;同时保证队列里的元素数值是由大到小…

基于U-Net的图像分割算法介绍

U-Net是一种用于图像分割的深度学习架构,其设计初衷是用于生物医学图像分割,尤其是医学影像中的细胞分割任务。U-Net结构独特,具有编码器-解码器结构,能够有效地捕捉图像中的局部和全局信息,并在像素级别上进行精确的分割。 相关论文: U-Net: Convolutional Networks for…

密码学基础 -- 走进RSA(2)(放弃数学原理版)

目录 1.概述 2. RSA测试 2.1 加解密实验 2.2 签名验签测试 3. RSA原理简介 4.小结 1.概述 从上面密码学基础 -- 走进RSA(1)(放弃数学原理版)-CSDN博客我们知道了非对称算法的密钥对使用时机&#xff0c;那么接下里我们继续讲解RSA&#xff0c;我们分别从RSA加解密、签名验…

科大讯飞星火开源大模型iFlytekSpark-13B GPU版部署方法

星火大模型的主页&#xff1a;iFlytekSpark-13B: 讯飞星火开源-13B&#xff08;iFlytekSpark-13B&#xff09;拥有130亿参数&#xff0c;新一代认知大模型&#xff0c;一经发布&#xff0c;众多科研院所和高校便期待科大讯飞能够开源。 为了让大家使用的更加方便&#xff0c;科…

leetcode-链表中间节点

876. 链表的中间结点 题目 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5] 解释&#xff1a;链表只有一个中间…

12.MySQL应用架构演变

MySQL应用架构演变 1.总览 单机单库主从架构分库分表云数据库 2.单机单库 介绍 一个简单的小型网站或者应用背后的架构可以非常简单&#xff0c;数据存储只需要一个MySQL Instance就能满足数据读取和写入需求&#xff08;这里忽略掉了数据备份的实例&#xff09;&#xff…

三款好用的 Docker 可视化管理工具

文章目录 1、Docker Desktop1.1、介绍1.2、下载地址1.3、在Windows上安装Docker桌面1.4、启动Docker Desktop1.5、Docker相关学习网址 2、Portainer2.1、介绍2.2、安装使用 3、Docker UI3.1、介绍3.2、安装使用3.2.1、常规方式安装3.2.2、通过容器安装 Docker提供了命令行工具&…

【vue】购物车案例

change"fun"&#xff1a;元素值发生改变时&#xff0c;会触发事件fun <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale…

Qt创建基于应用程序的插件

应用程序插件 什么是插件插件的好处插件的种类应用程序插件创建应用程序的插件步骤:创建测试插件的应用程序步骤:应用程序插件示例开发环境创建示例生成插件运行结果总结什么是插件 插件是一种用于应用程序功能扩展和增强,且按照特定规范编写的应用程序接口的程序。 插件的…

linux 自定义快捷指令(docker

vi /root/.bashrc alias disdocker images alias dpsdocker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}" 保存退出后使用sourece /root/.bashrc 让其立即生效 sourece /root/.bashrc

Python学习笔记(37)——用xlwings库生成excel

老规矩先pip入xlwings库 STEP1:下载xlwings库 windowsr>>cmd>>pip install xlwings (如果需要不同版本可以到pypi上搜&#xff09; STEP2:完成EXCEL初级创建 请打开您的编写软件~~~~~&#xff08;小编的显示结果为PYCHARM编写的&#xff0c;因为颜色标注好看(…

【论文笔记】PointMamba: A Simple State Space Model for Point Cloud Analysis

原文链接&#xff1a;https://arxiv.org/abs/2402.10739 1. 引言 基于Transformer的点云分析方法有二次时空复杂度&#xff0c;一些方法通过限制感受野降低计算。这引出了一个问题&#xff1a;如何设计方法实现线性复杂度并有全局感受野。 状态空间模型&#xff08;SSM&…

蓝桥杯 — — 纯质数

纯质数 题目&#xff1a; 思路&#xff1a; 一个最简单的思路就是枚举出所有的质数&#xff0c;然后再判断这个质数是否是一个纯质数。 枚举出所有的质数&#xff1a; 可以使用常规的暴力求解法&#xff0c;其时间复杂度为&#xff08; O ( N N ) O(N\sqrt{N}) O(NN ​)&…

SQL12 获取每个部门中当前员工薪水最高的相关信息

题目&#xff1a;获取每个部门中当前员工薪水最高的相关信息 注意了&#xff0c;这道题目&#xff0c;分组函数只能查出来&#xff1a;每个部门的最高薪水&#xff0c;group by dept_no &#xff0c;根据部门分组&#xff0c;绝对不能group by dept_no,emp_no&#xff0c;不能…

学习一门语言的方法和套路(B站转述)

视频链接 up虽然长相英(ping)俊(ping)&#xff0c;但是讲的干活&#xff0c;没恰饭。 学习流程&#xff1a; 1.快速阅读&#xff0c;掌握概况 2.深入细节内容 例如&#xff1a;java (JDBC)、html 、netty 不管三七二十一&#xff0c;先了解套路&#xff0c;再深入研究。 高…

2024软考中项考哪个版本?应该该如何备考?

2024年1月&#xff0c;备受瞩目的软考中级系统集成项目管理工程师官方教程终于迎来了久违的大改版。为确保广大考生能够有充足的准备时间&#xff0c;软考中项的考试时间被顺延至同年11月&#xff0c;届时&#xff0c;这也将成为软考中项首次依据第3版考纲进行的考试。 新教材核…