pub trait Provider: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn complete(
&self,
request: &ProviderRequest,
) -> Result<ModelTurn, CoreError>;
// Provided methods
fn supports_streaming(&self) -> bool { ... }
fn complete_streaming(
&self,
request: &ProviderRequest,
_on_text: &dyn Fn(&str),
) -> Result<ModelTurn, CoreError> { ... }
}Required Methods§
fn name(&self) -> &str
fn complete(&self, request: &ProviderRequest) -> Result<ModelTurn, CoreError>
Provided Methods§
Sourcefn supports_streaming(&self) -> bool
fn supports_streaming(&self) -> bool
Whether this provider supports streaming completions.
Sourcefn complete_streaming(
&self,
request: &ProviderRequest,
_on_text: &dyn Fn(&str),
) -> Result<ModelTurn, CoreError>
fn complete_streaming( &self, request: &ProviderRequest, _on_text: &dyn Fn(&str), ) -> Result<ModelTurn, CoreError>
Stream a completion, calling on_text for each text delta as it arrives.
Returns the final assembled ModelTurn. Default falls back to complete().