pub struct FallbackProvider { /* private fields */ }Expand description
A provider that falls back to a secondary provider on retryable errors.
§Example
use cognate_providers::{OpenAiProvider, AnthropicProvider, FallbackProvider};
use cognate_core::{Provider, Request, Message};
use std::sync::Arc;
let primary = Arc::new(OpenAiProvider::new(std::env::var("OPENAI_API_KEY").unwrap())?);
let secondary = Arc::new(AnthropicProvider::new(std::env::var("ANTHROPIC_API_KEY").unwrap())?);
let provider = FallbackProvider::new(primary, secondary);
let resp = provider
.complete(Request::new().with_model("gpt-4o").with_message(Message::user("Hi")))
.await?;
println!("{}", resp.content());Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FallbackProvider
impl !RefUnwindSafe for FallbackProvider
impl Send for FallbackProvider
impl Sync for FallbackProvider
impl Unpin for FallbackProvider
impl UnsafeUnpin for FallbackProvider
impl !UnwindSafe for FallbackProvider
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