pub mod mock;
pub mod ollama;
pub use mock::MockBackend;
pub use ollama::OllamaBackend;
use deck_core::LlmBackend;
pub fn from_config(cfg: &deck_core::config::LlmConfig) -> deck_core::Result<Box<dyn LlmBackend>> {
match cfg.backend.as_str() {
"ollama" => {
let b = OllamaBackend::new(
cfg.endpoint.clone(),
std::time::Duration::from_secs(cfg.timeout_secs),
)?;
Ok(Box::new(b))
}
"mock" => Ok(Box::new(MockBackend::default())),
other => Err(deck_core::DeckError::Llm(format!(
"unknown backend: {other}"
))),
}
}