Skip to main content

Provider

Trait Provider 

Source
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_delta: &dyn Fn(StreamEvent<'_>),
    ) -> Result<ModelTurn, CoreError> { ... }
    fn context_window(&self) -> Option<u32> { ... }
}

Required Methods§

Source

fn name(&self) -> &str

Source

fn complete(&self, request: &ProviderRequest) -> Result<ModelTurn, CoreError>

Provided Methods§

Source

fn supports_streaming(&self) -> bool

Whether this provider supports streaming completions.

Source

fn complete_streaming( &self, request: &ProviderRequest, _on_delta: &dyn Fn(StreamEvent<'_>), ) -> Result<ModelTurn, CoreError>

Stream a completion, calling on_delta for each content delta as it arrives. Returns the final assembled ModelTurn. Default falls back to complete().

Source

fn context_window(&self) -> Option<u32>

Context window size in tokens, if known.

Used by the shell for auto-compaction thresholds. Returns None when the provider doesn’t know its context window (conservative defaults apply).

Implementors§