Spaces:
Running
Running
| """ | |
| MedSentinel OpenEnv Server | |
| =========================== | |
| FastAPI application built with openenv-core's create_app(). | |
| Exposes /reset, /step, /state, /schema, /ws endpoints. | |
| Usage: | |
| uvicorn server.app:app --host 0.0.0.0 --port 7860 | |
| HuggingFace Spaces: | |
| The openenv.yaml points to this file as the app entry point. | |
| HF Spaces runs on port 7860 by default. | |
| """ | |
| from __future__ import annotations | |
| try: | |
| from openenv.core.env_server.http_server import create_app | |
| except ImportError as e: | |
| raise ImportError( | |
| "openenv-core is required. Install with: pip install openenv-core" | |
| ) from e | |
| try: | |
| from ..models import MedSentinelAction, MedSentinelObservation | |
| from .medsentinel_environment import MedSentinelEnvironment | |
| except ImportError: | |
| from models import MedSentinelAction, MedSentinelObservation | |
| from server.medsentinel_environment import MedSentinelEnvironment | |
| # create_app wires up all OpenEnv-standard endpoints: | |
| # POST /reset -> environment.reset() | |
| # POST /step -> environment.step(action) | |
| # GET /state -> environment.state | |
| # GET /schema -> action + observation JSON schemas | |
| # WS /ws -> WebSocket persistent session | |
| app = create_app( | |
| MedSentinelEnvironment, | |
| MedSentinelAction, | |
| MedSentinelObservation, | |
| env_name="medsentinel", | |
| max_concurrent_envs=1, | |
| ) | |
| def main(host: str = "0.0.0.0", port: int = 7860) -> None: | |
| import uvicorn | |
| uvicorn.run(app, host=host, port=port) | |
| if __name__ == "__main__": | |
| import argparse | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--port", type=int, default=7860) | |
| parser.add_argument("--host", type=str, default="0.0.0.0") | |
| args = parser.parse_args() | |
| main(host=args.host, port=args.port) | |