Skip to main content

Crate ai_model_directory_router

Crate ai_model_directory_router 

Source
Expand description

AI Model Directory Router

Provider-aware AI model routing, filtering, exact cost calculation, fallback selection, and context-window management. The default bundled feature ships a dated models.dev provider catalog for offline use.

§Quick Start

use ai_model_directory_router::{route, RouteQuery, RouterStore};

let store = RouterStore::bundled().unwrap();

let query = RouteQuery {
    provider: Some("openai".to_string()),
    min_context: Some(128_000),
    ..RouteQuery::default()
};

let result = route(&store, &query);
for model in &result.models {
    println!("{} (via {})", model.id, model.provider);
}

§Modules

  • store loads bundled, local, inline, or live provider catalogs
  • cost calculates per-token costs using exact decimal arithmetic
  • router filters, sorts, and paginates models by provider, price, context, features, and modalities
  • fallback generates scored alternative model chains
  • context checks if prompts fit within context windows
  • compare() produces field-by-field model comparisons with winners

Re-exports§

pub use compare::compare;
pub use compare::compare_models;
pub use context::check_context_fit;
pub use context::check_context_fit_for_provider;
pub use context::find_best_context_model;
pub use cost::calculate_cost_for_model;
pub use cost::estimate_request_cost;
pub use fallback::fallback_chain;
pub use fallback::fallback_chain_for_provider;
pub use overlay::apply_overlay;
pub use overlay::load_models_dev_from_file;
pub use overlay::parse_models_dev;
pub use overlay::ModelsDevCost;
pub use overlay::ModelsDevIndex;
pub use overlay::ModelsDevLimit;
pub use overlay::ModelsDevModalities;
pub use overlay::ModelsDevModel;
pub use overlay::ModelsDevProvider;
pub use overlay::OverlayMode;
pub use overlay::OverlayReport;
pub use router::route;
pub use store::MODELS_DEV_BODY_LIMIT;
pub use store::RouterStore;
pub use store::MODELS_DEV_API_URL;
pub use store::BUNDLED_MODELS_DEV_BYTE_COUNT;
pub use store::BUNDLED_MODELS_DEV_ETAG;
pub use store::BUNDLED_MODELS_DEV_MODEL_COUNT;
pub use store::BUNDLED_MODELS_DEV_PROVIDER_COUNT;
pub use store::BUNDLED_MODELS_DEV_RETRIEVED_AT;
pub use store::BUNDLED_MODELS_DEV_SHA256;
pub use store::BUNDLED_MODELS_DEV_SOURCE_REVISION;
pub use types::*;

Modules§

compare
context
cost
fallback
overlay
Exact provider-qualified enrichment from a models.dev provider catalog.
router
store
types