Kavya988's picture
Fix: update tasks/rate_limit/grader.py
a10514d verified
"""Grader for rate_limit task: 429 Too Many Requests."""
def grade() -> float:
"""Grade the rate_limit task. Returns float strictly between 0 and 1."""
try:
import sys
from pathlib import Path
_root = str(Path(__file__).resolve().parent.parent.parent)
if _root not in sys.path:
sys.path.insert(0, _root)
from environment.api_triage_env import APITriageEnv
from environment.incident_generator import get_incident_by_type
env = APITriageEnv(max_steps=10)
env.incident = get_incident_by_type("rate_limit")
if env.incident is None:
return 0.1
env.fix_applied = False
env.done = False
env.step_counter = 0
env.total_reward = 0.0
for action in ["inspect_logs", "wait_retry", "resolve"]:
_, _, done, info = env.step(action)
if done:
return 0.95 if info.get("resolution") == "success" else 0.1
return 0.1
except Exception:
return 0.1