pub trait ChatModel: Send + Sync {
// Provided methods
fn model_name(&self) -> Option<&str> { ... }
fn base_url(&self) -> String { ... }
fn invoke(
&self,
messages: Vec<ChatMessage>,
) -> Pin<Box<dyn Future<Output = Result<ChatCompletion, Error>> + Send + '_>> { ... }
}