Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions verifiers/v1/serve/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,14 +122,15 @@ async def _run_rollout(self, req: RunRolloutRequest) -> RunRolloutResponse:
ctx = self._context(req.client, req.model, req.sampling)
episode = self.env.episode(self.tasks[req.task_idx], ctx, n=1)
traces = await episode.run()
# dump to a dict so the `Trace[WireTask]` field re-types the concrete task to WireTask
return RunRolloutResponse(trace=traces[0].model_dump())
# Trust the concrete trace; serialize it once before client-side re-typing.
return RunRolloutResponse.model_construct(trace=traces[0])

async def _run_group(self, req: RunGroupRequest) -> RunGroupResponse:
ctx = self._context(req.client, req.model, req.sampling)
episode = self.env.episode(self.tasks[req.task_idx], ctx, n=req.n)
traces = await episode.run()
return RunGroupResponse(traces=[t.model_dump() for t in traces])
# Avoid a dump-and-validate copy for every trusted trace in the group.
return RunGroupResponse.model_construct(traces=traces)

async def _handle(
self, client_id: bytes, request_id: bytes, method: bytes, payload: bytes
Expand Down
Loading