CoolFace
Apppublic

RutujaPatil29/gridworld-env

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
inference.py65 linesDownload Raw Back to root
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()