pub struct StaticEmbedModel { /* private fields */ }Expand description
Loaded Model2Vec static embedder.
Constructed via StaticEmbedModel::from_path. Use
encode_query for a single text and
encode_batch for many — the batch path is
where the parallel-pool win lives.
Implementations§
Source§impl StaticEmbedModel
impl StaticEmbedModel
Sourcepub fn from_path(path: &Path, normalize_override: Option<bool>) -> Result<Self>
pub fn from_path(path: &Path, normalize_override: Option<bool>) -> Result<Self>
Load from a local directory containing
tokenizer.json, model.safetensors, and config.json.
normalize_override lets callers force-enable or force-disable
L2 normalization regardless of what config.json says. Pass
None to honor the config.
Sourcepub fn from_bytes(
tokenizer_bytes: &[u8],
model_bytes: &[u8],
config_bytes: &[u8],
normalize_override: Option<bool>,
) -> Result<Self>
pub fn from_bytes( tokenizer_bytes: &[u8], model_bytes: &[u8], config_bytes: &[u8], normalize_override: Option<bool>, ) -> Result<Self>
Load from in-memory bytes (e.g., for embedded resources or tests).
Embedding dimension.
Sourcepub fn encode_query(&self, text: &str) -> Vec<f32>
pub fn encode_query(&self, text: &str) -> Vec<f32>
Encode a single text into a row vector.
Used at query time. The tokenization step is single-text so the
nested-rayon trap doesn’t apply, but it’s a separate code path
that avoids the unnecessary encode_batch_fast setup.
Sourcepub fn encode_batch(&self, texts: &[&str]) -> Vec<Vec<f32>>
pub fn encode_batch(&self, texts: &[&str]) -> Vec<Vec<f32>>
Encode a batch of texts.
Iterates over fixed-size sub-batches (BATCH_SIZE = 1024), each
tokenized via encode_batch_fast (parallel internally inside
tokenizers) and then mean-pooled via par_iter on the rayon
pool. Calling one giant encode_batch_fast on a 250K-item
corpus dominates wall time in Encoding allocation + internal
chunk scheduling; the 1024-batch shape mirrors
model2vec_rs’s internal default and measured noticeably
faster on a 92K-file linux-source corpus.
Auto Trait Implementations§
impl !Freeze for StaticEmbedModel
impl RefUnwindSafe for StaticEmbedModel
impl Send for StaticEmbedModel
impl Sync for StaticEmbedModel
impl Unpin for StaticEmbedModel
impl UnsafeUnpin for StaticEmbedModel
impl UnwindSafe for StaticEmbedModel
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.