pub trait EmbeddingProvider: Send + Sync {
// Required methods
fn embed_for(&self, role: EmbeddingRole, text: &str) -> Result<Vec<f32>>;
fn embedding_space(&self) -> &EmbeddingSpaceIdentity;
fn dimensions(&self) -> usize;
fn name(&self) -> &str;
// Provided methods
fn embed_query(&self, text: &str) -> Result<Vec<f32>> { ... }
fn embed_passage(&self, text: &str) -> Result<Vec<f32>> { ... }
fn embed(&self, text: &str) -> Result<Vec<f32>> { ... }
fn embed_batch_for(
&self,
role: EmbeddingRole,
texts: &[&str],
) -> Result<Vec<Vec<f32>>> { ... }
fn embed_query_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>> { ... }
fn embed_passage_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>> { ... }
}Expand description
Trait for text embedding providers
Required Methods§
fn embed_for(&self, role: EmbeddingRole, text: &str) -> Result<Vec<f32>>
fn embedding_space(&self) -> &EmbeddingSpaceIdentity
Sourcefn dimensions(&self) -> usize
fn dimensions(&self) -> usize
Get the dimensionality of embeddings produced by this provider
Provided Methods§
fn embed_query(&self, text: &str) -> Result<Vec<f32>>
fn embed_passage(&self, text: &str) -> Result<Vec<f32>>
fn embed(&self, text: &str) -> Result<Vec<f32>>
👎Deprecated:
use embed_query or embed_passage
fn embed_batch_for( &self, role: EmbeddingRole, texts: &[&str], ) -> Result<Vec<Vec<f32>>>
fn embed_query_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>>
fn embed_passage_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl EmbeddingProvider for ApiEmbedding
Available on crate feature
api-embeddings only.