Skip to main content

smelt_memory/embedder/
traits.rs

1//! Embedder trait definition
2
3use crate::error::MemoryResult;
4
5/// Trait for generating text embeddings
6pub trait Embedder: Send + Sync {
7    /// Get the embedding dimension
8    fn dimension(&self) -> usize;
9
10    /// Generate an embedding for a single text
11    fn embed(&self, text: &str) -> MemoryResult<Vec<f32>>;
12
13    /// Generate embeddings for multiple texts (may be more efficient)
14    fn embed_batch(&self, texts: &[&str]) -> MemoryResult<Vec<Vec<f32>>> {
15        texts.iter().map(|t| self.embed(t)).collect()
16    }
17}