* Feature/tighten up ci pipeline (#3700) * Fix docker volume mounts (#3710) Co-authored-by: Reinier van der Leer <github@pwuts.nl> Co-authored-by: Nicholas Tindle <nick@ntindle.com> * Feature/enable intuitive logs for community challenge step 1 (#3695) * Feature/enable intuitive logs summarization (#3697) * Move task_complete command out of prompt (#3663) * feat: move task_complete command out of prompt * fix: formatting fixes * Add the shutdown command to the test agents * tests: update test vcrs --------- Co-authored-by: James Collins <collijk@uw.edu> * Allow users to Disable Commands via the .env (#3667) * Document Disabling command categories (#3669) * feat: move task_complete command out of prompt * fix: formatting fixes * feat: add command disabling * docs: document how to disable command categories * Enable denylist handling for plugins (#3688) Co-authored-by: Luke Kyohere <lkyohere@mfsafrica.com> Co-authored-by: Nicholas Tindle <nick@ntindle.com> * Fix call to `plugin.post_planning` (#3414) Co-authored-by: Nicholas Tindle <nick@ntindle.com> * create information retrieval challenge a (#3770) Co-authored-by: Richard Beales <rich@richbeales.net> * fix typos (#3798) * Update run.bat (#3783) Co-authored-by: Richard Beales <rich@richbeales.net> * Update run.sh (#3752) Co-authored-by: Richard Beales <rich@richbeales.net> * ADD: Bash block in the contributing markdown (#3701) Co-authored-by: Richard Beales <rich@richbeales.net> * BUGFIX: Selenium Driver object reference was included in the browsing results for some reason (#3642) * * there is really no need to return the reference to the Selenium driver along with the text summary and list of links. * * removing unused second return value from browse_website() * * updated cassette * * updated YAML cassette for test_browse_website * * after requirements reinstall, another update YAML cassette for test_browse_website * * another update YAML cassette for test_browse_website, only as a placholder commit to trigger re-testing due to some docker TCP timeout issue * * another update YAML cassette for test_browse_website --------- Co-authored-by: batyu <batyu@localhost> * Update CONTRIBUTING.md * Self feedback Improvement (#3680) * Improved `Self-Feedback` * minor tweak * Test: Updated `test_get_self_feedback.py` * community challenges in the wiki (#3764) * Update README.md * Update PULL_REQUEST_TEMPLATE.md Added link to wiki Contributing page * Add link to wiki Contributing page * fix * Add link to wiki page on Contributing * Implement Logging of User Input in logs/Debug Folder (#3867) * Adds USER_INPUT_FILE_NAME * Update agent.py * Update agent.py Log only if console_input is not the authorise_key * Reformatting * add information retrieval challenge to the wiki (#3876) * add code owners policy (#3981) * add code owners * added @ to codeowners * switched to team ownership * Memory Challenge C (#3908) * Memory Challenge C * Working cassettes * Doc fixes * Linting and doc fix * Updated cassette * One more cassette try --------- Co-authored-by: merwanehamadi <merwanehamadi@gmail.com> * memory challenge c inconsistent (#3985) * Improve & fix memory challenge docs. (#3989) Co-authored-by: Kaan Osmanagaoglu <kaano@questps.com.au> * Feature/centralize prompt (#3990) Co-authored-by: xiao.hu <454292663@qq.com> * Use correct reference to prompt_generator in autogpt/llm/chat.py (#4011) * fix typos (#3998) Co-authored-by: Minfeng Lu <minfenglu@Minfengs-MacBook-Pro.local> Co-authored-by: Richard Beales <rich@richbeales.net> * fix typo in the getting started docs (#3997) Co-authored-by: Richard Beales <rich@richbeales.net> * Fix path to workspace directory in setup guide (#3927) Co-authored-by: Nicholas Tindle <nick@ntindle.com> * document that docker-compose 1.29.0 is minimally required (#3963) Co-authored-by: Nicholas Tindle <nick@ntindle.com> * Integrate pytest-xdist Plugin for Parallel and Concurrent Testing (#3870) * Adds pytest-parallel dependencies * Implement pytest-parallel for faster tests * Uses pytest-xdist * Auto number of workers processes * Update ci.yml --------- Co-authored-by: Nicholas Tindle <nick@ntindle.com> * explain temperature setting in env file (#4140) Co-authored-by: Richard Beales <rich@richbeales.net> * Catch JSON error in summary_memory.py (#3996) Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> * Update duckduckgo dependency - min should be 2.9.5 (#4142) Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> * Update Dockerfile - add missing scripts and plugins directories. (#3706) Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> * Updated memory setup links (#3829) Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> * Parse package versions so upgrades can be forced (#4149) * parse package versions so upgrades can be forced * better version from @collijk * fix typo in autopgt/agent/agent.py (#3747) Co-authored-by: merwanehamadi <merwanehamadi@gmail.com> Co-authored-by: Richard Beales <rich@richbeales.net> Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> * Fix `milvus_memory_test.py` mock `Config` (#3424) Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> * Implemented showing the number of preauthorised commands left. #1035 (#3322) Co-authored-by: mayubi <marwand@ayubi-it.de> Co-authored-by: Nicholas Tindle <nick@ntindle.com> Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> * Challenge: Kubernetes and documentation (#4121) * challenge_kubes_and_readme * docs * testing * black and isort * revision * lint * comments * blackisort * docs * docs * deleting_cassette * suggestions * misspelling_errors --------- Co-authored-by: merwanehamadi <merwanehamadi@gmail.com> * Make sdwebui tests pass (when SD is running) (#3721) Co-authored-by: Nicholas Tindle <nick@ntindle.com> * Add Edge browser support using EdgeChromiumDriverManager (#3058) Co-authored-by: Nicholas Tindle <nick@ntindle.com> Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> * Added --install-plugin-deps to Docker (#4151) Co-authored-by: Nicholas Tindle <nick@ntindle.com> * Feature/basic proxy (#4164) * basic proxy (#54) * basic proxy (#55) * basic proxy * basic proxy * basic proxy * basic proxy * add back double quotes * add more specific files * write file * basic proxy * Put back double quotes * test new CI (#4168) * test new CI * test new CI * remove double quotes * Feature/test new ci pipeline 2 (#4169) * test new CI * remove double quotes * make it a variable * make it a variable * Test New CI Pipeline (#4170) * introduce dummy prompt change * introduce dummy prompt change * empty commit * empty commit * empty commit * push to origin repo * add s to quote * Feature/fix rate limiting issue Step 1 (#4173) * temporarilly remove 3.11 * add back 3.11 (#4185) * Revert "Put back 3.11 until it's removed as a requirement" (#4191) --------- Co-authored-by: Reinier van der Leer <github@pwuts.nl> Co-authored-by: merwanehamadi <merwanehamadi@gmail.com> Co-authored-by: Peter Petermann <ppetermann80@googlemail.com> Co-authored-by: Nicholas Tindle <nick@ntindle.com> Co-authored-by: James Collins <collijk@uw.edu> Co-authored-by: Luke K <2609441+pr-0f3t@users.noreply.github.com> Co-authored-by: Luke Kyohere <lkyohere@mfsafrica.com> Co-authored-by: Robin Richtsfeld <robin.richtsfeld@gmail.com> Co-authored-by: RainRat <rainrat78@yahoo.ca> Co-authored-by: itsmarble <130370814+itsmarble@users.noreply.github.com> Co-authored-by: Ambuj Pawar <pawar.ambuj@gmail.com> Co-authored-by: bszollosinagy <4211175+bszollosinagy@users.noreply.github.com> Co-authored-by: batyu <batyu@localhost> Co-authored-by: Pi <sunfish7@gmail.com> Co-authored-by: AbTrax <45964236+AbTrax@users.noreply.github.com> Co-authored-by: Andres Caicedo <73312784+AndresCdo@users.noreply.github.com> Co-authored-by: Douglas Schonholtz <15002691+dschonholtz@users.noreply.github.com> Co-authored-by: Kaan <kaanixir@gmail.com> Co-authored-by: Kaan Osmanagaoglu <kaano@questps.com.au> Co-authored-by: xiao.hu <454292663@qq.com> Co-authored-by: Tomasz Kasperczyk <tomaszikasperczyk@gmail.com> Co-authored-by: minfeng-ai <42948406+minfenglu@users.noreply.github.com> Co-authored-by: Minfeng Lu <minfenglu@Minfengs-MacBook-Pro.local> Co-authored-by: Shlomi <81581678+jit-shlomi@users.noreply.github.com> Co-authored-by: Itai Steinherz <itaisteinherz@gmail.com> Co-authored-by: Boostrix <119627414+Boostrix@users.noreply.github.com> Co-authored-by: Kristian Jackson <kristian.jackson@gmail.com> Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com> Co-authored-by: Eduardo Salinas <edus@microsoft.com> Co-authored-by: prom3theu5 <dave@simcube.co.uk> Co-authored-by: dominic-ks <contact@bedevious.co.uk> Co-authored-by: andrey13771 <51243350+andrey13771@users.noreply.github.com> Co-authored-by: Marwand Ayubi <98717667+xhypeDE@users.noreply.github.com> Co-authored-by: mayubi <marwand@ayubi-it.de> Co-authored-by: Media <12145726+rihp@users.noreply.github.com> Co-authored-by: Cenny <cwenner@gmail.com> Co-authored-by: Abdelkarim Habouch <37211852+karimhabush@users.noreply.github.com>
8.6 KiB
Setting up Auto-GPT
📋 Requirements
Choose an environment to run Auto-GPT in (pick one):
- Docker (recommended)
- Python 3.10 or later (instructions: for Windows)
- VSCode + devcontainer
🗝️ Getting an API key
Get your OpenAI API key from: https://platform.openai.com/account/api-keys.
!!! attention To use the OpenAI API with Auto-GPT, we strongly recommend setting up billing (AKA paid account). Free accounts are limited to 3 API calls per minute, which can cause the application to crash.
You can set up a paid account at [Manage account > Billing > Overview](https://platform.openai.com/account/billing/overview).
!!! important It's highly recommended that you keep track of your API costs on the Usage page. You can also set limits on how much you spend on the Usage limits page.
Setting up Auto-GPT
Set up with Docker
-
Make sure you have Docker installed, see requirements
-
Pull the latest image from Docker Hub
:::shell docker pull significantgravitas/auto-gpt -
Create a folder for Auto-GPT
-
In the folder, create a file called
docker-compose.ymlwith the following contents::::yaml version: "3.9" services: auto-gpt: image: significantgravitas/auto-gpt depends_on: - redis env_file: - .env environment: MEMORY_BACKEND: ${MEMORY_BACKEND:-redis} REDIS_HOST: ${REDIS_HOST:-redis} profiles: ["exclude-from-up"] volumes: - ./auto_gpt_workspace:/app/autogpt/auto_gpt_workspace - ./data:/app/data ## allow auto-gpt to write logs to disk - ./logs:/app/logs ## uncomment following lines if you have / want to make use of these files #- ./azure.yaml:/app/azure.yaml #- ./ai_settings.yaml:/app/ai_settings.yaml redis: image: "redis/redis-stack-server:latest" -
Create the necessary configuration files. If needed, you can find templates in the repository.
-
Continue to Run with Docker
!!! note "Docker only supports headless browsing"
Auto-GPT uses a browser in headless mode by default: HEADLESS_BROWSER=True.
Please do not change this setting in combination with Docker, or Auto-GPT will crash.
Set up with Git
!!! important Make sure you have Git installed for your OS.
!!! info "Executing commands"
To execute the given commands, open a CMD, Bash, or Powershell window.
On Windows: press ++win+x++ and pick Terminal, or ++win+r++ and enter cmd
-
Clone the repository
:::shell git clone -b stable https://github.com/Significant-Gravitas/Auto-GPT.git -
Navigate to the directory where you downloaded the repository
:::shell cd Auto-GPT
Set up without Git/Docker
!!! warning We recommend to use Git or Docker, to make updating easier.
- Download
Source code (zip)from the latest stable release - Extract the zip-file into a folder
Configuration
-
Find the file named
.env.templatein the mainAuto-GPTfolder. This file may be hidden by default in some operating systems due to the dot prefix. To reveal hidden files, follow the instructions for your specific operating system: Windows, macOS. -
Create a copy of
.env.templateand call it.env; if you're already in a command prompt/terminal window:cp .env.template .env. -
Open the
.envfile in a text editor. -
Find the line that says
OPENAI_API_KEY=. -
After the
=, enter your unique OpenAI API Key without any quotes or spaces. -
Enter any other API keys or tokens for services you would like to use.
!!! note To activate and adjust a setting, remove the
#prefix. -
Save and close the
.envfile.
!!! info "Using a GPT Azure-instance"
If you want to use GPT on an Azure instance, set USE_AZURE to True and
make an Azure configuration file:
- Rename `azure.yaml.template` to `azure.yaml` and provide the relevant `azure_api_base`, `azure_api_version` and all the deployment IDs for the relevant models in the `azure_model_map` section:
- `fast_llm_model_deployment_id`: your gpt-3.5-turbo or gpt-4 deployment ID
- `smart_llm_model_deployment_id`: your gpt-4 deployment ID
- `embedding_model_deployment_id`: your text-embedding-ada-002 v2 deployment ID
Example:
:::yaml
# Please specify all of these values as double-quoted strings
# Replace string in angled brackets (<>) to your own ID
azure_model_map:
fast_llm_model_deployment_id: "<my-fast-llm-deployment-id>"
...
Details can be found in the [openai-python docs], and in the [Azure OpenAI docs] for the embedding model.
If you're on Windows you may need to install an [MSVC library](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170).
Running Auto-GPT
Run with Docker
Easiest is to use docker-compose.
Important: Docker Compose version 1.29.0 or later is required to use version 3.9 of the Compose file format. You can check the version of Docker Compose installed on your system by running the following command:
docker-compose version
This will display the version of Docker Compose that is currently installed on your system.
If you need to upgrade Docker Compose to a newer version, you can follow the installation instructions in the Docker documentation: https://docs.docker.com/compose/install/
Once you have a recent version of docker-compose, run the commands below in your Auto-GPT folder.
-
Build the image. If you have pulled the image from Docker Hub, skip this step.
:::shell docker-compose build auto-gpt -
Run Auto-GPT
:::shell docker-compose run --rm auto-gptBy default, this will also start and attach a Redis memory backend. If you do not want this, comment or remove the
depends: - redisandredis:sections fromdocker-compose.yml.For related settings, see Memory > Redis setup.
You can pass extra arguments, e.g. running with --gpt3only and --continuous:
docker-compose run --rm auto-gpt --gpt3only --continuous
If you dare, you can also build and run it with "vanilla" docker commands:
docker build -t auto-gpt .
docker run -it --env-file=.env -v $PWD:/app auto-gpt
docker run -it --env-file=.env -v $PWD:/app --rm auto-gpt --gpt3only --continuous
Run with Dev Container
-
Install the Remote - Containers extension in VS Code.
-
Open command palette with ++f1++ and type
Dev Containers: Open Folder in Container. -
Run
./run.sh.
Run without Docker
Simply run the startup script in your terminal. This will install any necessary Python packages and launch Auto-GPT.
-
On Linux/MacOS:
:::shell ./run.sh -
On Windows:
:::shell .\run.bat
If this gives errors, make sure you have a compatible Python version installed. See also the requirements.
