File size: 1,276 Bytes
fb78c46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e27dbae
fb78c46
 
 
 
 
e27dbae
fb78c46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e27dbae
fb78c46
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from fastapi import FastAPI
from app.env import SupportDeskEnv
from app.models import Action

app = FastAPI(title="SupportDeskEnv")
env = SupportDeskEnv()

# -----------------------------
# ROOT CHECK
# -----------------------------
@app.get("/")
def root():
    return {"message": "SupportDeskEnv is running 🚀"}

# -----------------------------
# RESET (FIXED - BODY OPTIONAL)
# -----------------------------
@app.post("/reset")
async def reset(req: dict = {}):
    level = req.get("level", "medium")
    obs = await env.reset(level)
    return {"observation": obs.model_dump()}

# Optional GET (for browser testing)
@app.get("/reset")
async def reset_get():
    obs = await env.reset("medium")
    return {"observation": obs.model_dump()}

# -----------------------------
# STEP
# -----------------------------
@app.post("/step")
async def step(action: Action):
    result = await env.step(action)
    return result

# -----------------------------
# STATE
# -----------------------------
@app.get("/state")
async def state():
    obs = await env.state()
    return {"observation": obs.model_dump()}

# -----------------------------
# RUN SERVER
# -----------------------------
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=7860)