Spaces:
Sleeping
Sleeping
Align validator task endpoints
Browse files- server/app.py +25 -14
server/app.py
CHANGED
|
@@ -34,10 +34,9 @@ app = create_fastapi_app(
|
|
| 34 |
)
|
| 35 |
|
| 36 |
|
| 37 |
-
class
|
| 38 |
-
|
| 39 |
-
|
| 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() ->
|
| 468 |
-
return
|
| 469 |
|
| 470 |
|
| 471 |
@app.post("/grader", include_in_schema=False)
|
| 472 |
-
def grader(request:
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 482 |
if grader_fn is None:
|
| 483 |
-
return JSONResponse(
|
| 484 |
-
|
| 485 |
-
|
| 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:
|