Skip to main content

Module model_selector

Module model_selector 

Source
Expand description

Intelligent model selection based on cost / quality / latency tradeoffs.

§Key types

§Example

use tokio_prompt_orchestrator::model_selector::{
    ModelProfile, ModelSelector, SelectionCriteria, SelectionStrategy,
};

let mut selector = ModelSelector::new(SelectionStrategy::CheapestFirst);
selector.register(ModelProfile {
    id: "fast-cheap".to_string(),
    cost_per_1k_tokens: 0.001,
    avg_latency_ms: 200.0,
    quality_score: 0.75,
    max_context_tokens: 8192,
    supports_streaming: true,
    supports_tools: false,
});
let criteria = SelectionCriteria::default();
let model = selector.select(&criteria).unwrap();
assert_eq!(model.id, "fast-cheap");

Structs§

ModelProfile
Static description of a model’s cost, performance, and capability profile.
ModelSelector
Registry and selection engine for ModelProfiles.
ModelUsage
Accumulated runtime usage for a single model.
ModelUsageTracker
Thread-safe tracker for actual model usage.
SelectionCriteria
Hard constraints that a model must satisfy to be eligible for selection.

Enums§

SelectionStrategy
Algorithm used to rank the eligible model candidates.