trretretret commited on
Commit
696c12c
·
1 Parent(s): af95573

Fix: add error handling to step endpoint

Browse files
Files changed (1) hide show
  1. app.py +15 -11
app.py CHANGED
@@ -14,9 +14,7 @@ app = FastAPI(
14
  description="OpenEnv environment: AI agent diagnoses broken ML training runs.",
15
  version="1.0.0",
16
  )
17
- app.add_middleware(
18
- CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"]
19
- )
20
 
21
  _http_env: Optional[MLOpsEnvironment] = None
22
 
@@ -114,18 +112,24 @@ async def step(request: Request):
114
 
115
  # Handle various input formats
116
  action = None
117
- if "action_type" in body:
118
- action = MLOpsAction(**body)
119
- elif "action" in body:
120
- action = MLOpsAction(**body["action"])
121
- elif "message" in body:
122
- action = MLOpsAction(action_type=body["message"])
 
 
 
123
 
124
  if action is None or action.action_type is None:
125
  raise HTTPException(422, "Field required: action_type")
126
 
127
- obs, reward, done, info = _http_env.step(action)
128
- return StepResponse(observation=obs, reward=reward, done=done, info=info)
 
 
 
129
 
130
 
131
  @app.get("/state", response_model=MLOpsState)
 
14
  description="OpenEnv environment: AI agent diagnoses broken ML training runs.",
15
  version="1.0.0",
16
  )
17
+ app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"])
 
 
18
 
19
  _http_env: Optional[MLOpsEnvironment] = None
20
 
 
112
 
113
  # Handle various input formats
114
  action = None
115
+ try:
116
+ if "action_type" in body:
117
+ action = MLOpsAction(**body)
118
+ elif "action" in body:
119
+ action = MLOpsAction(**body["action"])
120
+ elif "message" in body:
121
+ action = MLOpsAction(action_type=body["message"])
122
+ except Exception as e:
123
+ raise HTTPException(422, f"Invalid action: {str(e)}")
124
 
125
  if action is None or action.action_type is None:
126
  raise HTTPException(422, "Field required: action_type")
127
 
128
+ try:
129
+ obs, reward, done, info = _http_env.step(action)
130
+ return StepResponse(observation=obs, reward=reward, done=done, info=info)
131
+ except Exception as e:
132
+ raise HTTPException(500, f"Step error: {str(e)}")
133
 
134
 
135
  @app.get("/state", response_model=MLOpsState)