RutujaPatil29/gridworld-env
0
1from dotenv import load_dotenv
2import os
3from openai import OpenAI
4
5from tasks.task1 import load_task as t1
6from tasks.task2 import load_task as t2
7from tasks.task3 import load_task as t3
8
9# Load environment variables
10load_dotenv()
11
12API_BASE_URL = os.getenv("API_BASE_URL")
13MODEL_NAME = os.getenv("MODEL_NAME")
14HF_TOKEN = os.getenv("HF_TOKEN")
15
16# OpenAI client (required by competition)
17client = OpenAI(
18 base_url=API_BASE_URL if API_BASE_URL else "https://api.openai.com/v1",
19 api_key=HF_TOKEN if HF_TOKEN else "dummy-key"
20)
21
22def run_task(task_name, loader):
23 env = loader()
24 env.reset()
25
26 print("[START]")
27 print(f"Task: {task_name}")
28
29 done = False
30 max_steps = 50
31 step_count = 0
32
33 while not done and step_count < max_steps:
34 x, y = env.agent
35 gx, gy = env.goal
36
37 # Simple deterministic policy (safe + reliable)
38 if y < gy:
39 action = "RIGHT"
40 elif x < gx:
41 action = "DOWN"
42 else:
43 action = "RIGHT"
44
45 print("[STEP]")
46 print(f"Action: {action}")
47
48 state, reward, done = env.step(action)
49 step_count += 1
50
51 score = 1.0 if env.agent == env.goal else 0.0
52
53 print("[END]")
54 print(f"Score: {score}")
55 print() # spacing between tasks
56
57
58def main():
59 run_task("task1", t1)
60 run_task("task2", t2)
61 run_task("task3", t3)
62
63
64if __name__ == "__main__":
65 main()