File size: 976 Bytes
bf396bf aee9fc5 3daeb31 aee9fc5 84e2f6e bf396bf | 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 | from openenv.core.env_server.http_server import create_app
from warehouse_env.models import WarehouseAction, WarehouseObservation
from warehouse_env.env import WarehouseEnv
# Singleton env instance — persists episode state between HTTP reset/step calls
# Using lambda: _env_instance so create_app factory pattern is satisfied
# per research Pitfall 5: fresh env per request loses episode state
_env_instance = WarehouseEnv()
app = create_app(
lambda: _env_instance,
WarehouseAction,
WarehouseObservation,
env_name="warehouse_env",
max_concurrent_envs=1,
)
# Health check endpoint for Cloud Run startup probes and monitoring
@app.get("/health")
def health():
return {"status": "healthy"}
def main(host: str = "0.0.0.0", port: int | None = None):
import os, uvicorn
resolved_port = port if port is not None else int(os.environ.get("PORT", 7860))
uvicorn.run(app, host=host, port=resolved_port)
if __name__ == "__main__":
main()
|