Arun006's picture
fix: add openenv-core to requirements.txt and fix sys.path in server
0b0a73b
Raw History Blame Contribute Delete
1.54 kB
import sys
import os
# Ensure /app is on the path regardless of launch method
_app_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if _app_dir not in sys.path:
sys.path.insert(0, _app_dir)
from fastapi import FastAPI, Request
from env import create_env
import uvicorn
app = FastAPI()
@app.get("/")
def root():
return {"status": "running"}
@app.api_route("/reset", methods=["GET", "POST"])
async def reset(request: Request):
try:
if request.method == "POST":
try:
body = await request.json()
except:
body = {}
task = body.get("task", "easy")
else:
task = "easy"
env = create_env(task)
obs = env.reset()
return {
"status": "ok",
"task": task,
"observation": str(obs)
}
except Exception as e:
return {"error": str(e)}
@app.post("/step")
async def step(request: Request):
try:
body = await request.json()
action = body.get("action")
env = create_env()
env.reset()
obs, reward, done, info = env.step(action)
return {
"observation": str(obs),
"reward": reward,
"done": done,
"info": info
}
except Exception as e:
return {"error": str(e)}
# ✅ REQUIRED MAIN FUNCTION
def main():
uvicorn.run("server.app:app", host="0.0.0.0", port=7860)
# ✅ REQUIRED ENTRY POINT
if __name__ == "__main__":
main()