AegisGym / scripts /baseline_inference.py
Armaansaini20
Refactor AegisGym to compliant structure, fix metadata 500 error, and improve grader logic.
8533d4f
Raw
History Blame Contribute Delete
1.96 kB
import os
from server import AegisGymEnv
from models import AuditAction
def main():
print("--- AegisGym Final Baseline Inference Simulation (Official API) ---")
env = AegisGymEnv()
obs = env.reset()
total_score = 0.0
episodes = 10
for i in range(episodes):
task_name = f"baseline_episode_{i+1}"
tier = env.state.current_tier
print(f"\nEpisode {i+1} | Tier: {tier.upper()}")
print(f"[START] task={task_name}", flush=True)
# Mocking an agent's decision based on the tier
if tier == "easy":
action = AuditAction(
action_type="FLAG",
target_id="ACC-BL-001",
regulation_citation="Sanctions List Match"
)
elif tier == "medium":
action = AuditAction(
action_type="FLAG",
target_id="ACC-SMURF-99",
regulation_citation="Structuring/Smurfing 9000-10000 range"
)
else:
action = AuditAction(
action_type="FLAG",
target_id="ACC-REG-VIOLATOR",
regulation_citation="EU-AI-Act-Art-57"
)
# step() returns an AuditObservation instance only
obs = env.step(action)
print(f"Action Taken: {action.action_type} for {action.target_id}", flush=True)
print(f"Reward: {obs.reward} | Done: {obs.done}", flush=True)
print(f"[STEP] step=1 reward={obs.reward}", flush=True)
print(f"[END] task={task_name} score={obs.reward} steps=1", flush=True)
total_score += obs.reward
if obs.done:
break
print(f"\n--- Reproducibility Report ---")
print(f"Total Episodes: {min(episodes, env.state.step_count)}")
print(f"Custom Agent Mean Score (Reward): {total_score / min(episodes, env.state.step_count)}")
if __name__ == "__main__":
main()