Palak6106 commited on
Commit
0f2bf94
·
verified ·
1 Parent(s): 3e633fe

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +34 -5
server.py CHANGED
@@ -3,16 +3,31 @@ from fastapi import FastAPI
3
  from pydantic import BaseModel
4
  from env import EmailSortingEnv
5
 
 
6
  app = FastAPI(
7
  title="Email Sorting OpenEnv",
 
8
  version="1.0.0"
9
  )
10
 
 
11
  env = EmailSortingEnv()
12
 
 
 
 
 
13
  class StepRequest(BaseModel):
14
  action: str
15
 
 
 
 
 
 
 
 
 
16
  @app.get("/")
17
  def root():
18
  return {
@@ -22,10 +37,6 @@ def root():
22
  "endpoints": ["/reset", "/step", "/state", "/health"]
23
  }
24
 
25
- @app.get("/health")
26
- def health():
27
- return {"status": "ok"}
28
-
29
  @app.post("/reset")
30
  def reset():
31
  state = env.reset()
@@ -34,13 +45,31 @@ def reset():
34
  @app.post("/step")
35
  def step(request: StepRequest):
36
  next_state, reward, done, info = env.step(request.action)
37
- return {"status": "success", "state": next_state, "reward": reward, "done": done, "info": info}
 
 
 
 
 
 
38
 
39
  @app.get("/state")
40
  def get_state():
41
  return {"status": "success", "state": env.state()}
42
 
 
 
 
 
 
 
 
 
 
 
43
  def main():
 
 
44
  uvicorn.run(app, host="0.0.0.0", port=7860)
45
 
46
  if __name__ == "__main__":
 
3
  from pydantic import BaseModel
4
  from env import EmailSortingEnv
5
 
6
+ # Create FastAPI app
7
  app = FastAPI(
8
  title="Email Sorting OpenEnv",
9
+ description="Real-world email sorting environment for RL agents",
10
  version="1.0.0"
11
  )
12
 
13
+ # One global environment instance
14
  env = EmailSortingEnv()
15
 
16
+ # ============================================
17
+ # REQUEST MODELS
18
+ # ============================================
19
+
20
  class StepRequest(BaseModel):
21
  action: str
22
 
23
+ # ============================================
24
+ # API ENDPOINTS
25
+ # ============================================
26
+
27
+ @app.get("/health")
28
+ def health_check():
29
+ return {"status": "ok", "message": "Email Sorting Environment is running"}
30
+
31
  @app.get("/")
32
  def root():
33
  return {
 
37
  "endpoints": ["/reset", "/step", "/state", "/health"]
38
  }
39
 
 
 
 
 
40
  @app.post("/reset")
41
  def reset():
42
  state = env.reset()
 
45
  @app.post("/step")
46
  def step(request: StepRequest):
47
  next_state, reward, done, info = env.step(request.action)
48
+ return {
49
+ "status": "success",
50
+ "state": next_state,
51
+ "reward": reward,
52
+ "done": done,
53
+ "info": info
54
+ }
55
 
56
  @app.get("/state")
57
  def get_state():
58
  return {"status": "success", "state": env.state()}
59
 
60
+ @app.get("/graders")
61
+ def run_graders():
62
+ from graders import run_all_graders
63
+ results = run_all_graders()
64
+ return {"status": "success", "results": results}
65
+
66
+ # ============================================
67
+ # START SERVER
68
+ # ============================================
69
+
70
  def main():
71
+ print("Starting Email Sorting Environment Server...")
72
+ print("Server running at http://localhost:7860")
73
  uvicorn.run(app, host="0.0.0.0", port=7860)
74
 
75
  if __name__ == "__main__":