SayedZahur786 commited on
Commit
2f212fd
·
1 Parent(s): 4336fc9

fix(api): remove Pydantic model for /reset to natively handle null JSON bodies from OpenEnv validator

Browse files
Files changed (1) hide show
  1. src/server/app.py +13 -8
src/server/app.py CHANGED
@@ -22,10 +22,7 @@ app.add_middleware(
22
  _env: OpenEnvEnvironment | None = None
23
 
24
 
25
- class ResetRequest(BaseModel):
26
- task_id: str = "single_incident"
27
- seed: int | None = None
28
-
29
 
30
  class StepRequest(BaseModel):
31
  action: dict[str, Any]
@@ -157,11 +154,19 @@ async def list_tasks() -> list[dict[str, str]]:
157
 
158
 
159
  @app.post("/reset")
160
- async def reset(request: ResetRequest | None = None) -> dict[str, Any]:
161
- if request is None:
162
- request = ResetRequest()
 
 
 
 
 
 
 
 
163
  global _env
164
- _env = OpenEnvEnvironment(task_id=request.task_id, seed=request.seed)
165
  obs = await _env.reset()
166
  return obs.model_dump()
167
 
 
22
  _env: OpenEnvEnvironment | None = None
23
 
24
 
25
+ # Removed ResetRequest since /reset now dynamically parses the Request to handle null bodies gracefully.
 
 
 
26
 
27
  class StepRequest(BaseModel):
28
  action: dict[str, Any]
 
154
 
155
 
156
  @app.post("/reset")
157
+ async def reset(request: Request) -> dict[str, Any]:
158
+ try:
159
+ body = await request.json()
160
+ except Exception:
161
+ body = {}
162
+ if body is None:
163
+ body = {}
164
+
165
+ task_id = body.get("task_id", "single_incident")
166
+ seed = body.get("seed", None)
167
+
168
  global _env
169
+ _env = OpenEnvEnvironment(task_id=task_id, seed=seed)
170
  obs = await _env.reset()
171
  return obs.model_dump()
172