网站seo优化综合服务公司哪家好,服装厂家东莞网站建设,第一次做网站不知道,Wordpress标题颜色怎么修改AutoGPT是23年3月份推出的#xff0c;距今已经1年多的时间了。刚推出时#xff0c;我们还只能通过命令行使用AutoGPT的能力#xff0c;但现在#xff0c;我们不仅可以基于AutoGPT创建自己的Agent#xff0c;我们还可以通过Web页面与我们创建的Agent进行聊天。这次的AutoGP…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_KEYsk-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_INtrue## EXECUTE_LOCAL_COMMANDS - Allow local command execution (Default: False)
EXECUTE_LOCAL_COMMANDSTrue### Workspace ##### RESTRICT_TO_WORKSPACE - Restrict file operations to workspace ./data/agents/agent_id/workspace (Default: True)
# RESTRICT_TO_WORKSPACETrue## 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_BACKENDlocal## STORAGE_BUCKET - GCS/S3 Bucket to store contents in
# STORAGE_BUCKETautogpt## 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 youre 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_AGENTMozilla/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_FILEai_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_FILEplugins_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_FILEprompt_settings.yaml## AUTHORISE COMMAND KEY - Key to authorise commands
# AUTHORISE_COMMAND_KEYy## EXIT_KEY - Key to exit AutoGPT
# EXIT_KEYn################################################################################
### LLM PROVIDER
################################################################################## TEMPERATURE - Sets temperature in OpenAI (Default: 0)
# TEMPERATURE0## 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_URLhttps://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 OpenAIs newer models.
# OPENAI_FUNCTIONSFalse## OPENAI_ORGANIZATION - Your OpenAI Organization key (Default: None)
# OPENAI_ORGANIZATION## USE_AZURE - Use Azure OpenAI or not (Default: False)
# USE_AZUREFalse## AZURE_CONFIG_FILE - The path to the azure.yaml file, relative to the folder containing this file. (Default: azure.yaml)
# AZURE_CONFIG_FILEazure.yaml# AZURE_OPENAI_AD_TOKEN
# AZURE_OPENAI_ENDPOINT################################################################################
### LLM MODELS
################################################################################## SMART_LLM - Smart language model (Default: gpt-4-turbo-preview)
SMART_LLMgpt-3.5-turbo-0125## FAST_LLM - Fast language model (Default: gpt-3.5-turbo-0125)
FAST_LLMgpt-3.5-turbo-0125## EMBEDDING_MODEL - Model to use for creating embeddings
EMBEDDING_MODELtext-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_CONTROLdenylist## 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_DENYLISTsudo,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_PROVIDERdalle## IMAGE_SIZE - Image size (Default: 256)
# IMAGE_SIZE256### Huggingface (IMAGE_PROVIDERhuggingface)## HUGGINGFACE_IMAGE_MODEL - Text-to-image model from Huggingface (Default: CompVis/stable-diffusion-v1-4)
# HUGGINGFACE_IMAGE_MODELCompVis/stable-diffusion-v1-4## HUGGINGFACE_API_TOKEN - HuggingFace API token (Default: None)
# HUGGINGFACE_API_TOKEN### Stable Diffusion (IMAGE_PROVIDERsdwebui)## 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_URLhttp://localhost:7860################################################################################
### AUDIO TO TEXT PROVIDER
################################################################################## AUDIO_TO_TEXT_PROVIDER - Audio-to-text provider (Default: huggingface)
# AUDIO_TO_TEXT_PROVIDERhuggingface## HUGGINGFACE_AUDIO_TO_TEXT_MODEL - The model for HuggingFace to use (Default: CompVis/stable-diffusion-v1-4)
# HUGGINGFACE_AUDIO_TO_TEXT_MODELCompVis/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_BROWSERTrue## USE_WEB_BROWSER - Sets the web-browser driver to use with selenium (default: chrome)
# USE_WEB_BROWSERchrome## BROWSE_CHUNK_MAX_LENGTH - When browsing website, define the length of chunks to summarize (Default: 3000)
# BROWSE_CHUNK_MAX_LENGTH3000## 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_MODELen_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_PROVIDERgtts## STREAMELEMENTS_VOICE - Voice to use for StreamElements (Default: Brian)
# STREAMELEMENTS_VOICEBrian## 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_ENABLEDFalse################################################################################
### LOGGING
################################################################################## LOG_LEVEL - Set the minimum level to filter log output by. Setting this to DEBUG implies LOG_FORMATdebug, unless LOG_FORMAT is set explicitly.
## Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
# LOG_LEVELINFO## LOG_FORMAT - The format in which to log messages to the console (and log files).
## Options: simple, debug, structured_google_cloud
# LOG_FORMATsimple## LOG_FILE_FORMAT - Normally follows the LOG_FORMAT setting, but can be set separately.
## Note: Log file output is disabled if LOG_FORMATstructured_google_cloud.
# LOG_FILE_FORMATsimple## PLAIN_OUTPUT - Disables animated typing and the spinner in the console output. (Default: False)
# PLAIN_OUTPUTFalse################################################################################
### 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_PORT8000
# AP_SERVER_DB_URLsqlite:///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的技术实现希望大家关注下
参考资料
AutoGPT https://docs.agpt.co/autogpt/setup/https://ken.io/note/macos-homebrew-install-and-configurationhttps://zhuanlan.zhihu.com/p/536626536https://aiedge.medium.com/autogpt-forge-a-comprehensive-guide-to-your-first-steps-a1dfdf46e3b4https://pipx.pypa.io/stable/installation/https://aiedge.medium.com/autogpt-forge-e3de53cc58ec