Skip to main content

Embedder

Trait Embedder 

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

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

Converts text into fixed-size embedding vectors.

Implement this trait to use a custom embedding model with SemanticIndex.

§Example — OpenAI-compatible embedder

use semstore::{Embedder, Error};

struct MyEmbedder;

impl Embedder for MyEmbedder {
    fn embed(&self, text: &str) -> Result<Vec<f32>, Error> {
        // call your embedding API here
        Ok(vec![0.0; 1536])
    }

    fn dimensions(&self) -> usize {
        1536
    }
}

Required Methods§

Source

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

Embed a single piece of text into a float vector.

§Errors

Returns Error::Embed if the model fails.

Source

fn dimensions(&self) -> usize

Number of dimensions produced by this embedder.

Provided Methods§

Source

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

Embed multiple texts in one call.

The default implementation calls embed in a loop. Override for batch-optimised models.

§Errors

Returns Error::Embed on the first failure.

Implementors§