Spaces:
Sleeping
Sleeping
| """FastAPI app for the Flatmate RL environment.""" | |
| from __future__ import annotations | |
| import logging | |
| import os | |
| try: | |
| from openenv.core.env_server.web_interface import create_web_interface_app | |
| except Exception as e: # pragma: no cover | |
| raise ImportError("openenv is required. Install dependencies with `uv sync`.") from e | |
| try: | |
| from flatmate_rl.env_config import load_repo_env | |
| from flatmate_rl.models import FlatmateRlAction, FlatmateRlObservation | |
| from flatmate_rl.server.gradio_ui import build_flatmate_gradio_app | |
| from flatmate_rl.server.flatmate_rl_environment import FlatmateRlEnvironment | |
| except Exception: | |
| from env_config import load_repo_env | |
| from models import FlatmateRlAction, FlatmateRlObservation | |
| from server.gradio_ui import build_flatmate_gradio_app | |
| from server.flatmate_rl_environment import FlatmateRlEnvironment | |
| load_repo_env() | |
| app = create_web_interface_app( | |
| FlatmateRlEnvironment, | |
| FlatmateRlAction, | |
| FlatmateRlObservation, | |
| env_name="flatmate_rl", | |
| gradio_builder=build_flatmate_gradio_app, | |
| max_concurrent_envs=4, | |
| ) | |
| def _configure_logging() -> None: | |
| logging.basicConfig( | |
| level=os.getenv("LOG_LEVEL", "INFO").upper(), | |
| format="%(asctime)s %(levelname)s [%(name)s] %(message)s", | |
| ) | |
| logging.getLogger("flatmate_rl").setLevel(os.getenv("LOG_LEVEL", "INFO").upper()) | |
| def main(host: str = "0.0.0.0", port: int = 8000) -> None: | |
| import uvicorn | |
| _configure_logging() | |
| ws_ping_interval = float(os.getenv("UVICORN_WS_PING_INTERVAL", "600")) | |
| ws_ping_timeout = float(os.getenv("UVICORN_WS_PING_TIMEOUT", "600")) | |
| uvicorn.run( | |
| app, | |
| host=host, | |
| port=port, | |
| ws_ping_interval=ws_ping_interval, | |
| ws_ping_timeout=ws_ping_timeout, | |
| ) | |
| if __name__ == "__main__": | |
| import argparse | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--port", type=int, default=8000) | |
| args = parser.parse_args() | |
| main(port=args.port) | |