pub trait EmbeddingProvider: Send + Sync {
// Required methods
fn model_name(&self) -> &str;
fn dimension(&self) -> usize;
fn max_length(&self) -> usize;
fn embed(&self, text: &str) -> Result<Vec<f32>, EmbeddingError>;
// Provided methods
fn embed_batch(
&self,
texts: &[&str],
) -> Result<Vec<Vec<f32>>, EmbeddingError> { ... }
fn normalize(&self, embedding: &mut [f32]) { ... }
}Expand description
Embedding provider trait
Required Methods§
Sourcefn model_name(&self) -> &str
fn model_name(&self) -> &str
Get the model name
Sourcefn max_length(&self) -> usize
fn max_length(&self) -> usize
Maximum text length (in characters or tokens)
Provided Methods§
Sourcefn embed_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>, EmbeddingError>
fn embed_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>, EmbeddingError>
Generate embeddings for multiple texts (batch)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".