Spaces:
Sleeping
Sleeping
File size: 1,375 Bytes
14de67e 9b9c562 14de67e 9b9c562 e0181f2 14de67e 9b9c562 14de67e | 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 41 42 | from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any
from openenv.core.env_server import Action, Observation, State
class SqlAction(Action):
"""Action representing a SQL query execution."""
query: str
class SqlObservation(Observation):
"""Observation returned after executing a SQL query (or at reset)."""
current_task_instruction: str
schema_info: str
task_id: str
difficulty: str
execution_result: Optional[str] = None
execution_error: Optional[str] = None
task_score: float = 0.0001
grader_feedback: Optional[str] = None
class SqlReward(BaseModel):
"""Structured reward payload for deterministic scoring details."""
total: float
task_score: float
valid_sql_bonus: float = 0.0
progress_bonus: float = 0.0
step_penalty: float = 0.0
safety_penalty: float = 0.0
error_penalty: float = 0.0
details: Dict[str, Any] = Field(default_factory=dict)
class SqlState(State):
"""State tracking for the SQL agent environment."""
current_task_index: int = 0
total_tasks: int = 3
accumulated_reward: float = 0.0
task_scores: List[float] = Field(default_factory=list)
attempts_per_task: List[int] = Field(default_factory=list)
max_attempts_per_task: int = 6
last_reward: float = 0.0
last_info: Dict[str, Any] = Field(default_factory=dict)
|