Skip to main content

FallbackConfig

Struct FallbackConfig 

Source
pub struct FallbackConfig { /* private fields */ }
Expand description

Fallback configuration

Manages fallback mappings for different error types. Each model can have different fallback models configured for different scenarios.

§Thread Safety

Uses RwLock to allow concurrent reads and exclusive writes.

Implementations§

Source§

impl FallbackConfig

Source

pub fn new() -> Self

Create a new empty fallback configuration

Source

pub fn add_general(self, model: &str, fallbacks: Vec<String>) -> Self

Add general fallback models for a model (builder pattern)

General fallbacks are used when no specific fallback type matches the error.

§Panics

Panics if the internal lock is poisoned (indicates a bug in the calling code).

Source

pub fn add_context_window(self, model: &str, fallbacks: Vec<String>) -> Self

Add context window fallback models for a model (builder pattern)

Context window fallbacks are used when the input exceeds the model’s maximum context length.

§Panics

Panics if the internal lock is poisoned (indicates a bug in the calling code).

Source

pub fn add_content_policy(self, model: &str, fallbacks: Vec<String>) -> Self

Add content policy fallback models for a model (builder pattern)

Content policy fallbacks are used when content is filtered or rejected by safety systems.

§Panics

Panics if the internal lock is poisoned (indicates a bug in the calling code).

Source

pub fn add_rate_limit(self, model: &str, fallbacks: Vec<String>) -> Self

Add rate limit fallback models for a model (builder pattern)

Rate limit fallbacks are used when the model’s rate limit is exceeded.

§Panics

Panics if the internal lock is poisoned (indicates a bug in the calling code).

Source

pub fn get_fallbacks_for_type( &self, model_name: &str, fallback_type: FallbackType, ) -> Vec<String>

Get fallback models for a specific type

Returns a cloned vector of fallback model names. Returns empty vector if no fallbacks are configured for the given model and type.

§Panics

Panics if the internal lock is poisoned (indicates a bug in the calling code).

Trait Implementations§

Source§

impl Debug for FallbackConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for FallbackConfig

Source§

fn default() -> FallbackConfig

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> BudgetAwareRouting for T

Source§

fn filter_by_budget( &self, providers: Vec<String>, budget_router: &BudgetAwareRouter, ) -> Vec<String>

Filter providers based on budget availability
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Injectable for T
where T: Send + Sync + 'static,

Source§

fn type_name(&self) -> &'static str

Get the type name for debugging
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> SharedResource for T
where T: Send + Sync + 'static,