pub struct LocalProvider(/* private fields */);semantic only.Expand description
Local ONNX embedding provider.
Cheap to clone (Arc under the hood). All inference is serialized
behind an internal mutex so the same provider can be shared across
threads — for high-throughput scenarios, use one LocalProvider
per worker.
Implementations§
Source§impl LocalProvider
impl LocalProvider
Sourcepub fn builder() -> LocalProviderBuilder
pub fn builder() -> LocalProviderBuilder
Start a LocalProviderBuilder.
Use the builder when you need a non-default pooling strategy, custom prefixes, custom max sequence length, or a hand-tuned thread count.
Sourcepub fn from_pretrained(model_id: &str) -> Result<Self>
pub fn from_pretrained(model_id: &str) -> Result<Self>
Construct from a Hugging Face Hub model id.
Downloads the ONNX model + tokenizer on first use via hf-hub,
caching to the user’s HF cache directory. Looks up the
appropriate pooling strategy and query / document prefixes from
internal tables (BGE → Cls + query prefix, E5 → Mean + query/
passage prefixes, …).
§Arguments
model_id— HF identifier such as"BAAI/bge-small-en-v1.5".
§Errors
Returns crate::Error::Config if the repo lacks an ONNX file
or tokenizer.json; crate::Error::Onnx for ort load
failures; crate::Error::Tokenizer for tokenizer parse
failures.
§Example
use txtfp::semantic::LocalProvider;
let p = LocalProvider::from_pretrained("BAAI/bge-small-en-v1.5")?;Sourcepub fn from_onnx(
onnx_path: &Path,
tokenizer_path: &Path,
pooling: Pooling,
) -> Result<Self>
pub fn from_onnx( onnx_path: &Path, tokenizer_path: &Path, pooling: Pooling, ) -> Result<Self>
Construct from explicit ONNX + tokenizer paths.
Use this for self-hosted models or air-gapped deployments where downloading from the HF Hub is not an option.
§Arguments
onnx_path— path to a.onnxgraph file.tokenizer_path— path to atokenizer.json(HF tokenizer format).pooling— output pooling strategy (BGE →Pooling::Cls, E5/MiniLM →Pooling::Mean).
§Errors
Returns crate::Error::Onnx if the model fails to load,
crate::Error::Tokenizer if the tokenizer JSON is invalid.
§Example
use std::path::Path;
use txtfp::semantic::{LocalProvider, Pooling};
let p = LocalProvider::from_onnx(
Path::new("/srv/models/embedder.onnx"),
Path::new("/srv/models/tokenizer.json"),
Pooling::Cls,
)?;Sourcepub fn embed_document(&self, input: &str) -> Result<Embedding>
pub fn embed_document(&self, input: &str) -> Result<Embedding>
Embed input as a document.
Prepends the model’s document prefix (e.g. "passage: " for E5)
when applicable, then runs tokenize + inference + pooling. The
returned Embedding carries model_id = Some(...) so
downstream comparisons can detect cross-model leaks.
§Errors
See LocalProvider::embed for the error variants.
Sourcepub fn embed_query(&self, input: &str) -> Result<Embedding>
pub fn embed_query(&self, input: &str) -> Result<Embedding>
Embed input as a query.
Prepends the model’s query prefix (e.g.
"Represent this sentence for searching relevant passages: "
for bge-*, "query: " for e5-*). For models that don’t use
asymmetric encoding, this is identical to embed_document.
Use embed_query for the search side of a retrieval
pipeline and embed_document for the corpus side.
Trait Implementations§
Source§impl Clone for LocalProvider
impl Clone for LocalProvider
Source§fn clone(&self) -> LocalProvider
fn clone(&self) -> LocalProvider
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LocalProvider
impl Debug for LocalProvider
Source§impl EmbeddingProvider for LocalProvider
impl EmbeddingProvider for LocalProvider
Auto Trait Implementations§
impl Freeze for LocalProvider
impl RefUnwindSafe for LocalProvider
impl Send for LocalProvider
impl Sync for LocalProvider
impl Unpin for LocalProvider
impl UnsafeUnpin for LocalProvider
impl UnwindSafe for LocalProvider
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.