Team Ai
Apppublic

PRANAV05092003/autonomous-code-refactoring-env

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes
models.py157 linesDownload Raw Back to root
1from __future__ import annotations2 3from typing import Any, Dict, List, Optional, Sequence4 5from pydantic import BaseModel, Field6 7 8class ObservationModel(BaseModel):9    code_length: float10    complexity_score: float11    runtime_s: float12    error_flag: bool13 14    @classmethod15    def from_vector(cls, values: Sequence[float]) -> "ObservationModel":16        vector = list(values)17        if len(vector) != 4:18            raise ValueError(f"observation vector must have length 4, got {len(vector)}")19        return cls(20            code_length=float(vector[0]),21            complexity_score=float(vector[1]),22            runtime_s=float(vector[2]),23            error_flag=bool(vector[3]),24        )25 26    def to_vector(self) -> List[float]:27        return [28            float(self.code_length),29            float(self.complexity_score),30            float(self.runtime_s),31            float(int(self.error_flag)),32        ]33 34 35class ActionModel(BaseModel):36    action: int = Field(ge=0, le=4)37    action_name: Optional[str] = None38 39 40class RewardModel(BaseModel):41    raw: float42    normalized: float = Field(ge=0.0, le=1.0)43    components: Dict[str, float]44 45 46class HealthResponse(BaseModel):47    status: str48    env: str49    version: str50 51 52class CompatibilityHealthResponse(BaseModel):53    status: str54    service: str55 56 57class ResetRequest(BaseModel):58    task_id: Optional[str] = None59    seed: Optional[int] = None60    code: Optional[str] = None61 62 63class StepRequest(BaseModel):64    action: int = Field(ge=0, le=4)65 66 67class GradeRequest(BaseModel):68    code: str69 70 71class TaskInfo(BaseModel):72    id: str73    name: str74    description: str75    difficulty: str76    initial_code: str77 78 79class TasksResponse(BaseModel):80    tasks: List[TaskInfo]81 82 83class GradeResponse(BaseModel):84    task_id: str85    score: float86    passed: bool87 88 89class StateResponse(BaseModel):90    current_code: str91    episode_steps: int92    max_steps: int93    complexity: float94    last_runtime: float95    last_error: bool96    sample_id: Optional[str]97    language: Optional[str]98    task_id: Optional[str]99    observation: ObservationModel100    observation_vector: List[float]101    action_meanings: Dict[int, str]102 103 104class ResetResponse(BaseModel):105    observation: ObservationModel106    observation_vector: List[float]107    info: Dict[str, Any]108    task_id: Optional[str]109    state: StateResponse110 111 112class StepResponse(BaseModel):113    action: ActionModel114    observation: ObservationModel115    observation_vector: List[float]116    reward: RewardModel117    done: bool118    terminated: bool119    truncated: bool120    info: Dict[str, Any]121    state: StateResponse122 123 124class OptimizeRequest(BaseModel):125    code: str126    task_id: Optional[str] = None127    max_steps: int = Field(default=5, ge=1, le=5)128    use_rl: bool = True129    use_llm: bool = False130    fallback_to_llm: bool = True131    rl_model_path: Optional[str] = None132    api_base_url: Optional[str] = None133    model_name: Optional[str] = None134    api_token: Optional[str] = None135 136 137class OptimizationStep(BaseModel):138    step: int139    action: int140    action_name: str141    reason: str142    source: str143    reward: float144    normalized_reward: float145    changed: bool146    complexity: float147 148 149class OptimizeResponse(BaseModel):150    original_code: str151    optimized_code: str152    diff: str153    steps: List[OptimizationStep]154    cumulative_reward: float155    task_id: Optional[str]156    task_score: Optional[float]157