Spaces:
Sleeping
Sleeping
| """ | |
| Module: app.py | |
| Purpose: FastAPI server exposing the TriageFlow environment via HTTP/WebSocket. | |
| Part of: Medical Triage Assistant — OpenEnv Round 1 | |
| Author: Team Squirrel | |
| Overview: | |
| Uses OpenEnv's create_app() to automatically create all required | |
| endpoints: /reset, /step, /state, /health, /ws, /docs, /web. | |
| This is the entry point when running the server in Docker or locally. | |
| Dependencies: | |
| - openenv.core.env_server.http_server: create_app | |
| - models: TriageAction, TriageObservation | |
| - server.triage_flow_environment: TriageEnvironment | |
| Usage: | |
| uvicorn server.app:app --host 0.0.0.0 --port 8000 | |
| """ | |
| try: | |
| from openenv.core.env_server.http_server import create_app | |
| except ImportError: | |
| from openenv.core.env_server import create_fastapi_app as create_app | |
| try: | |
| from ..models import TriageAction, TriageObservation | |
| from .triage_flow_environment import TriageEnvironment | |
| except (ImportError, ModuleNotFoundError): | |
| import sys, os | |
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| from models import TriageAction, TriageObservation | |
| from server.triage_flow_environment import TriageEnvironment | |
| from .ui import build_triage_ui | |
| # Create the app with web interface | |
| app = create_app( | |
| TriageEnvironment, | |
| TriageAction, | |
| TriageObservation, | |
| env_name="triage_flow", | |
| max_concurrent_envs=1, | |
| gradio_builder=build_triage_ui | |
| ) | |
| from fastapi.responses import RedirectResponse | |
| def redirect_to_web(): | |
| return RedirectResponse(url="/web") | |
| def main(host: str = "0.0.0.0", port: int = 8000): | |
| """ | |
| Entry point for direct execution via uv run or python -m. | |
| Args: | |
| host: Host address to bind to (default: "0.0.0.0") | |
| port: Port number to listen on (default: 8000) | |
| """ | |
| import uvicorn | |
| uvicorn.run(app, host=host, port=port) | |
| if __name__ == "__main__": | |
| main() | |