use anyhow::Result;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LlmMessage {
pub role: String,
pub content: String,
}
#[async_trait::async_trait]
pub trait LlmProvider: Send + Sync {
async fn complete(&self, messages: Vec<LlmMessage>) -> Result<String>;
}