Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI | |
| from pydantic import BaseModel, Field | |
| from typing import Dict, Any | |
| from env.environment import EmailTriageEnv | |
| app = FastAPI() | |
| env = EmailTriageEnv() | |
| async def root(): | |
| return { | |
| "name": "Email Triage OpenEnv", | |
| "status": "running", | |
| "instructions": "Use POST /reset and POST /step to interact with this environment." | |
| } | |
| class ResetRequest(BaseModel): | |
| task: str = "easy" | |
| class StepRequest(BaseModel): | |
| action: Dict[str, Any] = Field(default_factory=dict) | |
| async def reset_env(req: ResetRequest): | |
| obs, info = await env.reset(req.task) | |
| return { | |
| "observation": obs.model_dump(), | |
| "info": info | |
| } | |
| async def step_env(req: StepRequest): | |
| obs, reward, done, info = await env.step(req.action) | |
| return { | |
| "observation": obs.model_dump() if obs else None, | |
| "reward": float(reward), | |
| "done": bool(done), | |
| "info": info | |
| } | |
| async def get_state(): | |
| state = env.state() | |
| return state.model_dump() | |