pub trait ModelProvider: Send + Sync {
// Required methods
fn id(&self) -> ProviderId;
fn complete<'a>(
&'a self,
request: ModelRequest,
) -> ProviderFuture<'a, Result<ModelResponse, ProviderError>>;
fn stream<'a>(
&'a self,
request: ModelRequest,
) -> ProviderFuture<'a, Result<BoxedEventStream<'a>, ProviderError>>;
}