LoginSignup
25
17

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

file

バトル動画

まとめ

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

Docker調整済みリポジトリ

25
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
17