| | |
| | |
| | |
| | |
| | |
| |
|
| | """ |
| | FastAPI application for the Maze Env Environment. |
| | |
| | This module creates an HTTP server that exposes the MazeEnvironment |
| | over HTTP and WebSocket endpoints, compatible with EnvClient. |
| | |
| | Endpoints: |
| | - POST /reset: Reset the environment |
| | - POST /step: Execute an action |
| | - GET /state: Get current environment state |
| | - GET /schema: Get action/observation schemas |
| | - WS /ws: WebSocket endpoint for persistent sessions |
| | |
| | Usage: |
| | # Development (with auto-reload): |
| | uvicorn server.app:app --reload --host 0.0.0.0 --port 8000 |
| | |
| | # Production: |
| | uvicorn server.app:app --host 0.0.0.0 --port 8000 --workers 4 |
| | |
| | # Or run directly: |
| | python -m server.app |
| | """ |
| |
|
| | |
| | try: |
| | |
| | from openenv.core.env_server.http_server import create_app |
| | from ..models import MazeAction, MazeObservation |
| | from .maze_env_environment import MazeEnvironment |
| | except ImportError: |
| | |
| | from openenv_core.env_server.http_server import create_app |
| | from models import MazeAction, MazeObservation |
| | from server.maze_env_environment import MazeEnvironment |
| |
|
| |
|
| | |
| | app = create_app( |
| | MazeEnvironment, |
| | MazeAction, |
| | MazeObservation, |
| | env_name="maze_env", |
| | max_concurrent_envs=1, |
| | ) |
| |
|
| |
|
| | def main(host: str = "0.0.0.0", port: int = 8000): |
| | """ |
| | Entry point for direct execution via uv run or python -m. |
| | |
| | This function enables running the server without Docker: |
| | uv run --project . server |
| | uv run --project . server --port 8001 |
| | python -m maze_env.server.app |
| | |
| | Args: |
| | host: Host address to bind to (default: "0.0.0.0") |
| | port: Port number to listen on (default: 8000) |
| | |
| | For production deployments, consider using uvicorn directly with |
| | multiple workers: |
| | uvicorn maze_env.server.app:app --workers 4 |
| | """ |
| | import uvicorn |
| |
|
| | uvicorn.run(app, host=host, port=port) |
| |
|
| |
|
| | if __name__ == "__main__": |
| | main() |
| |
|