|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
FastAPI application for the Echo Environment. |
|
|
|
|
|
This module creates an HTTP server that exposes the EchoEnvironment |
|
|
over HTTP and WebSocket endpoints, compatible with EnvClient. |
|
|
|
|
|
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: |
|
|
uv run --project . server |
|
|
""" |
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
from openenv.core.env_server.http_server import create_app |
|
|
from ..models import EchoAction, EchoObservation |
|
|
from .echo_environment import EchoEnvironment |
|
|
except ImportError: |
|
|
|
|
|
from openenv.core.env_server.http_server import create_app |
|
|
from models import EchoAction, EchoObservation |
|
|
from server.echo_environment import EchoEnvironment |
|
|
|
|
|
|
|
|
|
|
|
app = create_app(EchoEnvironment, EchoAction, EchoObservation, env_name="echo_env") |
|
|
|
|
|
|
|
|
def main(): |
|
|
""" |
|
|
Entry point for direct execution via uv run or python -m. |
|
|
|
|
|
This function enables running the server without Docker: |
|
|
uv run --project . server |
|
|
python -m envs.echo_env.server.app |
|
|
openenv serve echo_env |
|
|
|
|
|
""" |
|
|
import uvicorn |
|
|
|
|
|
uvicorn.run(app, host="0.0.0.0", port=8000) |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |
|
|
|