I766446 commited on
Commit
5ff0156
·
1 Parent(s): 79817cf
Files changed (2) hide show
  1. openenv.yaml +5 -5
  2. server.py +48 -15
openenv.yaml CHANGED
@@ -142,13 +142,13 @@ reward:
142
  # ---------------------------------------------------------------------------
143
  tasks:
144
  - name: easy
145
- grader: tasks.graders.easy_grader
146
-
147
  - name: medium
148
- grader: tasks.graders.medium_grader
149
-
150
  - name: hard
151
- grader: tasks.graders.hard_grader
152
 
153
  # ---------------------------------------------------------------------------
154
  # Grader
 
142
  # ---------------------------------------------------------------------------
143
  tasks:
144
  - name: easy
145
+ grader: tasks.easy.grader.grade_episode
146
+
147
  - name: medium
148
+ grader: tasks.medium.grader.grade_episode
149
+
150
  - name: hard
151
+ grader: tasks.hard.grader.grade_episode
152
 
153
  # ---------------------------------------------------------------------------
154
  # Grader
server.py CHANGED
@@ -292,22 +292,55 @@ async def get_state_root():
292
 
293
 
294
  @app.get("/tasks")
 
295
  async def list_tasks():
296
- return [
297
- {
298
- "id": "easy",
299
- "grader": "tasks.easy.grader.grade_episode"
300
- },
301
- {
302
- "id": "medium",
303
- "grader": "tasks.medium.grader.grade_episode"
304
- },
305
- {
306
- "id": "hard",
307
- "grader": "tasks.hard.grader.grade_episode"
308
- }
309
- ]
310
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
 
312
  @app.post("/collect", response_model=CollectResponse)
313
  async def collect(req: CollectRequest):
@@ -538,7 +571,7 @@ async def grade_episode(req: GradeRequest):
538
  "score": round(max(0.005, min(0.995, score)), 4),
539
  "passed": True,
540
  "score_range": [0.0, 1.0],
541
- "grader": f"tasks.{task_id}.grader.grade",
542
  }
543
  except Exception as e:
544
  logger.error("Grading failed: %s", traceback.format_exc())
 
292
 
293
 
294
  @app.get("/tasks")
295
+
296
  async def list_tasks():
 
 
 
 
 
 
 
 
 
 
 
 
 
 
297
 
298
+ from tasks.graders import GraderFactory
299
+
300
+ result = []
301
+
302
+ for difficulty in ("easy", "medium", "hard"):
303
+
304
+ try:
305
+
306
+ grader = GraderFactory.get(difficulty)
307
+
308
+ result.append({
309
+
310
+ "id": difficulty,
311
+
312
+ "name": difficulty,
313
+
314
+ "difficulty": difficulty,
315
+
316
+ "has_grader": True,
317
+
318
+ "grader": f"tasks.{difficulty}.grader.grade_episode",
319
+
320
+ "grader_fn": f"tasks.{difficulty}.grader.grade_episode",
321
+
322
+ "score_range": [0.0, 1.0],
323
+
324
+ "grader_weights": {
325
+
326
+ "decision": grader.W_DECISION,
327
+
328
+ "evidence": grader.W_EVIDENCE,
329
+
330
+ "reasoning": grader.W_REASONING,
331
+
332
+ "efficiency": grader.W_EFFICIENCY,
333
+
334
+ },
335
+
336
+ })
337
+
338
+ except Exception as exc:
339
+
340
+ result.append({"id": difficulty, "error": str(exc), "has_grader": False})
341
+
342
+ return result
343
+
344
 
345
  @app.post("/collect", response_model=CollectResponse)
346
  async def collect(req: CollectRequest):
 
571
  "score": round(max(0.005, min(0.995, score)), 4),
572
  "passed": True,
573
  "score_range": [0.0, 1.0],
574
+ "grader": f"tasks.{task_id}.grader.grade_episode",
575
  }
576
  except Exception as e:
577
  logger.error("Grading failed: %s", traceback.format_exc())