pub trait LanguageModel: Send + Sync {
// Required methods
fn provider(&self) -> &'static str;
fn model_id(&self) -> String;
fn metadata(&self) -> Option<&LanguageModelMetadata>;
fn generate(
&self,
input: LanguageModelInput,
) -> BoxFuture<'_, LanguageModelResult<ModelResponse>>;
fn stream(
&self,
input: LanguageModelInput,
) -> BoxFuture<'_, LanguageModelResult<LanguageModelStream>>;
}