modelbuilderhq commited on
Commit
44686b8
·
verified ·
1 Parent(s): 033f59c

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. graders.py +20 -2
  2. openenv.yaml +4 -4
  3. tests/test_supportdesk.py +18 -1
graders.py CHANGED
@@ -1,3 +1,21 @@
1
- """Compatibility wrapper for the real supportdesk_env package."""
2
 
3
- from supportdesk_env.graders import * # noqa: F401,F403
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Compatibility wrapper exposing task graders from the repo root."""
2
 
3
+ from supportdesk_env.graders import (
4
+ AccountTakeoverMediumGrader,
5
+ ApiIncidentHardGrader,
6
+ BillingRefundEasyGrader,
7
+ GradeBreakdown,
8
+ RegulatedExportExceptionHardGrader,
9
+ grade_case,
10
+ grade_task_id,
11
+ )
12
+
13
+ __all__ = [
14
+ "AccountTakeoverMediumGrader",
15
+ "ApiIncidentHardGrader",
16
+ "BillingRefundEasyGrader",
17
+ "GradeBreakdown",
18
+ "RegulatedExportExceptionHardGrader",
19
+ "grade_case",
20
+ "grade_task_id",
21
+ ]
openenv.yaml CHANGED
@@ -8,10 +8,10 @@ port: 8000
8
  description: Enterprise support operations environment with SLA pressure, business-impact aware triage, and primary-vs-secondary issue prioritization.
9
  tasks:
10
  - id: billing_refund_easy
11
- grader: supportdesk_env.graders:BillingRefundEasyGrader
12
  - id: account_takeover_medium
13
- grader: supportdesk_env.graders:AccountTakeoverMediumGrader
14
  - id: api_incident_hard
15
- grader: supportdesk_env.graders:ApiIncidentHardGrader
16
  - id: regulated_export_exception_hard
17
- grader: supportdesk_env.graders:RegulatedExportExceptionHardGrader
 
8
  description: Enterprise support operations environment with SLA pressure, business-impact aware triage, and primary-vs-secondary issue prioritization.
9
  tasks:
10
  - id: billing_refund_easy
11
+ grader: graders:BillingRefundEasyGrader
12
  - id: account_takeover_medium
13
+ grader: graders:AccountTakeoverMediumGrader
14
  - id: api_incident_hard
15
+ grader: graders:ApiIncidentHardGrader
16
  - id: regulated_export_exception_hard
17
+ grader: graders:RegulatedExportExceptionHardGrader
tests/test_supportdesk.py CHANGED
@@ -1,6 +1,9 @@
1
  """Smoke tests for the SupportDesk environment."""
2
 
 
 
3
  import pytest
 
4
 
5
  try:
6
  from fastapi.testclient import TestClient
@@ -8,7 +11,7 @@ except RuntimeError:
8
  TestClient = None # type: ignore[assignment]
9
 
10
  from supportdesk_env.graders import grade_case
11
- from supportdesk_env.models import SupportDeskAction
12
  from supportdesk_env.server.supportdesk_environment import SupportDeskEnvironment
13
  from supportdesk_env.tasks import get_task, list_task_ids
14
 
@@ -106,6 +109,20 @@ def test_task_specific_graders_are_importable_and_clamped():
106
  assert scores == [0.15, 0.01, 0.01, 0.01]
107
 
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  def test_state_includes_episode_id_after_reset():
110
  env = SupportDeskEnvironment(task_id="billing_refund_easy")
111
  env.reset(episode_id="episode-123")
 
1
  """Smoke tests for the SupportDesk environment."""
2
 
3
+ import importlib
4
+
5
  import pytest
6
+ import yaml
7
 
8
  try:
9
  from fastapi.testclient import TestClient
 
11
  TestClient = None # type: ignore[assignment]
12
 
13
  from supportdesk_env.graders import grade_case
14
+ from supportdesk_env.models import SupportCaseProgress, SupportDeskAction
15
  from supportdesk_env.server.supportdesk_environment import SupportDeskEnvironment
16
  from supportdesk_env.tasks import get_task, list_task_ids
17
 
 
109
  assert scores == [0.15, 0.01, 0.01, 0.01]
110
 
111
 
112
+ def test_openenv_manifest_graders_are_importable():
113
+ manifest = yaml.safe_load(open("openenv.yaml", encoding="utf-8"))
114
+
115
+ assert "tasks" in manifest
116
+ assert len(manifest["tasks"]) >= 4
117
+
118
+ for task in manifest["tasks"]:
119
+ module_name, object_name = task["grader"].split(":", 1)
120
+ module = importlib.import_module(module_name)
121
+ grader_cls = getattr(module, object_name)
122
+ score = grader_cls().grade(SupportCaseProgress())
123
+ assert 0.0 < score < 1.0
124
+
125
+
126
  def test_state_includes_episode_id_after_reset():
127
  env = SupportDeskEnvironment(task_id="billing_refund_easy")
128
  env.reset(episode_id="episode-123")