use typedlm::http::OpenAiCompatible;
pub fn provider() -> OpenAiCompatible {
let env = |name| std::env::var(name).ok().filter(|v: &String| !v.is_empty());
let Some(model) = env("TYPEDLM_MODEL") else {
eprintln!("set TYPEDLM_MODEL, e.g. TYPEDLM_MODEL=qwen3:32b for a local Ollama");
std::process::exit(2);
};
match env("TYPEDLM_API_KEY") {
Some(key) => {
let base_url = env("TYPEDLM_BASE_URL").unwrap_or("https://api.openai.com/v1".into());
OpenAiCompatible::new(base_url, model).api_key(key)
}
None => match env("TYPEDLM_BASE_URL") {
Some(base_url) => {
let capabilities = typedlm::Provider::capabilities(&OpenAiCompatible::ollama(""));
OpenAiCompatible::new(base_url, model).capabilities(capabilities)
}
None => OpenAiCompatible::ollama(model),
},
}
}