Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from pydantic import BaseModel, Field | |
| from openenv.core.env_server.types import Action, Observation, State | |
| from env.models import ActionLogEntry, GPUState, JobState, SchedulingMetrics | |
| class SuggestedAssignment(BaseModel): | |
| job_id: str | |
| gpu_id: str | |
| priority: str | |
| deadline: int | |
| vram_fit: int | |
| estimated_finish_step: int | |
| can_finish_before_deadline: bool | |
| class GPUSchedulerAction(Action): | |
| action: str = Field(..., description="place or defer") | |
| job_id: str | None = Field(default=None, description="Job identifier for place actions") | |
| gpu_id: str | None = Field(default=None, description="GPU identifier for place actions") | |
| rationale: str = Field(..., min_length=1, max_length=240, description="Short explanation for the decision") | |
| class GPUSchedulerObservation(Observation): | |
| scenario_id: str | |
| current_tick: int | |
| tick_limit: int | |
| summary: str | |
| action_hint: str | |
| last_step_valid_action: bool | None = None | |
| last_step_details: str | None = None | |
| priority_alerts: list[str] = Field(default_factory=list) | |
| feasible_assignments: list[str] = Field(default_factory=list) | |
| suggested_assignments: list[SuggestedAssignment] = Field(default_factory=list) | |
| gpu_status_lines: list[str] = Field(default_factory=list) | |
| queue_status_lines: list[str] = Field(default_factory=list) | |
| pending_jobs: list[JobState] | |
| running_jobs: list[JobState] | |
| completed_jobs: list[JobState] | |
| missed_jobs: list[JobState] | |
| gpus: list[GPUState] | |
| metrics: SchedulingMetrics | |
| last_event: str | None = None | |
| action_log: list[ActionLogEntry] = Field(default_factory=list) | |
| class GPUSchedulerState(State): | |
| scenario_id: str = "" | |
| current_tick: int = 0 | |
| tick_limit: int = 0 | |
| summary: str = "" | |
| action_hint: str = "" | |
| last_step_valid_action: bool | None = None | |
| last_step_details: str | None = None | |
| pending_count: int = 0 | |
| running_count: int = 0 | |
| completed_count: int = 0 | |
| missed_count: int = 0 | |
| priority_alerts: list[str] = Field(default_factory=list) | |
| feasible_assignments: list[str] = Field(default_factory=list) | |
| suggested_assignments: list[SuggestedAssignment] = Field(default_factory=list) | |
| gpu_status_lines: list[str] = Field(default_factory=list) | |
| queue_status_lines: list[str] = Field(default_factory=list) | |
| pending_jobs: list[JobState] = Field(default_factory=list) | |
| running_jobs: list[JobState] = Field(default_factory=list) | |
| completed_jobs: list[JobState] = Field(default_factory=list) | |
| missed_jobs: list[JobState] = Field(default_factory=list) | |
| gpus: list[GPUState] = Field(default_factory=list) | |
| action_log: list[ActionLogEntry] = Field(default_factory=list) | |
| metrics: SchedulingMetrics = Field(default_factory=SchedulingMetrics) | |
| last_event: str | None = None | |