見出し画像

【Dockerでワンパン】PokéLLMonを動かしてみる

PokéLLMonは、ポケモンバトルのゲームにおいて、人間並みのパフォーマンスを実現する最初のLLM(Large Language Model)を体現したエージェントです。この記事では、PokéLLMonを実際に動かすための手順を初心者向けに解説します。Dockerを使用して環境を構築し、ローカルでヒューリスティックボットと対戦する方法までを説明します。


こちらの記事もおすすめ


環境構築

まずは、PokéLLMonを動かすための環境を構築することから始めます。Dockerを活用することで、環境依存を最小限に抑えることができます。

Dockerイメージの構築

以下の`Dockerfile`を使用して、必要な環境を構築します。PythonとNode.jsがプリインストールされたイメージをベースにして、PokéLLMonの動作に必要なパッケージをインストールします。

# Python 3.11とNode.js 21を含むイメージをベースに使用
FROM nikolaik/python-nodejs:python3.11-nodejs21

# 必要なツールをインストール
RUN apt-get update && apt-get install -y git curl

# アプリケーションディレクトリを作成
WORKDIR /usr/src/app

# pokemon-showdownリポジトリをクローンし、必要な依存関係をインストール
RUN git clone https://github.com/smogon/pokemon-showdown.git 
WORKDIR /usr/src/app/pokemon-showdown
RUN npm install
RUN cp config/config-example.js config/config.js

# PokéLLMon環境の依存関係をインストール
COPY requirements.txt .
RUN pip install -r requirements.txt

# アプリケーションがリッスンするポートを指定
EXPOSE 8000
# アプリケーションを起動するコマンド
CMD [ "node", "pokemon-showdown", "start", "--no-security" ]

Docker Composeを使用したサービスの起動

次に、`docker-compose.yml`ファイルを使用して、サービスを定義します。このファイルを通じて、ポートの設定や環境変数の指定を行います。

version: '3'

services:
  pokemon-showdown:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8000:8000"
    volumes:
      - .:/usr/src/app/PokeLLMon
    tty: true
    env_file:
      - .env

OpenAI APIの設定

GPT-4 APIを https://platform.openai.com/account/api-keys から取得します。

プレイヤーの設定

https://play.pokemonshowdown.com/ でアカウントに登録し、パスワードを取得します。

アカウント登録方法はこちら👇


環境変数の設定

`.env`ファイルには、PokéLLMonを動かすために必要な環境変数を設定します。

USERNAME=XXXX
PASSWORD=YYYY
OPENAI_API_KEY=sk-ZZZZ

これらの環境変数は、PokéLLMonを実行する際に、ユーザー認証やOpenAIのAPIを使用するために必要です。

PokéLLMonの起動と対戦

環境構築が完了したら、PokéLLMonを起動し、ポケモンバトルを楽しむことができます。

コンテナの起動

以下のコマンドを実行して、Dockerコンテナをビルドし、起動します。

docker-compose up --build

コンテナ内での操作

コンテナが起動したら、以下のコマンドでコンテナ内に移動します。

docker-compose exec pokemon-showdown /bin/bash

`PokeLLMon`のフォルダに移動します

root@0efdf8c76f75:/usr/src/app/pokemon-showdown# cd ../PokeLLMon/
root@0efdf8c76f75:/usr/src/app/PokeLLMon#

ヒューリスティックボットとの対戦

最後に、以下のコマンドを実行して、ローカルでヒューリスティックボットと対戦します。この時、あなたのユーザー名とパスワードを入力する必要があります。

python vs_bot.py

バトルの可視化

下記の場所にHTMLがあるので、それを開きましょう。
`PokeLLMon\battle_log\pokellmon_vs_ladder_player\win`

バトル動画



まとめ

これで、PokéLLMonを使用してポケモンバトルを楽しむ準備が整いました。
ポケモンバトルで勝利を目指して、頑張ってください!

Docker調整済みリポジトリ


いいなと思ったら応援しよう!