Palak6106 commited on
Commit
48b15b6
·
verified ·
1 Parent(s): 265b89f

Update server.py

Browse files
Files changed (1) hide show
  1. server.py +7 -55
server.py CHANGED
@@ -1,38 +1,20 @@
1
  import uvicorn
2
  from fastapi import FastAPI
3
  from pydantic import BaseModel
4
- from typing import Optional
5
  from env import EmailSortingEnv
6
 
7
- # Create FastAPI app
8
  app = FastAPI(
9
  title="Email Sorting OpenEnv",
10
- description="Real-world email sorting environment for RL agents",
11
  version="1.0.0"
12
  )
13
 
14
- # One global environment instance
15
  env = EmailSortingEnv()
16
 
17
- # ============================================
18
- # REQUEST MODELS
19
- # ============================================
20
-
21
  class StepRequest(BaseModel):
22
  action: str
23
 
24
- # ============================================
25
- # API ENDPOINTS
26
- # ============================================
27
-
28
- @app.get("/health")
29
- def health_check():
30
- """Health check — must return 200."""
31
- return {"status": "ok", "message": "Email Sorting Environment is running"}
32
-
33
  @app.get("/")
34
  def root():
35
- """Root endpoint."""
36
  return {
37
  "name": "Email Sorting OpenEnv",
38
  "version": "1.0.0",
@@ -40,55 +22,25 @@ def root():
40
  "endpoints": ["/reset", "/step", "/state", "/health"]
41
  }
42
 
 
 
 
 
43
  @app.post("/reset")
44
  def reset():
45
- """Reset environment and return initial state."""
46
  state = env.reset()
47
- return {
48
- "status": "success",
49
- "state": state
50
- }
51
 
52
  @app.post("/step")
53
  def step(request: StepRequest):
54
- """
55
- Take action in environment.
56
- Body: {"action": "spam"} or {"action": "important"} or {"action": "promotion"}
57
- """
58
  next_state, reward, done, info = env.step(request.action)
59
- return {
60
- "status": "success",
61
- "state": next_state,
62
- "reward": reward,
63
- "done": done,
64
- "info": info
65
- }
66
 
67
  @app.get("/state")
68
  def get_state():
69
- """Return current state without taking action."""
70
- return {
71
- "status": "success",
72
- "state": env.state()
73
- }
74
-
75
- @app.get("/graders")
76
- def run_graders():
77
- """Run all graders and return scores."""
78
- from graders import run_all_graders
79
- results = run_all_graders()
80
- return {
81
- "status": "success",
82
- "results": results
83
- }
84
-
85
- # ============================================
86
- # START SERVER
87
- # ============================================
88
 
89
  def main():
90
- print("Starting Email Sorting Environment Server...")
91
- print("Server running at http://localhost:7860")
92
  uvicorn.run(app, host="0.0.0.0", port=7860)
93
 
94
  if __name__ == "__main__":
 
1
  import uvicorn
2
  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 {
19
  "name": "Email Sorting OpenEnv",
20
  "version": "1.0.0",
 
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()
32
+ return {"status": "success", "state": state}
 
 
 
33
 
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__":