こんにちは。ナミレリです。今回は、M1/M2のMacでAuto-GPTを試してみたいと思います。Auto-GPTはChatGPTを使って目標に対するタスクを考え実行するツールです。ユーザーは目標を入力するだけで、あとは自動で実行してくれて、GPT-4を使い自律型AIエージェントの実現を目指すPythonで書かれたアプリケーションで、現段階では実験的な位置づけです。
この記事では、そんな夢のようなAuto-GPTをM1/M2のMacにインストールし、設定方法も紹介していきます。M1/M2のMacのDockerでインストールする方法と、Dockerなしでインストールする方法を紹介します。
この記事はこんな人にオススメ
- M1/M2のMacでAuto-GPTを試してみたい
- M1/M2のMacのDockerにAuto-GPTをインストールしたい
- Auto-GPTのインストール方法を知りたい
- 自律型AIエージェントを体験してみたい方
- 新たなAI技術をMacで試してみたい方
- AIとその可能性をMacで感じたい方
- M2 MacBook Air 13.6 インチ
- M1 Max MacBook Pro 14インチ
- macOS Ventura 13.5
- Docker desktop 4.21.1
- Auto-GTP 0.4.6
目次
はじめに
個人的にはAuto-GPTとStable diffusion web UIを連携しが画像生成を試したいですが、この記事では最低限としてOpenAIのAPIとGoogleのAPIと連携するところからやってみます。
また、Auto-GPTのインストールは、Dockerでインストールする方法と、Dockerなしでインストールする方法を試します。インストールするMacは、M1/M2のApple siliconのMacです。
Auto−GPTとは?
Auto-GPTは、Pythonで書かれたオープンソースの実験的なアプリケーションで、GPT-4を使い目標に対して自律的にタスクを考え実行します。こういったAIを自律型AIエージェントと呼びます。
ユーザーが目標を入力すると、必要なタスクを提案・実行し、目標が達成されるまでそれらを繰り返します。勝手に必要なタスクを実行してしまうのか?と心配になりますが、必要なタスクを実行する前に、しっかりユーザーに確認してくれます。
インストールも簡単なので早速試していきましょう。
Auto-GPTのインストール環境について
ローカルのマシンは、M1 MAXのMacbook ProとM2のMacbook Airの2つで試しました。
DockerなしでAuto-GPTインストールする環境
Dockerなしの場合は、miniforgeのPython 3.10.12の環境にAuto-GPTをインストールしてみます。
また、Auto-GPTはpipで様々なライブラリがインストールされますので、venvでAuto-GPT用の仮想環境を作るようにします。
miniforgeやvenvについて詳しく知りたい方は下の記事をぜひご覧ください。
DockerでAuto-GPTインストールする環境
おすすめは、Dockerを使用してAuto-GPTのインストールする方法です。Dockerを使うことでAuto−GPTを隔離された環境を手軽に作ることが出来、簡単に安全にAuto-GPTを試すことができます。
Auto-GPT用のvenv仮想環境の構築
今回はホームディレクトリにvenv_auto-gptというディレクトリを作ってAuto-GPT用のvenv仮想環境にしてみます。ディレクトリ名はなんでも構いません。
venv仮想環境のディレクトリを用意
以下のvenv仮想環境の作成や仮想環境を有効にすることについては、DockerでAuto-GPTをインストールする場合は不要です。ちなみに作成・有効にしてもなんら問題はありません。
ホームディレクトリにvenv_auto-gptディレクトリを作成
cd ~
mkdir venv_auto-gpt
venv仮想環境を作成
cd venv_auto-gpt
python -m venv .venv
次に、作成した.venvに入り中身を確認します。bin、lib、includeなどが確認できます。
venv仮想環境を確認
ls -F .venv
bin/ include/ lib/ pyvenv.cfg
venv仮想環境を有効にする
以下のコマンドで、先程作成したAuto-GPT用のvenv仮想環境を有効にします。
source .venv/bin/activate
venv仮想環境の抜け方はdeactivateコマンドです。
deactivate
pip listでインストールされているpipを見てみましょう。下のようにpipとsetuptoolsのみインストールされていますので、仮想環境の初期状態であることが確認できます。
pip list
Package Version
---------- -------
pip 23.0.1
setuptools 65.5.0
[notice] A new release of pip is available: 23.0.1 -> 23.2
[notice] To update, run: pip install --upgrade pip
次に、pipコマンドをアップデートしておきます。
pip install --upgrade pip
ディレクトリに入ったときに自動的にvenv仮想環境が有効にするためには、direnvを使うと便利です。下の記事を参考にしてください。
これでvenv仮想環境の準備は整ったので、Auto-GPTをインストールしていきます。
Auto-GPTのインストール
Auto-GPTの公式githubを参考にインストールしていきます。
リポジトリの取得とインストール
作成したvenv仮想環境のvenv_auto-gptにいることを確認して、Auto-GPTIのソースコードをgit cloneします。リポジトリの取得はDockerあり・なしの違いはありません。
~/venv_auto-gptにいることを確認
pwd
/Users/user/venv_auto-gpt
git cloneでstableのソースコードの取得
git clone -b stable https://github.com/Significant-Gravitas/Auto-GPT.git
ls -F
Auto-GPT/
Auto-GPTの設定
Auto-GPTの設定ファイルは、Auto-GPT/.envです。.envのテンプレートである.env.templateをコピーして使います。.envの作成と設定もDockerあり・なしの違いはありません。
設定ファイルのテンプレをコピー
cd Auto-GPT
cp .env.template .env
.envには多くの設定項目があります。
次に、設定ファイルの項目を見てみましょう。
【1】.envのGENERAL SETTINGS
GENERAL SETTINGSは、Auto-GPTの一般的な設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
OPENAI_API_KEY | ○ | OpenAI APIキー(取得はこちら) | |
EXECUTE_LOCAL_COMMANDS | – | シェルコマンドをローカルで実行するか | False |
RESTRICT_TO_WORKSPACE | – | ファイル操作をワークスペース ./auto_gpt_workspace に制限する | True |
USER_AGENT | – | ユーザーエージェントを定義する | 下記参照 |
AI_SETTINGS_FILE | – | AI設定ファイル | ai_settings.yaml |
PLUGINS_CONFIG_FILE | – | プラグイン設定ファイル | plugins_config.yaml |
PROMPT_SETTINGS_FILE | – | プロンプト設定ファイル | prompt_settings.yaml |
OPENAI_API_BASE_URL | – | OpenAI API用のカスタムURL | blank |
OPENAI_FUNCTIONS | – | Function callingを有効にする 選択するモデルに ‘-0613’をつける | False |
AUTHORISE_COMMAND_KEY | – | コマンドを許可するキー | y |
EXIT_KEY | – | 終了するキー | n |
PLAIN_OUTPUT | – | プレーンな出力(スピナー無効) | False |
DISABLED_COMMAND_CATEGORIES | – | 無効にするコマンドのカテゴリ |
USER_AGENTのデフォルト値
Chromeのバージョンも古い設定なので、気になる方は最新のUAに設定しましょう。
USER_AGENTのデフォルト値
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
この記事で設定する項目と内容
項目 | 設定内容 |
---|---|
OPENAI_API_KEY | 取得したOpen AIのAPIキー |
USER_AGENT | “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36” |
【2】.envのLLM PROVIDER設定
次にLLM PROVIDERの設定です。LLM(Large Language Models)の基本的な最低限の設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
TEMPERATURE | – | OpenAIのtemperatureの設定(下記参照) | 0 |
OPENAI_ORGANIZATION | – | None | |
USE_AZURE | – | False | |
AZURE_CONFIG_FILE | – | azure.yaml |
OpenAIのtemperatureの設定
高い値ほど出力をよりランダムにしますが、低い値はより確定的な出力になります。
値の範囲は0から2で、高い値ほど出力をよりランダムにしますが、低い値はより確定的な出力になります。0の場合は、ほぼ毎回、同じ回答になります。高くしすぎるとランダム性が高くなり意味がわかりにくくなる場合もあります。
今回は、TEMPERATUREは1に設定してみます。
この記事で設定する項目と内容
項目 | 設定内容 |
---|---|
TEMPERATURE | 1 |
【3】.envのLLM MODELS設定
LLM MODELSは、モデルの最低限の設定項目ですね。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
SMART_LLM | – | Smart language modelの指定 | gpt-4 |
FAST_LLM | – | Fast language modelの指定 | gpt-3.5-turbo |
EMBEDDING_MODEL | – | 埋め込み作成に使用するモデル | False |
【4】.envのSHELL EXECUTION設定
SHELL EXECUTIONは、シェルコマンドの実行を許可、拒否するための設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
SHELL_COMMAND_CONTROL | – | allowlistとdenylistのどちらを使って シェルコマンドの実行を許可するか。 | denylist |
SHELL_DENYLIST | – | SHELL_COMMAND_CONTROLが denylistに設定されている場合、 Auto-GPTで実行を拒否するコマンド | sudo,su |
SHELL_ALLOWLIST | – | SHELL_COMMAND_CONTROLが allowlistに設定されている場合、 Auto-GPTで実行可能なコマンド | None |
【5】.envのMEMORY設定
MEMORYは、Auto-GPTが取得したデータをどのようにストアするかの設定です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
MEMORY_BACKEND | – | メモリバックエンドの形式 | json_file |
MEMORY_INDEX | – | メモリバックエンドに使用される名前 | auto-gpt |
REDIS_HOST | – | Redis host | localhost |
REDIS_PORT | – | Redis port | 6379 |
REDIS_PASSWORD | – | Redis password | “” |
WIPE_REDIS_ON_START | – | スタート時にREDISデータをWIPEするか | True |
ざっくりREDISとは
Redisはリモートディクショナリサーバーの略で、オープンソースで高速なインメモリのkey-valueデータストア。
key-valueデータストアですが、複雑なデータも扱えて、メモリ上でデータを管理するため、高速にデータへアクセスできるのが特徴。
【6】.envのIMAGE GENERATION PROVIDER設定
IMAGE GENERATION PROVIDERは、画像を生成する場合の設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
IMAGE_PROVIDER | – | Image providerを設定 | dalle |
IMAGE_SIZE | – | Image sizeを設定 | 256 |
HUGGINGFACE_IMAGE_MODEL | – | IMAGE_PROVIDER=huggingface とした場合の、 Text-to-image modelを指定 | CompVis/stable-diffusion-v1-4 |
HUGGINGFACE_API_TOKEN | – | HuggingFace API tokenを設定 | None |
SD_WEBUI_AUTH | – | Stable Diffusion Web UIの username:passwordのペアを設定 | None |
SD_WEBUI_URL | – | Stable Diffusion Web UIのURLを設定 | http://localhost:7860 |
ちなみに、Stabule diffusion web UIのインストールや設定については下の記事をぜひご覧ください。
【7】.envのAUDIO TO TEXT PROVIDER設定
AUDIO TO TEXT PROVIDERは、音声からテキストを生成する場合の設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
AUDIO_TO_TEXT_PROVIDER | – | Audio-to-text providerの設定 | huggingface |
HUGGINGFACE_AUDIO_TO_TEXT_MODEL | – | HuggingFaceを使う場合のモデルの設定 | CompVis/stable-diffusion-v1-4 |
【8】.envのGITHUB設定
GITHUBは、GitHubにアクセスする際の設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
GITHUB_API_KEY | – | GithubのAPI key | None |
GITHUB_USERNAME | – | Githubのユーザー名 | None |
【9】.envのWEB BROWSING設定
WEB BROWSINGは、Auto-GPTがブラウジングする際の設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
HEADLESS_BROWSER | – | ヘッドレスモードでの実行 | True |
USE_WEB_BROWSER | – | seleniumで使用する ブラウザドライバ | chrome |
BROWSE_CHUNK_MAX_LENGTH | – | サイトを要約する チャンクの長さ | 3000 |
BROWSE_SPACY_LANGUAGE_MODEL | – | spaCyでトークナイズする言語 | en_core_web_sm |
GOOGLE_API_KEY | – | Google API key | None |
GOOGLE_CUSTOM_SEARCH_ENGINE_ID | – | Google custom search engine ID | None |
この記事で設定する項目と内容
項目 | 設定内容 |
---|---|
GOOGLE_API_KEY | 取得したAPIキー |
GOOGLE_CUSTOM_SEARCH_ENGINE_ID | サーチエンジンID |
【10】.envのTEXT TO SPEECH PROVIDER設定
TEXT TO SPEECH PROVIDERは、Auto-GPTが音声生成する際の設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
TEXT_TO_SPEECH_PROVIDER | – | SPEECH_PROVIDERの設定 | gtts |
STREAMELEMENTS_VOICE | – | 使用する音声 | Brian |
ELEVENLABS_API_KEY | – | elevenlabsを使う場合の Eleven LabsのAPI key | None |
ELEVENLABS_VOICE_ID | – | Eleven Labsのvoice ID | None |
【11】.envのCHAT MESSAGES設定
CHAT MESSAGESは、チャットメッセージを有効にする際の設定項目です。
設定項目 | 必須 | 説明 | デフォルト |
---|---|---|---|
CHAT_MESSAGES_ENABLED | – | Enable chat messages | False |
Auto-GPTを起動する(Dockerなし)
Dockerを使わずにAuto-GPTを起動する方法です。
以下のコマンドでAuto-GPT用のvenv仮想環境を有効にしておきます。
source .venv/bin/activate
では、早速Auto-GPTを起動してみましょう。
Auto-GPTの起動
Auto-GPT用の仮想環境が有効になっている状態で、下のコマンドを実行します。
まずは初回起動のテストも兼ねて、--gpt3onlyを指定して起動します。
sh ./run.sh --gpt3only
GPT3.5 Only Mode: ENABLEDとあるので、--gpt3onlyで起動しGPT3.5が有効になっています。
また、デフォルトでは起動時に上の画像ようにNEWSが表示されます。NEWSはAuto-GPTのアップデート等が表示されます。NEWSを表示したくない場合は、--skip-newsを指定して起動します。
Auto-GPTを起動する(Dockerを利用)
Dockerを使ったAuto-GPTの起動方法です。Dockerなしの場合は不要です。
Docker Desktopを起動する
LaunchpadからDocker Desktopを起動します。Dockerをインストールしていない方はインストールして起動します。
もしくは、下のようにコマンドラインから起動することもできます。
open -a Docker
Auto-GPTのDockerイメージを作成する
compose.ymlに従い、Dockerイメージを作成します。compose.ymlはgit pullしたままのファイルを使います。
デフォルトのAuto-GPT/compose.yml
version: "3.9"
services:
auto-gpt:
build: ./
env_file:
- .env
volumes:
- ./:/app
- ./docker-compose.yml:/app/docker-compose.yml:ro
- ./Dockerfile:/app/Dockerfile:ro
profiles: ["exclude-from-up"]
docker compose buildします
docker compose build auto-gpt
Auto-GPTのコンテナを作成して起動する
docker compose runします
docker compose run --rm auto-gpt --gpt3only
Auto-GPTの起動オプション
上の例では、起動オプションに--gpt3onlyを指定しました。--gpt3onlyは、GPT3.5のみを使用するオプションです。その他の起動オプションは下のようになります。
起動オプション(省略) | 起動オプション | 説明 |
---|---|---|
-c | --continuous | 連続モードを有効にする |
-y | --skip-reprompt | 再プロンプトメッセージをスキップする |
-C | --ai-settings TEXT | ai_settings.yamlをAuto-GPT ルートディレクトリ からの相対パスで指定する |
-P | --prompt-settings TEXT | 使用するprompt_settings.yamlを指定する |
-l | --continuous-limit INTEGER | 連続モードで実行する回数を指定する |
--speak | Speakモードを有効にする | |
--debug | dubugモードを有効にする | |
--gpt3only | GPT3.5を使用するモード | |
--gpt4only | GPT4を使用するモード | |
-m | --use-memory TEXT | どのメモリバックエンドを使用するか指定する |
-b | --browser-name TEXT | seleniumを使用して スクレイピングする際のブラウザを指定する |
--allow-downloads | 注意: Auto-GPTがネイティブにファイルを ダウンロードできるようにする。 | |
--skip-news | 起動時に最新ニュースの表示をスキップする | |
--install-plugin-deps | サードパーティプラグインの 外部依存関係をインストール | |
--ai-name TEXT | AI名の上書きする | |
--ai-role TEXT | AIの役割の上書きする | |
--ai-goal TEXT | AIのゴールを上書きする |
最後に
最後まで読んでいただきありがとうございます。Auto-GPTをM1/M2のMacで試すはいかがでしたでしょうか。
画像生成AIのStable diffusionと連携も可能なので別の機会にそのあたりを試したいと思います。
ChatGPT関連の別の記事
公式ChatGPTのMac用デスクトップアプリを使う
OpenAIライブラリ1系の変更点
neovimでChatGPT
PythonでChatGPTのAPI
MacでChatGPT
MacでChatGPT
VSCodeでChatGPT
LinuxのターミナルからChatGPT
PythonでGPT-3