File size: 1,837 Bytes
9c195fe
842577f
9c195fe
842577f
9c195fe
842577f
 
42757ca
 
 
 
9c195fe
 
842577f
42757ca
 
 
 
 
 
 
 
 
1bac517
42757ca
 
9c195fe
 
 
 
42757ca
9c195fe
42757ca
 
9c195fe
 
842577f
9c195fe
 
 
 
1bac517
9c195fe
 
 
 
 
 
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
43
44
45
46
47
48
49
from typing import Any, Dict, List, Optional
from pydantic import Field

from openenv.core.env_server.types import Action, Observation, State


class DataCleanAction(Action):
    action_type: str = Field(...)
    target_field: str = Field(default="")
    target_row: int = Field(default=0)
    new_value: str = Field(default="")


class DataCleanObservation(Observation):
    task_name: str = Field(default="")
    task_description: str = Field(default="")
    dataset: List[Dict[str, Any]] = Field(default_factory=list)
    errors_found: List[Dict[str, Any]] = Field(default_factory=list)
    errors_remaining: int = Field(default=0)
    errors_total: int = Field(default=0)
    errors_fixed: int = Field(default=0)
    step_count: int = Field(default=0)
    max_steps: int = Field(default=20)
    cumulative_reward: float = Field(default=0.01)
    last_action_result: str = Field(default="")
    task_hint: str = Field(default="")
    available_actions: List[str] = Field(
        default_factory=lambda: [
            "fix_missing", "fix_type", "fix_range", "fix_format",
            "fix_duplicate", "validate", "skip"
        ]
    )
    progress_pct: float = Field(default=0.0)
    field_names: List[str] = Field(default_factory=list)


class DataCleanState(State):
    task_name: str = Field(default="")
    max_steps: int = Field(default=20)
    done: bool = Field(default=False)
    reward_history: List[float] = Field(default_factory=list)
    cumulative_reward: float = Field(default=0.01)
    dataset: List[Dict[str, Any]] = Field(default_factory=list)
    ground_truth: List[Dict[str, Any]] = Field(default_factory=list)
    errors: List[Dict[str, Any]] = Field(default_factory=list)
    errors_fixed: int = Field(default=0)
    total_errors: int = Field(default=0)
    last_actions: List[str] = Field(default_factory=list)