project_banglore / server.py
AI Dashboard Developer
Fix OpenEnv validation errors and generate uv.lock
a891eaa
Raw History Blame Contribute Delete
1.43 kB
import uvicorn
from fastapi import Request
from fastapi.responses import JSONResponse
from pydantic import ValidationError
from app.main import app as _app # the existing app
from env.environment import env_instance
from env.models import Action
app = _app
@app.post("/reset")
async def env_reset(request: Request):
data = {}
try:
data = await request.json()
except Exception:
pass
obs = env_instance.reset(data)
return JSONResponse(content={"observation": obs.model_dump()})
@app.post("/step")
async def env_step(request: Request):
try:
data = await request.json()
action_data = data.get("action", {})
action_obj = Action(**action_data)
obs, reward, done, info = env_instance.step(action_obj.model_dump())
return JSONResponse(content={
"observation": obs.model_dump(),
"reward": reward.model_dump(),
"done": done,
"info": info
})
except ValidationError as e:
return JSONResponse(status_code=400, content={"error": "Invalid action format", "details": e.errors()})
except Exception as e:
return JSONResponse(status_code=500, content={"error": str(e)})
@app.get("/state")
def env_state():
return JSONResponse(content=env_instance.state())
def main():
uvicorn.run("server:app", host="0.0.0.0", port=8000)
if __name__ == "__main__":
main()