ethicsguard / server /app.py
GodreignElgin
Allow reset endpoint without request body
728bc12
from __future__ import annotations
from fastapi import Body, FastAPI
import uvicorn
from server.environment import OpenEnvAdapter, ResetRequest, StepRequest
app = FastAPI(title="EthicsGuard")
adapter = OpenEnvAdapter()
@app.get("/")
async def root() -> dict[str, str]:
return {"name": "ethicsguard", "status": "ok"}
@app.get("/health")
async def health() -> dict[str, str]:
return {"status": "ok"}
@app.post("/reset")
async def reset(request: ResetRequest | None = Body(default=None)) -> dict[str, object]:
return (await adapter.reset(request)).model_dump()
@app.post("/step")
async def step(request: StepRequest) -> dict[str, object]:
return (await adapter.step(request)).model_dump()
@app.get("/state")
async def state() -> dict[str, object]:
return (await adapter.state()).model_dump()
@app.get("/tasks")
async def tasks() -> dict[str, object]:
return (await adapter.tasks()).model_dump()
@app.post("/close")
async def close() -> dict[str, str]:
await adapter.close()
return {"status": "closed"}
def main() -> None:
uvicorn.run("server.app:app", host="0.0.0.0", port=7860)
if __name__ == "__main__":
main()