pub struct HybridRouter { /* private fields */ }Expand description
Hybrid router: heuristic-first, escalates to LLM when confidence is low.
The HybridRouter runs HeuristicRouter first. If the heuristic confidence
is below confidence_threshold, it escalates to the LLM router.
LLM failures always fall back to the heuristic result.
Implementations§
Source§impl HybridRouter
impl HybridRouter
pub fn new( provider: Arc<AnyProvider>, fallback_route: MemoryRoute, confidence_threshold: f32, ) -> Self
pub async fn route_async(&self, query: &str) -> RoutingDecision
Trait Implementations§
Source§impl MemoryRouter for HybridRouter
impl MemoryRouter for HybridRouter
Source§fn route(&self, query: &str) -> MemoryRoute
fn route(&self, query: &str) -> MemoryRoute
Route a query to the appropriate backend(s).
Source§fn route_with_confidence(&self, query: &str) -> RoutingDecision
fn route_with_confidence(&self, query: &str) -> RoutingDecision
Route with a confidence signal. Default implementation wraps
route() with confidence 1.0. Read moreAuto Trait Implementations§
impl Freeze for HybridRouter
impl !RefUnwindSafe for HybridRouter
impl Send for HybridRouter
impl Sync for HybridRouter
impl Unpin for HybridRouter
impl UnsafeUnpin for HybridRouter
impl !UnwindSafe for HybridRouter
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request