👏

[2023年4月版]最新版のAuto-GPTをローカルDockerで動かす

2023/04/23に公開

最新版のAuto-GPTをローカルDockerで動かすには

以前にローカルで構築したAuto-GPTですが…
リポジトリに docker-compose.yml が追加されており、Redisを使ったAuto-GPTの構築が簡単にできるようになっておりましたので手順をご紹介します。

前提条件

対象

Auto-GPT: https://github.com/Torantulino/Auto-GPT

Pythonで記述されたツールでございます。 Chrome プラグインの Auto GPT ではありません

手元の環境

  • Windows 11 Pro 22H2
  • WSL 2 + Docker CE
  • Ubuntu 22.04.2 LTS

WSL の docker-ce

Docker は Desktop 版 WSL バックエンドではなく、Ubuntu 22 に docker-ce を直接インストールしてます。
WSL上の場合も、通常の Ubuntu に docker-ce をインストールする手順 https://docs.docker.com/engine/install/ubuntu/ で問題ないです。
また service docker start でエラーが起きる場合は、https://stackoverflow.com/a/73376219 の手順を実施すればOKです。

WSL で Systemctl 使えない場合

Systemctlが使えないWSL環境でのDockerサービスは以下のコマンドで起動してます。

$ sudo service docker start

ちなみに、Systemctl の有効化は以下の手順でOKです。

https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/

Add these lines to the /etc/wsl.conf (note you will need to run your editor with sudo privileges, e.g: sudo nano /etc/wsl.conf):

[boot]
systemd=true

それではAuto-GPTのローカル環境構築の手順をご紹介いたします。

1. 'Auto-GPT'をclone

git clone https://github.com/Torantulino/Auto-GPT.gitなどでローカルに Clone します。
例によってghコマンドでは以下のようにします。

gh repo clone Torantulino/Auto-GPT auto-gpt
cd auto-gpt

これでauto-gptフォルダに'Auto-GPT'がクローンされました。

2. 環境設定

.env.templateautogpt/ 直下にコピーします。

cp .env.template autogpt/.env

テンプレートをコピーして、ローカル用に環境設定ファイルを作成します。

APIキーの取得などについては前回の記事をご覧ください。

3. Redis設定設定ファイルに以下のように Redis の設定を追加します。

環境設定ファイルから、MEMORY_BACKENDREDIS_* の修正をします。

# MEMORY_BACKEND - Memory backend type (Default: local)
MEMORY_BACKEND=redis

...
### REDIS
...
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=

MEMORY_BACKENDはデフォルトではlocalになってますので、これをredisに修正します。
docker composeで立ち上げるRedisのホストはredisでアクセス可能です。

localhost での共有

docker-compose.yml にports6379を追加しておくとローカルで直接 Python 叩いてauto-gptを立ち上げても同じRedisが使えるので便利です。

docker-compose.yml
service:
    ...
    redis:
    ...
        ports:
        - "6379:6379"

この時、.envファイルのREDIS_HOST=localhost に変更しておきましょう。

4. Redisの起動

docker compose up で起動すればRedisが立ち上がります。

docker compose up -d

この時、auto-gpt のサービスは docker-compose.ymlでprofiles: ["exclude-from-up"と指定されており upコマンドでは起動しません。

5. Auto-GPTの起動

本日(2023.04.23) クローンしたバージョンではそのままでは動きませんでしたので、以下のように Dockerfile を修正します。

...
# Copy the application files
COPY --chown=appuser:appuser autogpt/ autogpt
...

で、ビルドします。

sudo docker compose build auto-gpt

続いて以下のようにrunコマンドで起動します。

sudo docker compose run auto-gpt

以下のようにプロンプトが表示されれば起動完了です。

$ sudo docker compose run auto-gpt
[+] Running 1/0
 ✔ Container auto-gpt-redis-1  Running                                                                                 0.0s 
Error creating Redis search index:  Index already exists
Welcome to Auto-GPT!  Enter the name of your AI and its role below. Entering nothing will load defaults.
Name your AI:  For example, 'Entrepreneur-GPT'
AI Name: 

お疲れさまでした!

直接 Python コマンドで起動する

直接 Python コマンドで起動するには以下のコマンドです。

python -m autogpt

DockerfileENTRYPOINTの設定と同様ですね。

まとめ

絶賛開発中なので起動方法含め、いろいろ変わってますね…
ちょっと日本語化の機能入れてみようとソースを取得しなおしたら全然、変わってたし…
まさかこんなに変わってるなんて…
進化が早いのでフォローアップもリアタイでやってかないと厳しいですね…

というわけで引き続き追っていきたいと思います。

Discussion