Interface IModelRouter

Interface for the Model Router. Implementations are responsible for selecting an appropriate AI model and provider based on the given parameters and context.

interface IModelRouter {
    routerId: string;
    initialize(config, providerManager, promptEngine?): Promise<void>;
    selectModel(params, availableModels?): Promise<null | ModelRouteResult>;
}

Implemented by

Methods

Properties

Methods

  • Async

    Initializes the model router with its configuration and necessary dependencies, such as the AIModelProviderManager for accessing information about available models and providers.

    Parameters

    • config: Record<string, any>

      Router-specific configuration (e.g., rules, model preferences).

    • providerManager: any

      An instance of AIModelProviderManager or a similar service that provides access to available models and providers.

    • Optional promptEngine: any

      Optional: An instance of PromptEngine, if the router uses LLM-based routing decisions.

    Returns Promise<void>

    A promise that resolves upon successful initialization.

    Throws

    If initialization fails (e.g., invalid configuration).

  • Async

    Selects an AI model and provider based on the provided parameters and the router's internal logic.

    Parameters

    • params: ModelRouteParams

      The parameters and context for the routing decision.

    • Optional availableModels: ModelInfo[]

      Optional: A pre-fetched list of available models. If not provided, the router may need to fetch this list from its providerManager.

    Returns Promise<null | ModelRouteResult>

    A promise that resolves with the routing decision, or null if no suitable model/provider could be found that meets the criteria.

    Throws

    If a critical error occurs during the selection process.

Properties

routerId: string

A unique identifier for this specific router implementation.