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§
Sourcefn dimensions(&self) -> usize
fn dimensions(&self) -> usize
Number of dimensions produced by this embedder.
Provided Methods§
Sourcefn embed_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>>
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.