Skip to main content

Embedder

Trait Embedder 

Source
pub trait Embedder: Send + Sync {
    // Required methods
    fn dimensions(&self) -> usize;
    fn model_name(&self) -> &'static str;
    fn embed(&self, text: &str) -> Result<Vec<f32>>;

    // Provided method
    fn embed_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>> { ... }
}
Expand description

Trait for embedding generators.

Implementations must be thread-safe (Send + Sync) to support parallel embedding generation during chunk loading.

§Examples

use rlm_rs::embedding::{Embedder, FallbackEmbedder, DEFAULT_DIMENSIONS};

let embedder = FallbackEmbedder::new(DEFAULT_DIMENSIONS);
let embedding = embedder.embed("Hello, world!").unwrap();
assert_eq!(embedding.len(), DEFAULT_DIMENSIONS);

Required Methods§

Source

fn dimensions(&self) -> usize

Returns the embedding dimensions.

Source

fn model_name(&self) -> &'static str

Returns the model name/version identifier.

This is stored with embeddings to detect model changes.

Source

fn embed(&self, text: &str) -> Result<Vec<f32>>

Generates an embedding for the given text.

§Errors

Returns an error if embedding generation fails.

Provided Methods§

Source

fn embed_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>>

Generates embeddings for multiple texts.

The default implementation calls embed for each text sequentially. Implementations may override this for batch optimization.

§Errors

Returns an error if embedding generation fails for any text.

Implementors§