Bumps [redis](https://github.com/redis/redis-py) from 5.2.1 to 6.2.0, for both `autogpt_libs` and `backend`. Also, additional fixes in `autogpt_libs/pyproject.toml`: - Move `redis` from dev dependencies to prod dependencies - Fix author info - Sort dependencies > [!NOTE] > Of course dependabot wouldn't do this on its own; this PR has been taken over and augmented by @Pwuts <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/redis/redis-py/releases">redis's releases</a>.</em></p> <blockquote> <h2>6.2.0</h2> <h1>Changes</h1> <h2>🚀 New Features</h2> <ul> <li>Add <code>dynamic_startup_nodes</code> parameter to async RedisCluster (<a href="https://redirect.github.com/redis/redis-py/issues/3646">#3646</a>)</li> <li>Support RESP3 with <code>hiredis-py</code> parser (<a href="https://redirect.github.com/redis/redis-py/issues/3648">#3648</a>)</li> <li>[Async] Support for transactions in async <code>RedisCluster</code> client (<a href="https://redirect.github.com/redis/redis-py/issues/3649">#3649</a>)</li> </ul> <h2>🐛 Bug Fixes</h2> <ul> <li>Revert wrongly changed default value for <code>check_hostname</code> when instantiating <code>RedisSSLContext</code> (<a href="https://redirect.github.com/redis/redis-py/issues/3655">#3655</a>)</li> <li>Fixed potential deadlock from unexpected <code>__del__</code> call (<a href="https://redirect.github.com/redis/redis-py/issues/3654">#3654</a>)</li> </ul> <h2>🧰 Maintenance</h2> <ul> <li>Update <code>search_json_examples.ipynb</code>: Fix the old import <code>indexDefinition</code> -> <code>index_definition</code> (<a href="https://redirect.github.com/redis/redis-py/issues/3652">#3652</a>)</li> <li>Remove mandatory update of the CHANGES file for new PRs. Changes file will be kept for history for versions < 4.0.0 (<a href="https://redirect.github.com/redis/redis-py/issues/3645">#3645</a>)</li> <li>Dropping <code>Python 3.8</code> support as it has reached end of life (<a href="https://redirect.github.com/redis/redis-py/issues/3657">#3657</a>)</li> <li>fix(doc): update Python print output in json doctests (<a href="https://redirect.github.com/redis/redis-py/issues/3658">#3658</a>)</li> <li>Update redis-entraid dependency (<a href="https://redirect.github.com/redis/redis-py/issues/3661">#3661</a>)</li> </ul> <h2></h2> <p>We'd like to thank all the contributors who worked on this release! <a href="https://github.com/JCornat"><code>@JCornat</code></a> <a href="https://github.com/ShubhamKaudewar"><code>@ShubhamKaudewar</code></a> <a href="https://github.com/uglide"><code>@uglide</code></a> <a href="https://github.com/petyaslavova"><code>@petyaslavova</code></a> <a href="https://github.com/vladvildanov"><code>@vladvildanov</code></a></p> <h2>v6.1.1</h2> <h1>Changes</h1> <h2>🐛 Bug Fixes</h2> <ul> <li>Revert wrongly changed default value for <code>check_hostname</code> when instantiating <code>RedisSSLContext</code> (<a href="https://redirect.github.com/redis/redis-py/issues/3655">#3655</a>)</li> <li>Fixed potential deadlock from unexpected <code>__del__</code> call (<a href="https://redirect.github.com/redis/redis-py/issues/3654">#3654</a>)</li> </ul> <h2></h2> <p>We'd like to thank all the contributors who worked on this release! <a href="https://github.com/vladvildanov"><code>@vladvildanov</code></a> <a href="https://github.com/petyaslavova"><code>@petyaslavova</code></a></p> <h2>6.1.0</h2> <h1>Changes</h1> <h2>🚀 New Features</h2> <ul> <li>Support for transactions in <code>RedisCluster</code> client (<a href="https://redirect.github.com/redis/redis-py/issues/3611">#3611</a>)</li> <li>Add equality and hashability to <code>Retry</code> and backoff classes (<a href="https://redirect.github.com/redis/redis-py/issues/3628">#3628</a>)</li> </ul> <h2>🐛 Bug Fixes</h2> <ul> <li>Fix RedisCluster <code>ssl_check_hostname</code> not set to connections. For SSL verification with <code>ssl_cert_reqs="none"</code>, check_hostname is set to <code>False</code> (<a href="https://redirect.github.com/redis/redis-py/issues/3637">#3637</a>) <strong>Important</strong>: The default value for the <code>check_hostname</code> field of <code>RedisSSLContext</code> has been changed as part of this PR - this is a breaking change and should not be introduced in minor versions - unfortunately, it is part of the current release. The breaking change is reverted in the next release to fix the behavior --> 6.2.0</li> <li>Prevent RuntimeError while reinitializing clusters - sync and async (<a href="https://redirect.github.com/redis/redis-py/issues/3633">#3633</a>)</li> <li>Add equality and hashability to <code>Retry</code> and backoff classes (<a href="https://redirect.github.com/redis/redis-py/issues/3628">#3628</a>) - fixes integration with Django RQ</li> <li>Fix <code>AttributeError</code> on <code>ClusterPipeline</code> (<a href="https://redirect.github.com/redis/redis-py/issues/3634">#3634</a>)</li> </ul> <h2>🧰 Maintenance</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="1a59471870"><code>1a59471</code></a> Adding small change in code to trigger pipeline for the branch.</li> <li><a href="83cf781be6"><code>83cf781</code></a> Adding small change in README to trigger pipeline for the branch.</li> <li><a href="f5cd264c40"><code>f5cd264</code></a> maintenance: Preparation for release 6.2.0 - updating lib version. (<a href="https://redirect.github.com/redis/redis-py/issues/3662">#3662</a>)</li> <li><a href="793cdc63ac"><code>793cdc6</code></a> maintenance: Update redis-entraid dependency (<a href="https://redirect.github.com/redis/redis-py/issues/3661">#3661</a>)</li> <li><a href="34c40ff82d"><code>34c40ff</code></a> fix(doc) : update Python print output in json doctests (<a href="https://redirect.github.com/redis/redis-py/issues/3658">#3658</a>)</li> <li><a href="e5756daafa"><code>e5756da</code></a> Dropping Python 3.8 support as it has reached end of life (<a href="https://redirect.github.com/redis/redis-py/issues/3657">#3657</a>)</li> <li><a href="bc7de608b8"><code>bc7de60</code></a> [Async] Support for transactions in async RedisCluster client (<a href="https://redirect.github.com/redis/redis-py/issues/3649">#3649</a>)</li> <li><a href="e226ad2b4c"><code>e226ad2</code></a> Removing connection_pool field from the CommandProtocol definition (<a href="https://redirect.github.com/redis/redis-py/issues/3656">#3656</a>)</li> <li><a href="14a6fc39bd"><code>14a6fc3</code></a> fix: Fixed potential deadlock from unexpected <strong>del</strong> call (<a href="https://redirect.github.com/redis/redis-py/issues/3654">#3654</a>)</li> <li><a href="3ebfd5b569"><code>3ebfd5b</code></a> fix: Revert wrongly changed default value for check_hostname when instantiati...</li> <li>Additional commits viewable in <a href="https://github.com/redis/redis-py/compare/v5.2.1...v6.2.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
AutoGPT Platform
Welcome to the AutoGPT Platform - a powerful system for creating and running AI agents to solve business problems. This platform enables you to harness the power of artificial intelligence to automate tasks, analyze data, and generate insights for your organization.
Getting Started
Prerequisites
- Docker
- Docker Compose V2 (comes with Docker Desktop, or can be installed separately)
- Node.js & NPM (for running the frontend application)
Running the System
To run the AutoGPT Platform, follow these steps:
-
Clone this repository to your local machine and navigate to the
autogpt_platformdirectory within the repository:git clone <https://github.com/Significant-Gravitas/AutoGPT.git | git@github.com:Significant-Gravitas/AutoGPT.git> cd AutoGPT/autogpt_platform -
Run the following command:
cp .env.example .envThis command will copy the
.env.examplefile to.env. You can modify the.envfile to add your own environment variables. -
Run the following command:
docker compose up -dThis command will start all the necessary backend services defined in the
docker-compose.ymlfile in detached mode. -
Navigate to
frontendwithin theautogpt_platformdirectory:cd frontendYou will need to run your frontend application separately on your local machine.
-
Run the following command:
cp .env.example .env.localThis command will copy the
.env.examplefile to.env.localin thefrontenddirectory. You can modify the.env.localwithin this folder to add your own environment variables for the frontend application. -
Run the following command:
Enable corepack and install dependencies by running:
corepack enable pnpm iGenerate the API client (this step is required before running the frontend):
pnpm generate:api-clientThen start the frontend application in development mode:
pnpm dev -
Open your browser and navigate to
http://localhost:3000to access the AutoGPT Platform frontend.
Docker Compose Commands
Here are some useful Docker Compose commands for managing your AutoGPT Platform:
docker compose up -d: Start the services in detached mode.docker compose stop: Stop the running services without removing them.docker compose rm: Remove stopped service containers.docker compose build: Build or rebuild services.docker compose down: Stop and remove containers, networks, and volumes.docker compose watch: Watch for changes in your services and automatically update them.
Sample Scenarios
Here are some common scenarios where you might use multiple Docker Compose commands:
-
Updating and restarting a specific service:
docker compose build api_srv docker compose up -d --no-deps api_srvThis rebuilds the
api_srvservice and restarts it without affecting other services. -
Viewing logs for troubleshooting:
docker compose logs -f api_srv ws_srvThis shows and follows the logs for both
api_srvandws_srvservices. -
Scaling a service for increased load:
docker compose up -d --scale executor=3This scales the
executorservice to 3 instances to handle increased load. -
Stopping the entire system for maintenance:
docker compose stop docker compose rm -f docker compose pull docker compose up -dThis stops all services, removes containers, pulls the latest images, and restarts the system.
-
Developing with live updates:
docker compose watchThis watches for changes in your code and automatically updates the relevant services.
-
Checking the status of services:
docker compose psThis shows the current status of all services defined in your docker-compose.yml file.
These scenarios demonstrate how to use Docker Compose commands in combination to manage your AutoGPT Platform effectively.
Persisting Data
To persist data for PostgreSQL and Redis, you can modify the docker-compose.yml file to add volumes. Here's how:
-
Open the
docker-compose.ymlfile in a text editor. -
Add volume configurations for PostgreSQL and Redis services:
services: postgres: # ... other configurations ... volumes: - postgres_data:/var/lib/postgresql/data redis: # ... other configurations ... volumes: - redis_data:/data volumes: postgres_data: redis_data: -
Save the file and run
docker compose up -dto apply the changes.
This configuration will create named volumes for PostgreSQL and Redis, ensuring that your data persists across container restarts.
API Client Generation
The platform includes scripts for generating and managing the API client:
pnpm fetch:openapi: Fetches the OpenAPI specification from the backend service (requires backend to be running on port 8006)pnpm generate:api-client: Generates the TypeScript API client from the OpenAPI specification using Orvalpnpm generate:api-all: Runs both fetch and generate commands in sequence
Manual API Client Updates
If you need to update the API client after making changes to the backend API:
-
Ensure the backend services are running:
docker compose up -d -
Generate the updated API client:
pnpm generate:api-all
This will fetch the latest OpenAPI specification and regenerate the TypeScript client code.