AzraelH commited on
Commit
3450dc5
·
1 Parent(s): ec7e9a5

Align validator task endpoints

Browse files
Files changed (1) hide show
  1. server/app.py +25 -14
server/app.py CHANGED
@@ -34,10 +34,9 @@ app = create_fastapi_app(
34
  )
35
 
36
 
37
- class GraderRequest(BaseModel):
38
- task_id: str
39
- state: dict
40
- reward: float
41
 
42
  WEB_CSS = dedent(
43
  """\
@@ -464,12 +463,12 @@ def manifest() -> JSONResponse:
464
 
465
 
466
  @app.get("/tasks", include_in_schema=False)
467
- def tasks() -> JSONResponse:
468
- return JSONResponse({"tasks": TASKS})
469
 
470
 
471
  @app.post("/grader", include_in_schema=False)
472
- def grader(request: GraderRequest) -> JSONResponse:
473
  graders = {
474
  "quiet-morning": grade_task_0,
475
  "meeting-surgery": grade_task_1,
@@ -478,14 +477,26 @@ def grader(request: GraderRequest) -> JSONResponse:
478
  "engineer_manager_task_1": grade_task_1,
479
  "engineer_manager_task_2": grade_task_2,
480
  }
481
- grader_fn = graders.get(request.task_id)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
482
  if grader_fn is None:
483
- return JSONResponse(
484
- {"error": f"Unknown task_id: {request.task_id}", "score": 0.0, "passed": False},
485
- status_code=400,
486
- )
487
- score = float(grader_fn(request.state, request.reward))
488
- return JSONResponse({"task_id": request.task_id, "score": score, "passed": score > 0.0, "reward": score})
489
 
490
 
491
  def run(host: str = "0.0.0.0", port: int = 8000) -> None:
 
34
  )
35
 
36
 
37
+ class GradeRequest(BaseModel):
38
+ action: dict
39
+ ground_truth: dict | None = None
 
40
 
41
  WEB_CSS = dedent(
42
  """\
 
463
 
464
 
465
  @app.get("/tasks", include_in_schema=False)
466
+ def tasks() -> list[dict]:
467
+ return TASKS
468
 
469
 
470
  @app.post("/grader", include_in_schema=False)
471
+ def grader(request: GradeRequest) -> JSONResponse:
472
  graders = {
473
  "quiet-morning": grade_task_0,
474
  "meeting-surgery": grade_task_1,
 
477
  "engineer_manager_task_1": grade_task_1,
478
  "engineer_manager_task_2": grade_task_2,
479
  }
480
+ task_id = request.action.get("task_id", "engineer_manager_task_0")
481
+ reward = request.action.get("reward", 0.0)
482
+ state = {
483
+ "task_id": request.action.get("task_index"),
484
+ "task_name": request.action.get("task_name"),
485
+ "metadata": request.action.get("metadata", {}),
486
+ }
487
+ if state["task_id"] is None:
488
+ if task_id == "quiet-morning" or task_id == "engineer_manager_task_0":
489
+ state["task_id"] = 0
490
+ elif task_id == "meeting-surgery" or task_id == "engineer_manager_task_1":
491
+ state["task_id"] = 1
492
+ elif task_id == "delivery-triage" or task_id == "engineer_manager_task_2":
493
+ state["task_id"] = 2
494
+
495
+ grader_fn = graders.get(task_id)
496
  if grader_fn is None:
497
+ return JSONResponse({"score": 0.0}, status_code=200)
498
+ score = float(grader_fn(state, reward))
499
+ return JSONResponse({"score": score})
 
 
 
500
 
501
 
502
  def run(host: str = "0.0.0.0", port: int = 8000) -> None: