Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from abc import ABC, abstractmethod | |
| from typing import List | |
| class BaseTask(ABC): | |
| task_id: str | |
| difficulty: str | |
| config_path: str | |
| step_limit: int | |
| _MIN_SCORE: float = 0.001 | |
| _MAX_SCORE: float = 0.999 | |
| def get_system_prompt(self) -> str: | |
| raise NotImplementedError | |
| def grade( | |
| self, | |
| declared_service: str | None, | |
| declared_fault: str | None, | |
| steps_used: int, | |
| rewards: List[float], | |
| ) -> float: | |
| raise NotImplementedError | |
| def _score_correct(correct: bool, steps_used: int, step_limit: int) -> float: | |
| if not correct: | |
| return BaseTask._MIN_SCORE | |
| efficiency = max(0.0, (step_limit - steps_used) / step_limit) | |
| score = 0.5 + 0.5 * efficiency | |
| return float(min(BaseTask._MAX_SCORE, max(BaseTask._MIN_SCORE, score))) | |