arms 0.0.3

🧬 The adaptive model routing system for exploration and exploitation.
Documentation
import abc

from amrs import config

class ModelInfo:
    request_num: int = 0
    average_latency: float = 0.0

class Router(abc.ABC):
    def __init__(self, model_list: list[config.ModelName]):
        self._model_list = model_list

    @abc.abstractmethod
    def sample(self, content: str) -> config.ModelName:
        pass

def new_router(model_cfgs: list[config.ModelConfig], mode: config.RouterMode) -> Router:
    model_list = [f"{model_cfg.provider}/{model_cfg.id}" for model_cfg in model_cfgs]

    if mode == config.RouterMode.RANDOM:
        from amrs.router.random import RandomRouter
        return RandomRouter(model_list)
    else:
        raise ValueError(f"Unknown routing mode: {mode}")