use crate::models::{Provider, ProviderModelSupport};
use super::ModelId;
impl ModelId {
pub fn provider(&self) -> Provider {
if self.openrouter_metadata().is_some() {
return Provider::OpenRouter;
}
if let Some(provider) = self.table_provider() {
return provider;
}
match self {
ModelId::Custom(provider_key, _) => {
use std::str::FromStr;
Provider::from_str(provider_key).unwrap_or(Provider::OpenAI)
}
_ => Provider::OpenRouter,
}
}
pub fn supports_reasoning_effort(&self) -> bool {
self.provider().supports_reasoning_effort(&self.as_str())
}
}