File size: 819 Bytes
9ba4f8a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
01e1628
 
 
 
 
 
 
 
 
 
9ba4f8a
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from __future__ import annotations

from fastapi import FastAPI

from .environment import DeliveryDispatchEnv
from .models import Action


app = FastAPI(title="Delivery Dispatch OpenEnv")
_env = DeliveryDispatchEnv()


@app.get("/health")
def health() -> dict[str, str]:
    return {"status": "ok"}


@app.post("/reset")
def reset(
    task_id: str | None = None,
    max_decision_steps: int | None = None,
    seed: int | None = None,
) -> dict:
    observation = _env.reset(
        task_id=task_id,
        max_decision_steps=max_decision_steps,
        seed=seed,
    )
    return observation.model_dump(mode="json")


@app.get("/state")
def state() -> dict:
    return _env.state().model_dump(mode="json")


@app.post("/step")
def step(action: Action) -> dict:
    return _env.step(action).model_dump(mode="json")