pub struct FallbackModel { /* private fields */ }Expand description
Model wrapper that tries adapters in order until one succeeds.
Implementations§
Source§impl FallbackModel
impl FallbackModel
Sourcepub fn new(models: Vec<DynModelAdapter>) -> Self
pub fn new(models: Vec<DynModelAdapter>) -> Self
Create a fallback wrapper from ordered candidate models.
§Panics
Panics when models is empty because a fallback wrapper requires at least one candidate.
Sourcepub fn with_model_name(self, model_name: impl Into<String>) -> Self
pub fn with_model_name(self, model_name: impl Into<String>) -> Self
Override the exposed model name.
Trait Implementations§
Source§impl ModelAdapter for FallbackModel
impl ModelAdapter for FallbackModel
Source§fn model_name(&self) -> &str
fn model_name(&self) -> &str
Provider model name.
Source§fn provider_name(&self) -> Option<&str>
fn provider_name(&self) -> Option<&str>
Provider name.
Source§fn profile(&self) -> &ModelProfile
fn profile(&self) -> &ModelProfile
Model capability profile.
Source§fn default_settings(&self) -> Option<&ModelSettings>
fn default_settings(&self) -> Option<&ModelSettings>
Default generation settings.
Source§fn request<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Perform a complete model request.
Source§fn request_stream<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<Vec<ModelResponseStreamEvent>, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request_stream<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<Vec<ModelResponseStreamEvent>, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream a model request as canonical response part deltas.
Source§fn request_stream_incremental<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponseEventStream, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request_stream_incremental<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponseEventStream, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream a model request and yield canonical events as they arrive.
Source§fn start_run_session(&self) -> Box<dyn ModelRunSession + '_>
fn start_run_session(&self) -> Box<dyn ModelRunSession + '_>
Create a run-scoped session for agent loops that may issue multiple model requests.
Source§fn request_stream_final<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request_stream_final<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream a model request and return the assembled final response.
Source§fn count_tokens<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_messages: &'life1 [ModelMessage],
_settings: Option<&'life2 ModelSettings>,
_params: &'life3 ModelRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<Usage, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn count_tokens<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_messages: &'life1 [ModelMessage],
_settings: Option<&'life2 ModelSettings>,
_params: &'life3 ModelRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<Usage, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Count tokens for a request where provider support exists.
Auto Trait Implementations§
impl !RefUnwindSafe for FallbackModel
impl !UnwindSafe for FallbackModel
impl Freeze for FallbackModel
impl Send for FallbackModel
impl Sync for FallbackModel
impl Unpin for FallbackModel
impl UnsafeUnpin for FallbackModel
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