分散型AIサービス Olas の AI Mech ハンズオン
分散型AIサービスである Olas が提供するAIマーケットプレイス AI Mech
を実際に使用してみたので、その手順をハンズオン形式でご紹介します。
本記事では、AI Mechにメッセージを送信し、レスポンスを得るまでの一連の流れを解説します。
ちなみに、本記事の内容は Valory による解説動画とリポジトリを大いに参考にしていますので、ぜひ覗いてみてください。
AI Mechとは
Mechは、自動で動作するサービスで、ブロックチェーン上のリクエストを受け取り、それに応じた処理をオフチェーンで実行します。これらの処理には少額の支払いが伴います。リクエストは通常、LLM(大規模言語モデル)に関するもので、その他の一般的な処理も含まれます。リクエストのメタデータはIPFSに保存され、そのハッシュが支払いを管理するスマートコントラクトに記録されます。Mechは、あなたのアプリケーションのために必要なときに使える頭脳のようなものと考えることができます。(上記 Olas のページより)
ざっくりと言えば、Olas が提供するインフラを利用している LLM 群に対して、トークンを支払うことで、タスク実行を依頼できるサービスです。
事前準備
AI Mech にメッセージを送信するためには、いくつかの準備が必要です。
- Wallet の作成
AI Mech を利用する際の支払いはトークンで行うため、支払い用の Wallet を準備します。
今回は Metamask で作成した Wallet を使用します。
- xDAI の入金
ブロックチェーンには Gnosis を使用するため、支払いには xDAI を利用します。
詳細は以下のリンクを参照してください。
今回は ETH -> DAI -> xDAI
という手順で xDAI を準備しました。
-
ETH -> DAI
: INTMAX Wallet を使ってスワップ -
DAI -> xDAI
: Gnosis の Bridge を使ってブリッジ
また、メッセージ送信に必要な xDAI の量は 0.05 xDAI 程度で十分です。
mech-clientのインストール
次に、AI Mech にメッセージを送信するためのクライアント mech-client をインストールします。
ここでは Python のパッケージ管理ツール Poetry を使用します。
poetry mech-example
cd mech-example
poetry shell
poetry add mech-client
次に、mech-client に今回使用する Wallet の情報を登録します。
以下のコマンドで、YOUR_PRIVATE_KEY
に Wallet のプライベートキーを設定して実行します。
echo -n YOUR_PRIVATE_KEY > ethereum_private_key.txt
AI Mechにメッセージを送信
インストールが完了したら、AI Mech にメッセージを送信してみましょう。
まず、Gas Limit を事前に上げておきます。
mech-client はデフォルトの Gas Limit として 100000 = 1 GWei を設定しています。
ただ、Gnosis の Gas Price が 1 GWei を超えることがあるため、設定を変更します。
Gnosis の Gas Price は以下の Gas Tracker から確認できます。
Gas Limit を含む mech-client の設定は configs/mechs.json に記載されています。
PyPi からインストールした mech-client の設定を変更するには、対応する環境変数を設定する必要があります。詳細は以下を参照してください。
Gas Limit を 200000 に変更するには、以下のコマンドを実行します。
export MECHX_GAS_LIMIT=200000
それでは、AI Mech にメッセージを送信してみましょう。
interact
コマンドを使用して、AI Mech のエージェントにメッセージを送信します。構文は以下の通りです。
mechx interact <prompt> <agent_id> [OPTIONS]
各オプションの概要は以下の通りです。
オプション | 利用目的 | コマンドでの設定値 |
---|---|---|
--key | トークンを支払う Wallet のアドレスを記載したテキストファイルのパスを設定する。 | --key ./ethereum_private_key.txt |
--tool | Agent が利用するツールを指定する。 | --tool openai-gpt-4 |
--chain-config | 利用する Chain を指定する。 | --chain-config gnosis |
--confirm | どこからレスポンスがあれば処理をリクエストを終了とするかを指定する。 | --confirm on-chain |
オプションの詳細はこちら。
今回利用する Agent が利用できるツールは、IPFS にアップロードされているテキストから確認できます。
mechx interact "write a short poem of Tokyo, Japan" 6 --key ./ethereum_private_key.txt --tool openai-gpt-4 --chain-config gnosis --confirm on-chain
Chain configuration: gnosis
Sending request...
Prompt uploaded: https://gateway.autonolas.tech/ipfs/f017012208100026830ef672fcc7de974ddd8ba535565c686c2381860ff3c167c024c1bab
Transaction sent: https://gnosisscan.io/tx/0xfc23c8134ebaa04069d12438e6c1acd4150bd509f896123370df80a96ab28a16
Waiting for transaction receipt...
Created on-chain request with ID 29308410473289109545571513413105334958194730283405825217473026771068923712621
Waiting for Mech response...
Data arrived: https://gateway.autonolas.tech/ipfs/f0170122083c649aeea4a8cf486beb5149e45232ce46224b1803ac5b818bbfe2c0a4174c7
Data from agent: {'requestId': 29308410473289109545571513413105334958194730283405825217473026771068923712621, 'result': "In Tokyo's heart, where neon lights do bloom,\nUnder the watchful gaze of the moon.\nSkyscrapers standing, tall and grand,\nIn this vibrant, fast-paced land.\n\nCherry blossoms dance in springtime air,\nA sight of beauty beyond compare.\nThe Sumida river, a silver thread,\nWhere ancient and modern blend and tread.\n\nSushi, ramen, a culinary quest,\nIn Tokyo, only expect the best.\nThe whispers of the past in Meiji Shrine,\nIn every corner, history intertwines.\n\nA city that never truly sleeps,\nWhere tradition its sacred vigil keeps.\nTokyo, Japan, in splendor and might,\nA beacon burning in the night.", 'prompt': 'write a short poem of Tokyo, Japan', 'cost_dict': {}, 'metadata': {'model': None, 'tool': 'openai-gpt-4', 'params': {}}}
Data from agent:
が表示されれば成功です!
今回実行されたトランザクションは以下のGnosis Scanから確認できます。
Discussion