#[cfg(feature = "ollama")]
pub mod ollama;
#[cfg(feature = "openai")]
pub mod openai;
#[cfg(feature = "anthropic")]
pub mod anthropic;
use async_trait::async_trait;
use crate::error::Result;
#[async_trait]
pub trait Llm: Send + Sync {
async fn generate(&self, prompt: &str) -> Result<String>;
async fn generate_with_system(&self, system: &str, user: &str) -> Result<String>;
fn model_name(&self) -> &str;
}