narcolepticchicken's picture
Upload aco/config.py with huggingface_hub
d807f4a verified
"""ACO Configuration."""
from dataclasses import dataclass, field
from typing import Dict, List, Optional
from enum import IntEnum
class ModelTier(IntEnum):
TINY_LOCAL = 1
CHEAP_CLOUD = 2
MEDIUM = 3
FRONTIER = 4
SPECIALIST = 5
@dataclass
class ModelConfig:
tier: int
provider: str
model_id: str
cost_per_1k_input: float
cost_per_1k_output: float
max_context: int
supports_tools: bool = True
supports_vision: bool = False
@dataclass
class RoutingPolicy:
safety_threshold: float = 0.30
downgrade_threshold: float = 0.90
max_retries: int = 3
max_cost_per_task: float = 5.0
use_dynamic_difficulty: bool = True
use_ml_confirmation: bool = True
@dataclass
class ACOConfig:
routing_policy: RoutingPolicy = field(default_factory=RoutingPolicy)
models: Dict[int, ModelConfig] = field(default_factory=dict)
task_floors: Dict[str, int] = field(default_factory=lambda: {
"legal_regulated": 4, "long_horizon": 3, "research": 3,
"coding": 3, "unknown_ambiguous": 3, "quick_answer": 1,
"document_drafting": 2, "tool_heavy": 2, "retrieval_heavy": 2,
})
tier_costs: Dict[int, float] = field(default_factory=lambda: {
1: 0.05, 2: 0.15, 3: 0.75, 4: 1.0, 5: 1.5
})
tier_strengths: Dict[int, float] = field(default_factory=lambda: {
1: 0.35, 2: 0.55, 3: 0.80, 4: 0.93, 5: 0.97
})
router_model_path: str = "router_models/router_bundle_v8.pkl"
enable_cache_aware: bool = True
enable_tool_gate: bool = True
enable_verifier_budgeter: bool = True
enable_doom_detector: bool = True
enable_meta_tools: bool = True
telemetry_file: str = "aco_traces.jsonl"