Download server/app.py from BAIBHAV1234/Sepsis-OpenEnv: direct link, hf CLI and curl.
- Browser
- Download file 2.18 kB
-
https://huggingface.co/BAIBHAV1234/Sepsis-OpenEnv/resolve/main/server/app.py
- Command line
-
hf download hf://BAIBHAV1234/Sepsis-OpenEnv/server/app.py
-
curl -L -o app.py https://huggingface.co/BAIBHAV1234/Sepsis-OpenEnv/resolve/main/server/app.py
2.18 kB
| from __future__ import annotations | |
| import os | |
| from fastapi import FastAPI | |
| import uvicorn | |
| from models import SepsisAction, SepsisObservation, SepsisState | |
| from openenv_compat import OPENENV_AVAILABLE, create_app | |
| from server.sepsis_environment import SepsisTreatmentEnvironment | |
| if OPENENV_AVAILABLE and create_app is not None: | |
| app = create_app(SepsisTreatmentEnvironment, SepsisAction, SepsisObservation, env_name="sepsis-openenv") | |
| else: | |
| environment = SepsisTreatmentEnvironment() | |
| app = FastAPI(title="Sepsis OpenEnv", version="0.1.0") | |
| def health() -> dict[str, str]: | |
| return {"status": "ok"} | |
| def metadata() -> dict: | |
| return environment.metadata() | |
| def schema() -> dict: | |
| return { | |
| "action_schema": SepsisAction.model_json_schema(), | |
| "observation_schema": SepsisObservation.model_json_schema(), | |
| "state_schema": SepsisState.model_json_schema(), | |
| } | |
| def reset(payload: dict | None = None) -> dict: | |
| task_id = None | |
| if payload: | |
| task_id = payload.get("task_id") | |
| observation = environment.reset(task_id=task_id) | |
| return { | |
| "observation": observation.model_dump(), | |
| "reward": 0.0, | |
| "done": False, | |
| "info": { | |
| "tasks": environment.available_tasks(), | |
| "metrics": environment.current_metrics(), | |
| }, | |
| } | |
| def step(payload: dict) -> dict: | |
| action = SepsisAction(**payload) | |
| observation = environment.step(action) | |
| return { | |
| "observation": observation.model_dump(), | |
| "reward": observation.reward, | |
| "done": observation.done, | |
| "info": { | |
| "metrics": environment.current_metrics(), | |
| }, | |
| } | |
| def state() -> dict: | |
| return environment.state.model_dump() | |
| def main() -> None: | |
| port = int(os.getenv("PORT", "7860")) | |
| uvicorn.run("server.app:app", host="0.0.0.0", port=port) | |
| if __name__ == "__main__": | |
| main() | |