Bumps the development-dependencies group with 3 updates in the /autogpt_platform/market directory: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio), [ruff](https://github.com/astral-sh/ruff) and [pyright](https://github.com/RobertCraigie/pyright-python). Updates `pytest-asyncio` from 0.25.0 to 0.25.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-asyncio/releases">pytest-asyncio's releases</a>.</em></p> <blockquote> <h2>pytest-asyncio 0.25.1</h2> <ul> <li>Fixes an issue that caused a broken event loop when a function-scoped test was executed in between two tests with wider loop scope <a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/950">#950</a></li> <li>Improves test collection speed in auto mode <a href="https://redirect.github.com/pytest-dev/pytest-asyncio/pull/1020">#1020</a></li> <li>Corrects the warning that is emitted upon redefining the event_loop fixture</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="623ab74b80"><code>623ab74</code></a> docs: Prepare release of v0.25.1.</li> <li><a href="c236550e73"><code>c236550</code></a> docs: Fix broken link to the pytest.mark.asyncio reference.</li> <li><a href="41c645b3b7"><code>41c645b</code></a> fix: Correct warning message when redefining the event_loop fixture.</li> <li><a href="2fd10f8243"><code>2fd10f8</code></a> docs: Clarify deprecation of event_loop fixture.</li> <li><a href="a4e82ab25b"><code>a4e82ab</code></a> docs: Added changelog entry for <a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1020">#1020</a>.</li> <li><a href="04f90445e1"><code>04f9044</code></a> refactor: Replace the "__original_fixture_loop" magic attribute with the more...</li> <li><a href="dafef6c65b"><code>dafef6c</code></a> refactor: Extracted a function to mark an event loop as created by pytest-asy...</li> <li><a href="0c931b7eab"><code>0c931b7</code></a> refactor: Extracted function to check if a loop was created by pytest-asyncio.</li> <li><a href="0642dcd27b"><code>0642dcd</code></a> fix: Fix broken event loop when a function-scoped test is in between two wide...</li> <li><a href="050a5f81c9"><code>050a5f8</code></a> [pre-commit.ci] pre-commit autoupdate</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.0...v0.25.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.8.3 to 0.8.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.8.4</h2> <h2>Release Notes</h2> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Extend <code>AIR302</code> with additional functions and classes (<a href="https://redirect.github.com/astral-sh/ruff/pull/15015">#15015</a>)</li> <li>[<code>airflow</code>] Implement <code>moved-to-provider-in-3</code> for modules that has been moved to Airflow providers (<code>AIR303</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14764">#14764</a>)</li> <li>[<code>flake8-use-pathlib</code>] Extend check for invalid path suffix to include the case <code>"."</code> (<code>PTH210</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14902">#14902</a>)</li> <li>[<code>perflint</code>] Fix panic in <code>PERF401</code> when list variable is after the <code>for</code> loop (<a href="https://redirect.github.com/astral-sh/ruff/pull/14971">#14971</a>)</li> <li>[<code>perflint</code>] Simplify finding the loop target in <code>PERF401</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/15025">#15025</a>)</li> <li>[<code>pylint</code>] Preserve original value format (<code>PLR6104</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14978">#14978</a>)</li> <li>[<code>ruff</code>] Avoid false positives for <code>RUF027</code> for typing context bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/15037">#15037</a>)</li> <li>[<code>ruff</code>] Check for ambiguous pattern passed to <code>pytest.raises()</code> (<code>RUF043</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14966">#14966</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>flake8-bandit</code>] Check <code>S105</code> for annotated assignment (<a href="https://redirect.github.com/astral-sh/ruff/pull/15059">#15059</a>)</li> <li>[<code>flake8-pyi</code>] More autofixes for <code>redundant-none-literal</code> (<code>PYI061</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14872">#14872</a>)</li> <li>[<code>pydocstyle</code>] Skip leading whitespace for <code>D403</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/14963">#14963</a>)</li> <li>[<code>ruff</code>] Skip <code>SQLModel</code> base classes for <code>mutable-class-default</code> (<code>RUF012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14949">#14949</a>)</li> </ul> <h3>Bug</h3> <ul> <li>[<code>perflint</code>] Parenthesize walrus expressions in autofix for <code>manual-list-comprehension</code> (<code>PERF401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/15050">#15050</a>)</li> </ul> <h3>Server</h3> <ul> <li>Check diagnostic refresh support from client capability which enables dynamic configuration for various editors (<a href="https://redirect.github.com/astral-sh/ruff/pull/15014">#15014</a>)</li> </ul> <h2>Contributors</h2> <ul> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/Daverball"><code>@Daverball</code></a></li> <li><a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a></li> <li><a href="https://github.com/InSyncWithFoo"><code>@InSyncWithFoo</code></a></li> <li><a href="https://github.com/Lee-W"><code>@Lee-W</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/TheBits"><code>@TheBits</code></a></li> <li><a href="https://github.com/cake-monotone"><code>@cake-monotone</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/dcreager"><code>@dcreager</code></a></li> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/dylwil3"><code>@dylwil3</code></a></li> <li><a href="https://github.com/github-actions"><code>@github-actions</code></a></li> <li><a href="https://github.com/kiran-4444"><code>@kiran-4444</code></a></li> <li><a href="https://github.com/krishnan-chandra"><code>@krishnan-chandra</code></a></li> <li><a href="https://github.com/rchen152"><code>@rchen152</code></a></li> <li><a href="https://github.com/renovate"><code>@renovate</code></a></li> <li><a href="https://github.com/sharkdp"><code>@sharkdp</code></a></li> <li><a href="https://github.com/tarasmatsyk"><code>@tarasmatsyk</code></a></li> <li><a href="https://github.com/w0nder1ng"><code>@w0nder1ng</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.8.4</h2> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Extend <code>AIR302</code> with additional functions and classes (<a href="https://redirect.github.com/astral-sh/ruff/pull/15015">#15015</a>)</li> <li>[<code>airflow</code>] Implement <code>moved-to-provider-in-3</code> for modules that has been moved to Airflow providers (<code>AIR303</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14764">#14764</a>)</li> <li>[<code>flake8-use-pathlib</code>] Extend check for invalid path suffix to include the case <code>"."</code> (<code>PTH210</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14902">#14902</a>)</li> <li>[<code>perflint</code>] Fix panic in <code>PERF401</code> when list variable is after the <code>for</code> loop (<a href="https://redirect.github.com/astral-sh/ruff/pull/14971">#14971</a>)</li> <li>[<code>perflint</code>] Simplify finding the loop target in <code>PERF401</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/15025">#15025</a>)</li> <li>[<code>pylint</code>] Preserve original value format (<code>PLR6104</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14978">#14978</a>)</li> <li>[<code>ruff</code>] Avoid false positives for <code>RUF027</code> for typing context bindings (<a href="https://redirect.github.com/astral-sh/ruff/pull/15037">#15037</a>)</li> <li>[<code>ruff</code>] Check for ambiguous pattern passed to <code>pytest.raises()</code> (<code>RUF043</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14966">#14966</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>flake8-bandit</code>] Check <code>S105</code> for annotated assignment (<a href="https://redirect.github.com/astral-sh/ruff/pull/15059">#15059</a>)</li> <li>[<code>flake8-pyi</code>] More autofixes for <code>redundant-none-literal</code> (<code>PYI061</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14872">#14872</a>)</li> <li>[<code>pydocstyle</code>] Skip leading whitespace for <code>D403</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/14963">#14963</a>)</li> <li>[<code>ruff</code>] Skip <code>SQLModel</code> base classes for <code>mutable-class-default</code> (<code>RUF012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14949">#14949</a>)</li> </ul> <h3>Bug</h3> <ul> <li>[<code>perflint</code>] Parenthesize walrus expressions in autofix for <code>manual-list-comprehension</code> (<code>PERF401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/15050">#15050</a>)</li> </ul> <h3>Server</h3> <ul> <li>Check diagnostic refresh support from client capability which enables dynamic configuration for various editors (<a href="https://redirect.github.com/astral-sh/ruff/pull/15014">#15014</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="3bb0dac235"><code>3bb0dac</code></a> Bump version to 0.8.4 (<a href="https://redirect.github.com/astral-sh/ruff/issues/15064">#15064</a>)</li> <li><a href="40cba5dc8a"><code>40cba5d</code></a> [red-knot] Cleanup various <code>todo_type!()</code> messages (<a href="https://redirect.github.com/astral-sh/ruff/issues/15063">#15063</a>)</li> <li><a href="596d80cc8e"><code>596d80c</code></a> [<code>perflint</code>] Parenthesize walrus expressions in autofix for `manual-list-comp...</li> <li><a href="d8b9a366c8"><code>d8b9a36</code></a> Disable actionlint hook by default when running pre-commit locally (<a href="https://redirect.github.com/astral-sh/ruff/issues/15061">#15061</a>)</li> <li><a href="85e71ba91a"><code>85e71ba</code></a> [<code>flake8-bandit</code>] Check <code>S105</code> for annotated assignment (<a href="https://redirect.github.com/astral-sh/ruff/issues/15059">#15059</a>)</li> <li><a href="2802cbde29"><code>2802cbd</code></a> Don't special-case class instances in unary expression inference (<a href="https://redirect.github.com/astral-sh/ruff/issues/15045">#15045</a>)</li> <li><a href="ed2bce6ebb"><code>ed2bce6</code></a> [red-knot] Report invalid exceptions (<a href="https://redirect.github.com/astral-sh/ruff/issues/15042">#15042</a>)</li> <li><a href="f0012df686"><code>f0012df</code></a> Fix typos in <code>RUF043.py</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/15044">#15044</a>)</li> <li><a href="0fc4e8f795"><code>0fc4e8f</code></a> Introduce <code>InferContext</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/14956">#14956</a>)</li> <li><a href="ac81c72bf3"><code>ac81c72</code></a> [<code>ruff</code>] Ambiguous pattern passed to <code>pytest.raises()</code> (<code>RUF043</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/14966">#14966</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.8.3...0.8.4">compare view</a></li> </ul> </details> <br /> Updates `pyright` from 1.1.390 to 1.1.391 <details> <summary>Commits</summary> <ul> <li><a href="3356df1d40"><code>3356df1</code></a> [pyright updated to 1.1.391] Update Version (<a href="https://redirect.github.com/RobertCraigie/pyright-python/issues/327">#327</a>)</li> <li>See full diff in <a href="https://github.com/RobertCraigie/pyright-python/compare/v1.1.390...v1.1.391">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually 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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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:
git submodule update --init --recursiveThis command will initialize and update the submodules in the repository. The
supabasefolder will be cloned to the root directory. -
Run the following command:
cp supabase/docker/.env.example .envThis command will copy the
.env.examplefile to.envin thesupabase/dockerdirectory. 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:
npm install npm run devThis command will install the necessary dependencies and start the frontend application in development mode. If you are using Yarn, you can run the following commands instead:
yarn install && yarn 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.