PokéLLMon 源码解析(六)(4)

简介: PokéLLMon 源码解析(六)

PokéLLMon 源码解析(六)(3)https://developer.aliyun.com/article/1483747

.\PokeLLMon\vs_local_player.py

# 导入必要的库
import asyncio
from poke_env import AccountConfiguration, ShowdownServerConfiguration
from poke_env.player import LLMPlayer
import pickle as pkl
from tqdm import tqdm
import argparse
import os
# 创建命令行参数解析器
parser = argparse.ArgumentParser()
parser.add_argument("--backend", type=str, default="gpt-4-0125-preview", choices=["gpt-3.5-turbo-0125", "gpt-4-1106-preview", "gpt-4-0125-preview"])
parser.add_argument("--temperature", type=float, default=0.8)
parser.add_argument("--prompt_algo", default="io", choices=["io", "sc", "cot", "tot"])
parser.add_argument("--log_dir", type=str, default="./battle_log/pokellmon_vs_invited_player")
args = parser.parse_args()
# 异步函数,用于执行主要逻辑
async def main():
    
    # 确保日志目录存在
    os.makedirs(args.log_dir, exist_ok=True)
    
    # 创建 LLMPlayer 实例
    llm_player = LLMPlayer(battle_format="gen8randombattle",
                           api_key="Your_openai_api_key",
                           backend=args.backend,
                           temperature=args.temperature,
                           prompt_algo=args.prompt_algo,
                           log_dir=args.log_dir,
                           account_configuration=AccountConfiguration("Your account", "Your_password"),
                           save_replays=args.log_dir
                           )
    
    # 禁用 Dynamax 功能以确保公平性
    llm_player._dynamax_disable = True
    
    # 在本地进行5场比赛
    for i in tqdm(range(5)):
        try:
            # 在排行榜上进行1场比赛
            await llm_player.ladder(1)
            # 保存每场比赛的数据
            for battle_id, battle in llm_player.battles.items():
                with open(f"{args.log_dir}/{battle_id}.pkl", "wb") as f:
                    pkl.dump(battle, f)
        except:
            continue
# 程序入口
if __name__ == "__main__":
    # 运行主函数
    asyncio.get_event_loop().run_until_complete(main())
相关文章
|
5天前
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
|
13天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
42 0
|
13天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
43 0
|
14天前
yolo-world 源码解析(五)(4)
yolo-world 源码解析(五)
47 0
|
14天前
yolo-world 源码解析(五)(1)
yolo-world 源码解析(五)
61 0
|
14天前
yolo-world 源码解析(二)(2)
yolo-world 源码解析(二)
58 0
|
28天前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
55 1
|
2月前
|
存储 NoSQL 算法
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)(二)
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)
49 0
|
14天前
Marker 源码解析(二)(3)
Marker 源码解析(二)
18 0

推荐镜像

更多