Skip to main content

CacheBackedEmbeddings

Struct CacheBackedEmbeddings 

Source
pub struct CacheBackedEmbeddings { /* private fields */ }
Expand description

An embeddings wrapper that caches results in a Store backend.

Previously computed embeddings are stored in the provided Store keyed by the SHA-256 hash of the input text. On subsequent calls, cached embeddings are returned directly, and only uncached texts are sent to the inner embeddings provider.

This aligns with LangChain Python’s CacheBackedEmbeddings architecture, allowing any Store implementation (in-memory, SQLite, PostgreSQL, Redis, etc.) to serve as the caching backend.

Implementations§

Source§

impl CacheBackedEmbeddings

Source

pub fn new( inner: Arc<dyn Embeddings>, store: Arc<dyn Store>, namespace: impl Into<String>, ) -> Self

Create a new cached embeddings wrapper.

  • inner — the underlying embeddings provider to delegate to on cache misses.
  • store — the Store backend for persisting cached embeddings.
  • namespace — a logical namespace within the store (combined with "embedding_cache" as the prefix).

Trait Implementations§

Source§

impl Embeddings for CacheBackedEmbeddings

Source§

fn embed_documents<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, texts: &'life1 [&'life2 str], ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<f32>>, SynapticError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Embed multiple texts (for batch document embedding).
Source§

fn embed_query<'life0, 'life1, 'async_trait>( &'life0 self, text: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<f32>, SynapticError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Embed a single query text.

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> 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> Same for T

Source§

type Output = T

Should always be Self
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.