import argparse import importlib import os import threading import time import pandas as pd from runner.game_runner import entry from utils.config import Config import configparser import os config = Config() def main(args): lmm_config = configparser.ConfigParser() lmm_config.read(args.llmProviderConfig) try: model_name = lmm_config.get('lmm', 'model_path') model_name = model_name.replace("/", "_") except: model_name = lmm_config.get('lmm', 'model_name') def get_args_parser(): parser = argparse.ArgumentParser("Cradle Agent Runner") parser.add_argument("--llmProviderConfig", type=str, default="./config/gpt_server_config.ini", help="The path to the LLM provider config file.") parser.add_argument("--gameEnvConfig", type=str, default="./config/env_config/env_config_race.json", help="The path to the environment config file.") parser.add_argument("--levelConfig", type=str, default="./config/level_config/racegame/level1.json", help="The path to the level config file.") parser.add_argument("--generationConfig", type=str, default="./config/generation_config.ini", help="The path to the swift generation config file.") parser.add_argument("--test_rounds", type=int, default=1, help="Rounds to test the game.") parser.add_argument("--output_dir", type=str, default="./runs", help="The path to output the results and log.") return parser def get_local_rank(): if "LOCAL_RANK" in os.environ: return int(os.environ["LOCAL_RANK"]) if "OMPI_COMM_WORLD_LOCAL_RANK" in os.environ: return int(os.environ["OMPI_COMM_WORLD_LOCAL_RANK"]) return None if __name__ == '__main__': local_rank = get_local_rank() if not local_rank or local_rank == 0: parser = get_args_parser() args = parser.parse_args() config.load_env_config(args.gameEnvConfig) config.load_level_config(args.levelConfig) main(args) else: print(local_rank) print("process killed.")