Trait EmbeddingModel

Source
pub trait EmbeddingModel:
    Clone
    + Sync
    + Send {
    const MAX_DOCUMENTS: usize;

    // Required methods
    fn ndims(&self) -> usize;
    fn embed_texts(
        &self,
        texts: impl IntoIterator<Item = String> + Send,
    ) -> impl Future<Output = Result<Vec<Embedding>, EmbeddingError>> + Send;

    // Provided method
    fn embed_text(
        &self,
        text: &str,
    ) -> impl Future<Output = Result<Embedding, EmbeddingError>> + Send { ... }
}
Expand description

Trait for embedding models that can generate embeddings for documents.

Required Associated Constants§

Source

const MAX_DOCUMENTS: usize

The maximum number of documents that can be embedded in a single request.

Required Methods§

Source

fn ndims(&self) -> usize

The number of dimensions in the embedding vector.

Source

fn embed_texts( &self, texts: impl IntoIterator<Item = String> + Send, ) -> impl Future<Output = Result<Vec<Embedding>, EmbeddingError>> + Send

Embed multiple text documents in a single request

Provided Methods§

Source

fn embed_text( &self, text: &str, ) -> impl Future<Output = Result<Embedding, EmbeddingError>> + Send

Embed a single text document.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl EmbeddingModel for rig::providers::azure::EmbeddingModel

Source§

const MAX_DOCUMENTS: usize = 1_024usize

Source§

impl EmbeddingModel for rig::providers::cohere::embeddings::EmbeddingModel

Source§

const MAX_DOCUMENTS: usize = 96usize

Source§

impl EmbeddingModel for rig::providers::gemini::embedding::EmbeddingModel

Source§

const MAX_DOCUMENTS: usize = 1_024usize

Source§

impl EmbeddingModel for rig::providers::mistral::embedding::EmbeddingModel

Source§

const MAX_DOCUMENTS: usize = 1_024usize

Source§

impl EmbeddingModel for rig::providers::ollama::EmbeddingModel

Source§

const MAX_DOCUMENTS: usize = 1_024usize

Source§

impl EmbeddingModel for rig::providers::openai::embedding::EmbeddingModel

Source§

const MAX_DOCUMENTS: usize = 1_024usize

Source§

impl EmbeddingModel for rig::providers::together::embedding::EmbeddingModel

Source§

const MAX_DOCUMENTS: usize = 1_024usize

Source§

impl EmbeddingModel for rig::providers::xai::embedding::EmbeddingModel

Source§

const MAX_DOCUMENTS: usize = 1_024usize