Files changed (3) hide show
  1. .gitignore +65 -0
  2. openenv.yaml +24 -1
  3. tasks.py +11 -0
.gitignore ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Environment variables
2
+ .env
3
+ .env.local
4
+ .env.*.local
5
+
6
+ # Python
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+ *.so
11
+ .Python
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ pip-wheel-metadata/
25
+ share/python-wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+ MANIFEST
30
+
31
+ # Virtual environments
32
+ .venv
33
+ venv/
34
+ ENV/
35
+ env/
36
+ .env.venv
37
+
38
+ # IDE
39
+ .vscode/
40
+ .idea/
41
+ *.swp
42
+ *.swo
43
+ *~
44
+ .DS_Store
45
+
46
+ # Testing
47
+ .pytest_cache/
48
+ .coverage
49
+ htmlcov/
50
+ .tox/
51
+
52
+ # Logs
53
+ *.log
54
+ logs/
55
+
56
+ # Data and outputs
57
+ *.csv
58
+ output/
59
+ results/
60
+ temp/
61
+ tmp/
62
+
63
+ # OS
64
+ Thumbs.db
65
+ .DS_Store
openenv.yaml CHANGED
@@ -3,4 +3,27 @@ name: customer_support_benchmark
3
  type: space
4
  runtime: fastapi
5
  app: app:app
6
- port: 8000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  type: space
4
  runtime: fastapi
5
  app: app:app
6
+ port: 8000
7
+ tasks:
8
+ - id: easy_classify_respond
9
+ difficulty: easy
10
+ objective: Classify ticket correctly and provide the expected response.
11
+ grader: grade_easy
12
+ - id: medium_kb_grounded_response
13
+ difficulty: medium
14
+ objective: Use the correct KB entry and provide a grounded response.
15
+ grader: grade_medium
16
+ - id: hard_escalation_safety
17
+ difficulty: hard
18
+ objective: Make the right escalation decision and keep the response safe/polite.
19
+ grader: grade_hard
20
+ graders:
21
+ - name: grade_easy
22
+ module: tasks
23
+ function: grade_easy
24
+ - name: grade_medium
25
+ module: tasks
26
+ function: grade_medium
27
+ - name: grade_hard
28
+ module: tasks
29
+ function: grade_hard
tasks.py CHANGED
@@ -34,6 +34,17 @@ TASKS: Dict[str, TaskSpec] = {
34
  ),
35
  }
36
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
  def task_for_difficulty(difficulty: str) -> TaskSpec:
39
  normalized = difficulty.strip().lower()
 
34
  ),
35
  }
36
 
37
+ # Compatibility registry for validators that expect explicit task->grader mapping.
38
+ TASKS_WITH_GRADERS: List[dict] = [
39
+ {
40
+ "task_id": task.task_id,
41
+ "difficulty": task.difficulty,
42
+ "objective": task.objective,
43
+ "grader": task.grader_name,
44
+ }
45
+ for task in TASKS.values()
46
+ ]
47
+
48
 
49
  def task_for_difficulty(difficulty: str) -> TaskSpec:
50
  normalized = difficulty.strip().lower()