mirror of
https://github.com/hoshikawa2/agent_framework_oci_evaluator.git
synced 2026-07-09 18:34:20 +00:00
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from __future__ import annotations
|
|
from dataclasses import dataclass, field
|
|
import yaml
|
|
from pathlib import Path
|
|
from evaluator.config.settings import settings
|
|
|
|
@dataclass
|
|
class AgentConfig:
|
|
agent_id: str
|
|
enabled: bool = True
|
|
days_back: int = 1
|
|
percentage: float = 1.0
|
|
langfuse_agent_aliases: list[str] = field(default_factory=list)
|
|
gcs_prefix: str = ""
|
|
|
|
@property
|
|
def aliases(self) -> set[str]:
|
|
return {self.agent_id, *self.langfuse_agent_aliases}
|
|
|
|
|
|
def load_agents(path: str | None = None) -> list[AgentConfig]:
|
|
p = settings.path(path or settings.agents_config_path)
|
|
data = yaml.safe_load(p.read_text()) or {}
|
|
agents = []
|
|
for item in data.get("agents", []):
|
|
cfg = AgentConfig(
|
|
agent_id=item["agent_id"],
|
|
enabled=bool(item.get("enabled", True)),
|
|
days_back=int(item.get("days_back", item.get("daysBack", 1))),
|
|
percentage=float(item.get("percentage", 1.0)),
|
|
langfuse_agent_aliases=list(item.get("langfuse_agent_aliases", [])),
|
|
gcs_prefix=str(item.get("gcs_prefix", "")),
|
|
)
|
|
if cfg.enabled:
|
|
agents.append(cfg)
|
|
return agents
|