use crate::driver_registry::ServiceKind;
use crate::model::{ModelProfile, ModelVendor};
use crate::provider::DriverId;
pub use crate::model_profile_data::{
ModelProfileEntry, all_profile_entries, all_profiles, selected_profiles,
};
pub fn profiles_for_provider(provider_type: &DriverId) -> Vec<ModelProfile> {
crate::model_profile_data::profiles_for_provider(provider_type.as_str())
}
pub fn selected_profiles_for_provider(provider_type: &DriverId) -> Vec<ModelProfile> {
crate::model_profile_data::selected_profiles_for_provider(provider_type.as_str())
}
pub fn profile_entries_for_provider(provider_type: &DriverId) -> Vec<ModelProfileEntry> {
crate::model_profile_data::profile_entries_for_provider(provider_type.as_str())
}
pub fn get_model_profile(provider_type: &DriverId, model_id: &str) -> Option<ModelProfile> {
crate::model_profile_data::get_model_profile(provider_type.as_str(), model_id)
}
pub fn estimate_cost_usd(
provider_type: &DriverId,
model_id: &str,
input_tokens: u32,
output_tokens: u32,
cache_read_tokens: u32,
cache_creation_tokens: u32,
) -> Option<f64> {
crate::model_profile_data::estimate_cost_usd(
provider_type.as_str(),
model_id,
input_tokens,
output_tokens,
cache_read_tokens,
cache_creation_tokens,
)
}
pub fn estimate_cost_usd_for_speed(
provider_type: &DriverId,
model_id: &str,
input_tokens: u32,
output_tokens: u32,
cache_read_tokens: u32,
cache_creation_tokens: u32,
served_tier: Option<&str>,
) -> Option<f64> {
crate::model_profile_data::estimate_cost_usd_for_speed(
provider_type.as_str(),
model_id,
input_tokens,
output_tokens,
cache_read_tokens,
cache_creation_tokens,
served_tier,
)
}
pub fn get_model_vendor(provider_type: &DriverId, model_id: &str) -> Option<ModelVendor> {
crate::model_profile_data::get_model_vendor(provider_type.as_str(), model_id)
}
pub fn get_model_profile_key(provider_type: &DriverId, model_id: &str) -> Option<String> {
crate::model_profile_data::get_model_profile_key(provider_type.as_str(), model_id)
}
pub fn get_model_profile_by_key(key: &str) -> Option<ModelProfile> {
crate::model_profile_data::get_model_profile_by_key(key)
}
pub fn get_model_service_kind(provider_type: &DriverId, model_id: &str) -> ServiceKind {
crate::model_profile_data::get_model_service_kind(provider_type.as_str(), model_id)
}