use crate::provider::Provider;
pub const COHERE_URL: &str = "https://api.cohere.com/v2/audio/transcriptions";
pub const DEFAULT_COHERE_MODEL: &str = "cohere-transcribe-arabic-07-2026";
#[derive(Debug, Clone)]
pub struct Endpoint {
pub url: String,
pub api_key: Option<String>,
pub model: String,
pub provider: Provider,
}
impl Endpoint {
pub fn cohere(api_key: impl Into<String>, model: Option<String>) -> Self {
Endpoint {
url: COHERE_URL.to_string(),
api_key: Some(api_key.into()),
model: model.unwrap_or_else(|| DEFAULT_COHERE_MODEL.to_string()),
provider: Provider::Cohere,
}
}
pub fn openai_compatible(
url: impl Into<String>,
model: impl Into<String>,
api_key: Option<String>,
) -> Self {
Endpoint {
url: url.into(),
api_key,
model: model.into(),
provider: Provider::OpenAiCompatible,
}
}
}