Skip to main content

ToolRanker

Enum ToolRanker 

Source
pub enum ToolRanker {
    Bm25,
    Semantic,
}
Expand description

A swappable tool ranking strategy. BM25 is the default; Semantic is a real embedder-backed second strategy (enum-dispatch in ToolRanker::rank), not a placeholder — it embeds the query + candidates and ranks by cosine similarity.

Variants§

§

Bm25

Classic BM25 lexical ranking over name + description + arg names.

§

Semantic

Embedding-based semantic ranking via the registry [Embedder] (cosine over doc_text). Falls back to BM25 ordering when the embedder is unreachable (documented graceful fallback, not a stub error).

Implementations§

Source§

impl ToolRanker

Source

pub fn from_pref(s: Option<&str>) -> ToolRanker

Resolve the ranker from a pref string; defaults to BM25.

Source

pub async fn rank( self, query: &str, items: Vec<ToolDescriptor>, limit: usize, embedder: Option<&dyn ToolEmbedder>, ) -> Vec<ToolDescriptor>

Rank descriptors against a query, mutating score and sorting descending. Returns the top limit.

Semantic embeds the query + each candidate’s [doc_text] via the injected ToolEmbedder and ranks by cosine similarity; it falls back to BM25 ordering when the embedder is absent/unreachable (or the query is empty), so it degrades gracefully rather than erroring. Bm25 is the pure lexical path and ignores embedder.

Trait Implementations§

Source§

impl Clone for ToolRanker

Source§

fn clone(&self) -> ToolRanker

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ToolRanker

Source§

impl Debug for ToolRanker

Source§

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

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

impl Eq for ToolRanker

Source§

impl PartialEq for ToolRanker

Source§

fn eq(&self, other: &ToolRanker) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ToolRanker

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.