pub struct Embedder { /* private fields */ }Implementations§
Source§impl Embedder
impl Embedder
pub fn load(config: EmbedderConfig) -> Result<Self, EmbedError>
pub fn model_id(&self) -> &str
pub fn native_dim(&self) -> usize
pub fn dimension(&self) -> usize
Sourcepub fn provider_used(&self) -> &str
pub fn provider_used(&self) -> &str
Provider serving inference: "cpu", "directml" or "coreml".
Sourcepub fn fallback_reason(&self) -> Option<&str>
pub fn fallback_reason(&self) -> Option<&str>
Why an accelerator was replaced by CPU, when it was.
Sourcepub fn pipeline_id(&self) -> String
pub fn pipeline_id(&self) -> String
Stable fingerprint of everything that changes the produced vectors, so callers can detect when stored vectors need re-embedding. Fed by:
- the pipeline schema version of this crate’s embedding math;
- model id and native dimension;
- SHA-256 of
model_q4.onnx,model_q4.onnx_data,tokenizer.jsonandconfig.json(absent file recorded as absent); - the document and query prompt templates;
- pooling and normalization descriptions;
- Matryoshka truncate dimension and max token length;
- whether Gemma 2 modality sentinels are scrubbed.
Not fed by provider, thread count or batch size: those change only
floating-point noise (see max_batch tolerance in the README), not
the pipeline. Computed once on first call (hashes the model files) and
cached; format rkpipe1-<32 hex>.
pub fn embed(&self, text: &str) -> Result<Vec<f32>, EmbedError>
pub fn embed_query(&self, text: &str) -> Result<Vec<f32>, EmbedError>
Sourcepub fn embed_batch<'a, I>(&self, texts: I) -> Result<Vec<Vec<f32>>, EmbedError>where
I: IntoIterator<Item = &'a str>,
pub fn embed_batch<'a, I>(&self, texts: I) -> Result<Vec<Vec<f32>>, EmbedError>where
I: IntoIterator<Item = &'a str>,
Embeds documents in input order. Texts are tokenized together, ordered
by length so chunks pad little, run max_batch rows per ONNX call with
the attention mask honoured, then returned in input order.
Sourcepub fn embed_query_batch<'a, I>(
&self,
texts: I,
) -> Result<Vec<Vec<f32>>, EmbedError>where
I: IntoIterator<Item = &'a str>,
pub fn embed_query_batch<'a, I>(
&self,
texts: I,
) -> Result<Vec<Vec<f32>>, EmbedError>where
I: IntoIterator<Item = &'a str>,
Query-prompt counterpart of Self::embed_batch.
Auto Trait Implementations§
impl !Freeze for Embedder
impl RefUnwindSafe for Embedder
impl Send for Embedder
impl Sync for Embedder
impl Unpin for Embedder
impl UnsafeUnpin for Embedder
impl UnwindSafe for Embedder
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 more