Spaces:
Sleeping
Sleeping
import argparse | |
import pickle | |
import threading | |
import time | |
import os | |
import sys | |
from filelock import FileLock | |
from runner.playground_runner import PlaygroundPipelineRunner | |
argparser = argparse.ArgumentParser(description='Run the game') | |
argparser.add_argument('--game', type=str, default='RaceGame', help='Game to play') | |
argparser.add_argument('--level', type=int, default=1, help='Level to play') | |
argparser.add_argument('--action_file', type=str, default='', help='File to store actions') | |
argparser.add_argument('--game_id', type=str, default='', help='Game id') | |
argparser.add_argument('--sample_rate', type=int, default=3, help='Sample rate for actions') | |
argparser.add_argument('--history_steps', type=int, default=3, help='Number of history steps to keep') | |
argparser.add_argument('--model_name', type=str, default='', help='Name of the model to use') | |
argparser.add_argument('--base_url', type=str, default='', help='Base URL for the game server') | |
argparser.add_argument('--api_key', type=str, default='', help='API key for authentication') | |
args = argparser.parse_args() | |
game = args.game | |
level = args.level | |
action_file = args.action_file | |
game_id = args.game_id | |
output_dir = os.path.join(".", "runs", game_id) | |
sample_rate = args.sample_rate | |
history_steps = args.history_steps | |
base_url = args.base_url | |
api_key = args.api_key | |
print(f"Starting game: {game} at level {level}") | |
print(f"Action file: {action_file}") | |
print(f"Game id: {game_id}") | |
params = { | |
"model_path": args.model_name, | |
"base_url": base_url, | |
"api_key": api_key | |
} | |
stop_event = threading.Event() | |
stop_event.clear() | |
runner = PlaygroundPipelineRunner( | |
game=game, | |
level=level, | |
history_steps=history_steps, | |
action_file=action_file, | |
game_id=game_id, | |
stop_event=stop_event, | |
params=params, | |
sample_rate=sample_rate | |
) | |
runner.run() | |
stop_event.set() | |
run_lock = FileLock(os.path.join(".", "runs", "run.lock")) | |
with run_lock: | |
os.system(f"rm -rf {output_dir}") |