rubyCodes/customer-support-openenv
0
1from typing import Dict, Any
2
3
4def easy_task():
5 return {
6 "task_id": "easy_classification",
7 "description": "Classify billing ticket",
8 "input": "I was charged twice",
9 "grader": grade_easy
10 }
11
12
13def medium_task():
14 return {
15 "task_id": "medium_response",
16 "description": "Respond to technical issue",
17 "input": "App crashes when opening",
18 "grader": grade_medium
19 }
20
21
22def hard_task():
23 return {
24 "task_id": "hard_resolution",
25 "description": "Resolve support issue",
26 "input": "Payment failed and refund needed",
27 "grader": grade_hard
28 }
29
30
31# -------- Graders --------
32
33def grade_easy(result: Dict[str, Any]) -> float:
34 if result.get("category") == "Billing":
35 return 1.0
36 return 0.0
37
38
39def grade_medium(result: Dict[str, Any]) -> float:
40 if result.get("status") == "responded":
41 return 1.0
42 return 0.5
43
44
45def grade_hard(result: Dict[str, Any]) -> float:
46 if result.get("status") == "escalated":
47 return 1.0
48 return 0.5
49
50
51TASKS = [
52 easy_task(),
53 medium_task(),
54 hard_task()
55]