pub struct Reranker { /* private fields */ }Expand description
Cross-encoder reranker orchestrator.
Owns a RerankBackend (model trunk + classifier head) and the
tokenizer that produced the encodings the backend expects.
Construct via Self::from_pretrained. Use score_pairs to
rank candidate (query, doc) text pairs.
Implementations§
Source§impl Reranker
impl Reranker
Sourcepub fn from_pretrained(model_repo: &str) -> Result<Self>
pub fn from_pretrained(model_repo: &str) -> Result<Self>
Load a cross-encoder by HuggingFace repo ID.
Routes through crate::backend::load_reranker_cpu for now;
GPU paths slot in here as feature-gated branches when added.
The tokenizer is downloaded via the same hf-hub cache, so
multiple sub-agent MCP processes share weights through
~/.cache/huggingface/hub/.
§Errors
Returns an error if the model can’t be downloaded, lacks a classifier head (i.e., a bi-encoder was supplied by mistake), or fails to load.
Sourcepub fn score_pairs(&self, pairs: &[(&str, &str)]) -> Result<Vec<f32>>
pub fn score_pairs(&self, pairs: &[(&str, &str)]) -> Result<Vec<f32>>
Score a batch of (query, document) pairs.
Returns raw logits (sentence-transformers Identity activation —
the canonical public score for ms-marco cross-encoders), one
per input pair, in input order. Tokenizes with a (query, doc)
tuple so token_type_ids are 0 for the query side, 1 for the
doc side — the convention BERT cross-encoders are trained on.
The tokenizer is pre-configured with LongestFirst truncation
at the model’s max_position_embeddings, so callers don’t need
to clip outputs.
§Errors
Propagates tokenization or forward-pass errors.
Sourcepub fn max_tokens(&self) -> usize
pub fn max_tokens(&self) -> usize
Max sequence length supported by the underlying model.
Auto Trait Implementations§
impl !Freeze for Reranker
impl !RefUnwindSafe for Reranker
impl Send for Reranker
impl Sync for Reranker
impl Unpin for Reranker
impl UnsafeUnpin for Reranker
impl !UnwindSafe for Reranker
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
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>
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.