use crate::model::LlmResponse;
use async_trait::async_trait;
#[async_trait]
pub trait LlmClient: Send + Sync {
async fn complete(
&self,
prompt: &str,
context: Option<&[String]>,
) -> anyhow::Result<LlmResponse>;
fn provider_name(&self) -> &'static str;
fn fingerprint(&self) -> Option<String> {
None
}
}
pub mod fake;
pub mod openai;
pub mod tracing;