pub struct ReliableProvider { /* private fields */ }Expand description
Provider wrapper with retry, fallback, auth rotation, and model failover.
Implementations§
Source§impl ReliableProvider
impl ReliableProvider
Trait Implementations§
Source§impl ModelProvider for ReliableProvider
impl ModelProvider for ReliableProvider
Source§fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Warm up the HTTP connection pool (TLS handshake, DNS, HTTP/2 setup).
Default implementation is a no-op; providers with HTTP clients should override.
Source§fn chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: f64,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: f64,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Structured chat API — the single required method. Read more
Source§fn chat_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: f64,
events: UnboundedSender<ProviderStreamEvent>,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn chat_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: f64,
events: UnboundedSender<ProviderStreamEvent>,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Optional streaming chat API. Read more
Source§fn context_window(&self, model: &str) -> Option<usize>
fn context_window(&self, model: &str) -> Option<usize>
Context window size in tokens for the given model. Read more
Source§fn supports_native_tools(&self) -> bool
fn supports_native_tools(&self) -> bool
Whether provider supports native tool calls over API.
Source§fn supports_developer_role(&self, model: &str) -> bool
fn supports_developer_role(&self, model: &str) -> bool
Whether the given model supports the
developer message role (OpenAI-spec).
When true, app-owned instructions are sent as a developer message.
When false, they are folded into the provider’s system-equivalent role.Source§fn native_capabilities(&self) -> Option<ProviderNativeCapabilities>
fn native_capabilities(&self) -> Option<ProviderNativeCapabilities>
Provider-native capabilities outside the chat/tool turn loop. Read more
Source§fn submit_media<'life0, 'async_trait>(
&'life0 self,
request: NativeMediaRequest,
) -> Pin<Box<dyn Future<Output = Result<NativeMediaResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn submit_media<'life0, 'async_trait>(
&'life0 self,
request: NativeMediaRequest,
) -> Pin<Box<dyn Future<Output = Result<NativeMediaResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Submit a provider-native media operation.
Source§fn poll_media_job<'life0, 'life1, 'async_trait>(
&'life0 self,
job: &'life1 NativeMediaJob,
) -> Pin<Box<dyn Future<Output = Result<NativeMediaResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn poll_media_job<'life0, 'life1, 'async_trait>(
&'life0 self,
job: &'life1 NativeMediaJob,
) -> Pin<Box<dyn Future<Output = Result<NativeMediaResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Poll an async provider-native media job.
Auto Trait Implementations§
impl !Freeze for ReliableProvider
impl !RefUnwindSafe for ReliableProvider
impl !UnwindSafe for ReliableProvider
impl Send for ReliableProvider
impl Sync for ReliableProvider
impl Unpin for ReliableProvider
impl UnsafeUnpin for ReliableProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more