Skip to main content

EmbeddingProvider

Trait EmbeddingProvider 

Source
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§

Source

fn embed_for(&self, role: EmbeddingRole, text: &str) -> Result<Vec<f32>>

Source

fn embedding_space(&self) -> &EmbeddingSpaceIdentity

Source

fn dimensions(&self) -> usize

Get the dimensionality of embeddings produced by this provider

Source

fn name(&self) -> &str

Get a description of this provider (for logging/debugging)

Provided Methods§

Source

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

Source

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

Source

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

👎Deprecated:

use embed_query or embed_passage

Source

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

Source

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

Source

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§

Source§

impl EmbeddingProvider for ApiEmbedding

Available on crate feature api-embeddings only.
Source§

impl EmbeddingProvider for HashEmbedding

Source§

impl<F> EmbeddingProvider for SymmetricEmbeddingAdapter<F>
where F: Fn(&str) -> Result<Vec<f32>> + Send + Sync,