pub struct RouterModel { /* private fields */ }Expand description
A composite model that routes each call to one child and (optionally) falls back across the rest on error.
Streaming does not fall back: by the time do_stream returns, StreamStart
has been emitted to the user and a retry would duplicate tokens. This
matches Hermes / LiteLLM (route first, delegate second, no mid-stream
fallback). See RFC-0021 §3.3.
Implementations§
Source§impl RouterModel
impl RouterModel
pub fn new( models: Vec<ChildModel>, router: Box<dyn Router>, fallback: FallbackPolicy, config: RouterConfig, ) -> Self
Trait Implementations§
Source§impl LanguageModel for RouterModel
impl LanguageModel for RouterModel
Source§fn do_generate<'life0, 'life1, 'async_trait>(
&'life0 self,
options: &'life1 CallOptions,
) -> Pin<Box<dyn Future<Output = Result<GenerateResult, AiMuxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn do_generate<'life0, 'life1, 'async_trait>(
&'life0 self,
options: &'life1 CallOptions,
) -> Pin<Box<dyn Future<Output = Result<GenerateResult, AiMuxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Generate a complete (non-streaming) response.
Source§fn do_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
options: &'life1 CallOptions,
) -> Pin<Box<dyn Future<Output = Result<StreamResult, AiMuxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn do_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
options: &'life1 CallOptions,
) -> Pin<Box<dyn Future<Output = Result<StreamResult, AiMuxError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Generate a streaming response.
Source§fn specification_version(&self) -> &'static str
fn specification_version(&self) -> &'static str
Specification version (always
"v4").Source§fn config_snapshot(&self) -> ProviderRecord
fn config_snapshot(&self) -> ProviderRecord
RFC-0023: 配置侧快照供录制。默认返回最小信息(provider/model_id);
各 provider 覆盖以提供 base_url/profile/api_key 来源等完整配置。
透明 decorator(TraceLayer 等)必须覆盖并转发 inner 快照。
Auto Trait Implementations§
impl !RefUnwindSafe for RouterModel
impl !UnwindSafe for RouterModel
impl Freeze for RouterModel
impl Send for RouterModel
impl Sync for RouterModel
impl Unpin for RouterModel
impl UnsafeUnpin for RouterModel
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