bookmark_border[AutoGPT] Dockerでインストールする手順

流れ

これだけです。

  1. docker pull significantgravitas/auto-gpt
  2. docker-compose.yml, .envの作成
  3. docker-compose run

ご活用頂く場合は自己責任にて。少なくともChatGPTのAPI使用料と、他にAPIを使う場合はその費用がかかります。

https://github.com/Significant-Gravitas/Auto-GPT の内容を参考にしています。

まだなら:Dockerのインストール

Docker Desktop をインストールし、起動しておきます。

Dockerイメージのダウンロード

Docker Desktopが起動している状態で、ターミナルやコマンドプロンプトなどからこのコマンドを打ちます。

docker pull significantgravitas/auto-gpt

作業用ディレクトリの作成

デスクトップやその他のディレクトリに自由に作成します。今回はデスクトップにautogptというディレクトリを作った想定で進めます。

mkdir ~/Desktop/autogpt

docker-compose.ymlの作成

今作ったばかりの作業用ディレクトリにdocker-compose.ymlを作成。

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/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"

.envの作成

同じディレクトリに.envファイルを作成する。テンプレートはこちら。

https://github.com/Significant-Gravitas/Auto-GPT/blob/master/.env.template

.envには少なくとも下記のようにOpenAIのAPIキーを記述する必要があります。

OPENAI_API_KEY=sk-.......

実行

下記のコマンドでコンテナを実行します。

cd 作った作業用ディレクトリ
docker-compose run --rm auto-gpt

# gpt3だけを使う。ユーザーの確認無しでどんどん進める場合はこちら
# docker-compose run --rm auto-gpt --gpt3only --continuous

この時点でDocker DesktopのContainersの画面に、作業用ディレクトリの名前の項目が1つできているはずです。

動かしてみる

ターミナルがこのような画面になるので、そのままEnterで続けます。

–manual と入れる

I want Auto-GPT to: と尋ねられます。ここでAutoGPTの紹介でよく見る Goal1, Goal2…というものを入力したいときは –manual とここで入れます。

もちろんそうせずタスクのゴールを書いてもかまいません。その場合はその Goal1, Goal2…が自動で設定されるイメージです。

AI Nameの命名

今回は試しにJavaで書いたコードから要件を推察してもらうことにします。

FizzBuzzが書かれたFizzBuzz.javaを auto_gpt_workspace ディレクトリに置いておきます。.envで設定したとおり、docker runの時点で作業用ディレクトリには auto_gpt_workspace というディレクトリが生成+マウントされ、Auto-GPTはこのディレクトリにアクセスが可能です。

タスクに合わせて自分でAIを命名して「AI Name」に入力します。今回は「Amazing Java code analyzer」(すごいJavaコード分析者)とします(ださい)。

何をしてほしいか、最終的なゴールを伝える

必要なのはやってほしいことを簡潔に伝えることで、仮にこれが最終的なゴールでなくても動きます。

今回は「Read FizzBuzz.java, infer what requirements the code was written under, and itemize them.」(FizzBuzz.javaを読んで、どんな要件のもと書かれたコードなのかを推察し、箇条書きにする。) と入れEnter。

最終的なゴールに導く小タスクを列挙する

今回はこのようにしました。

  1. FizzBuzz.javaを読んで、このコードがどのような要件の下で書かれたかを推測し、それを箇条書きにする。
  2. それのPython版を作成する。

最大5件入れられます。今回のように5件未満の場合は空文字列のままEnterです。

予算上限を入れる

このタスクを実行するにあたってAPIにかけられる金額の上限を設定できます。目安の認識で入れると良いでしょう。今回は$1と設定します。

とはいえこの記事を執筆するのに数回実行し、かかったのは$0.04です。(2023年05月現在、GPT3.5のみの使用)

動き始める

自立型AIと呼ばれるAutoGPTですが、次に何をするか逐一提案してくれるのが特徴です。

提案内容が良ければそのまま y と打ってEnterで承認します。別のことをしてほしければ、 Input: にその旨自然言語の形で指示を書きEnterです。

このとき、例えば y -10 と入れるとこの先10回自動で承認したことになります。

n と打つとその場でAutoGPTごと終了します。(dockerのrun自体が終了する)

AutoGPTがタスクを進めるとき、すぐ y -100 などとはせずうまく動いているか目視で確認することをおすすめします。時折タスクが前に進まないことがあり、そのときは一度終了してプロンプトを考え指示を自分で与えたり停止したりなどの操作が必要です。

完了

最終的にPythonのコードが返ってきました。生成されたコードも問題なく実行できます。

THOUGHTS:  Now that I have analyzed the FizzBuzz.java code, I can determine its requirements. I will create a Python implementation based on those requirements. (FizzBuzz.javaのコードを分析したことで、その要件を判断することができるようになりました。その要件に基づいてPythonの実装を作成することにします。)

REASONING:  I have analyzed the FizzBuzz.java code and determined that it is a simple program that prints numbers from 1 to 100, replacing multiples of 3 with ‘Fizz’, multiples of 5 with ‘Buzz’, and multiples of both 3 and 5 with ‘FizzBuzz’. I can create a Python implementation based on these requirements.(FizzBuzz.javaのコードを分析した結果、1から100までの数字をprintし、3の倍数を「Fizz」、5の倍数を「Buzz」、3と5の両方の倍数を「FizzBuzz」に置き換える単純なプログラムであると判断しました。これらの要件に基づいて、Pythonの実装を作成できます。)


Dockerイメージとても楽でありがたい限りです。ご活用頂く場合は自己責任にて。

bookmark_border自然の景色の呪文・プロンプト30例 [Stable Diffusion]

海、水辺

澄み切った湖が空の色に映える夕暮れ

stunning sunset scene, a crystal-clear lake reflecting the vibrant colors of the sky


曲がりくねった川、緑豊かな森、鮮やかな空、山

mountain landscape, a winding river, lush green forests, a vibrant sky


カラフルな家々、灯台、海を見下ろす断崖絶壁が続く海辺の村

seaside village, colorful houses, a lighthouse, dramatic cliffs overlooking the ocean


白砂のビーチ、ヤシの木があるトロピカルアイランドパラダイス

tropical island paradise, white sandy beaches, palm trees


砂丘、ラクダ、オアシスなど、広大な砂漠の風景

mystical winter wonderland, a snow-covered village, ice-skating rink, a backdrop of majestic snow-capped mountains


滝が澄んだプールに流れ込み、緑豊かな植物と色とりどりの花々に囲まれた壮大な空間

majestic waterfall cascading into a crystal-clear pool, surrounded by lush vegetation and colorful flowers


橋、水車、野草の咲く川辺

peaceful riverside scene, a covered wooden bridge, a watermill, and wildflowers in bloom


花が咲き、鳥が歌う秘密の庭へと続く蔦に覆われた橋

vine-covered bridge leading to a secret garden, blooming flowers and singing birds


水晶のように透き通った湖、素朴なキャビン、野生の花がある静かなアルプス

alpine landscape, a crystal-clear lake, a rustic cabin, and wildflowers in the foreground


珊瑚礁に、色とりどりの海の生き物や水中植物が生息している

lively coral reef teeming, colorful marine life and underwater plants


シダ類で覆われた苔むした森、せせらぎ、木漏れ日

idyllic scene, a mossy forest, carpet of ferns, a babbling brook, dappled sunlight


鮮やかな紅葉、小川のせせらぎ、柔らかな黄金色の木漏れ日が織りなす、秋の森

autumn forest, vibrant leaves, a babbling brook, a soft, golden sunlight filtering through the trees


透き通った水が滑らかな石の上を流れ、緑豊かな木々に囲まれた静かな森の小川

tranquil forest stream, crystal-clear water flowing over smooth stones, surrounded by lush greenery


葺き屋根、カラフルな庭、煙突から静かに立ち上る煙がある森のコテージ

forest cottage, a thatched roof, a colorful garden, smoke gently rising from the chimney


静かな水面に木々が映り込み、蓮の葉の間をゆっくり泳ぐアヒルがいる穏やかな森の池

peaceful forest pond, reflections of trees on the still water, ducks swimming lazily among the lily pads


木々に囲まれ、カラフルな秋の葉のじゅうたんに包まれた、居心地の良い森の小屋

cozy woodland cabin, nestled among the trees, surrounded by a carpet of colorful autumn leaves


丘、山、丘陵

なだらかな丘、放牧された羊、伝統的な茅葺き屋根のコテージなど、のどかな田園風景

idyllic countryside scene, rolling hills, grazing sheep, traditional thatched-roof cottage.


アカシアの木、草を食む動物、炎のような夕日がある魅力的なサバンナ

captivating savannah landscape, acacia trees, grazing animals, fiery sunset


雪をかぶった山々、透き通った湖、前景に美しい野生の花々がある壮観な山

stunning mountain vista, snow-capped peaks, a crystal-clear lake, vibrant wildflowers in the foreground


カラフルな空と雲海が広がる、太陽が昇る瞬間の息をのむような山稜線

mountain ridge at sunrise, a colorful sky, sea, clouds below


山頂に立ち、下に広がる壮大な景色を見つめる3人のハイカー

inspiring scene of 3 hikers standing atop a mountain peak, gazing at the vast landscape below


石造りの家々、石畳の道、花々に囲まれた中央広場がある魅力的な山村

captivating scene of an ancient mountain, shrouded in mist, stone lanterns, a tranquil garden


カラフルな畑のパッチワークの上を飛ぶ熱気球の絵画

picturesque, hot air balloons floating over a patchwork, vibrant fields


太陽に向かって伸びる鮮やかな黄色い花が並ぶひまわり畑の活気あるシーン

vibrant scene, sunflower field, bright yellow flowers stretching towards the sun, clear blue sky


満開のラベンダー畑と、花の癒やしの香りを運ぶそよ風

tranquil scene, lavender field, full bloom, gentle breeze, carrying the soothing scent, flowers


さまざまな作物の畑が広がるパッチワークのような田園風景、曲がりくねった土の道、草を食む動物

idyllic countryside, landscape, patchwork fields of various crops, a winding dirt road, grazing animals


都市

自然をメインに挙げてきましたがせっかくなので。

夕暮れの街並み、高層ビル群、夕陽の暖かな色彩

vibrant city skyline at dusk, skyscrapers reflecting the warm hues of the setting sun


高層ビルがそびえ立ち、歩行者や車でにぎわう通りがある活気に満ちた都市

bustling cityscape, towering skyscrapers, busy streets filled, pedestrians , vehicles, a vibrant atmosphere


革新的な建築、浮遊する構造物、先進的な交通システムがある未来都市

futuristic city, innovative architecture, floating structures, advanced transportation systems


歩行者、自転車、車両が賑やかな通りを行き交う、混雑した都市の交差点

busy urban intersection, a mix of pedestrians, bicycles, vehicles navigating through the bustling streets

日本

池、鯉、木橋、桜のある静かな日本庭園。

tranquil Japanese garden, a pond, koi fish, a charming wooden bridge, cherry blossoms


ネオンサインと広告がきらめく東京の渋谷交差点で、街を行き交う大勢の歩行者がいる風景

Shibuya Crossing, Tokyo, sea of pedestrians, crossing the street under a dazzling array, neon signs, advertisements