Meta-Hackathon1/Customer_Support_Env
0
1class SupportEnv:2 def __init__(self, cases):3 self.cases = cases4 self.index = 05 self.correct_count = 06 7 def reset(self):8 self.index = 09 self.correct_count = 010 return self._get_obs()11 12 def step(self, action):13 case = self.cases[self.index]14 correct = case["correct_action"]15 16 if action == correct:17 reward = 0.918 self.correct_count += 119 elif action == "ask_proof" and correct == "ask_proof":20 reward = 0.521 else:22 reward = 0.123 24 self.index += 125 done = self.index >= len(self.cases)26 27 obs = self._get_obs() if not done else "All cases completed."28 29 return obs, reward, done30 31 # TASK GRADER32 def get_score(self):33 total = len(self.cases)34 score = self.correct_count / total if total > 0 else 0.035 36 return max(0.05, min(0.95, score))37 38 def _get_obs(self):39 case = self.cases[self.index]40 41 return f"""42Customer Query: {case['query']}43Days since delivery: {case['days']}44Proof provided: {case.get('has_proof', False)}45 46Choose one action:47refund / replace / reject / ask_proof48"""