pub struct OnnxEmbedding { /* private fields */ }Expand description
ONNX-based local embedding provider.
Wraps an ONNX sentence-transformer model for on-device vector generation.
When the onnx feature is not enabled, embed and embed_batch return
an Error::Embedding explaining how to enable full inference.
Implementations§
Source§impl OnnxEmbedding
impl OnnxEmbedding
Sourcepub fn new(model_path: &str, dimensions: usize) -> Result<Self>
pub fn new(model_path: &str, dimensions: usize) -> Result<Self>
Create a new ONNX embedding provider from a model path.
The model should be an ONNX sentence-transformer model
(e.g., all-MiniLM-L6-v2 exported to ONNX format).
§Errors
Returns Error::Validation if the file at model_path does not
exist on disk.
Sourcepub fn model_path(&self) -> &str
pub fn model_path(&self) -> &str
Get the model path.
Trait Implementations§
Source§impl Debug for OnnxEmbedding
impl Debug for OnnxEmbedding
Source§impl EmbeddingProvider for OnnxEmbedding
impl EmbeddingProvider for OnnxEmbedding
Source§fn embed<'life0, 'life1, 'async_trait>(
&'life0 self,
_text: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<f32>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn embed<'life0, 'life1, 'async_trait>(
&'life0 self,
_text: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<f32>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Generate an embedding vector for a single text input.
§Errors
Currently returns Error::Embedding because full ONNX Runtime
inference requires the onnx feature (with ort, tokenizers,
and ndarray crates).
Source§fn embed_batch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_texts: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<f32>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn embed_batch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_texts: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<f32>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Generate embedding vectors for a batch of text inputs.
§Errors
Currently returns Error::Embedding because full ONNX Runtime
inference requires the onnx feature (with ort, tokenizers,
and ndarray crates).
fn dimensions(&self) -> usize
Auto Trait Implementations§
impl Freeze for OnnxEmbedding
impl RefUnwindSafe for OnnxEmbedding
impl Send for OnnxEmbedding
impl Sync for OnnxEmbedding
impl Unpin for OnnxEmbedding
impl UnsafeUnpin for OnnxEmbedding
impl UnwindSafe for OnnxEmbedding
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
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 more