Skip to main content

Provider

Trait Provider 

Source
pub trait Provider: Send + Sync {
    // Required methods
    fn model(&self) -> &str;
    fn complete<'life0, 'async_trait>(
        &'life0 self,
        request: ProviderRequest,
        deltas: Arc<dyn TextDeltaSink>,
        cancellation: CancellationToken,
    ) -> Pin<Box<dyn Future<Output = Result<AssistantResponse, ProviderError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

A model backend. complete sends one request, streams text deltas to deltas, and returns the full answer with any tool calls. It must stop promptly when cancellation fires.

Required Methods§

Source

fn model(&self) -> &str

The model name, for display.

Source

fn complete<'life0, 'async_trait>( &'life0 self, request: ProviderRequest, deltas: Arc<dyn TextDeltaSink>, cancellation: CancellationToken, ) -> Pin<Box<dyn Future<Output = Result<AssistantResponse, ProviderError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§