EmbeddingProvider

The port for embedding model implementations.

EmbeddingProvider

The port for embedding model implementations.

EmbeddingProvider is the trait for embedding model adapters. It is the parallel to ChatProvider for the embedding path.

The full file is src/provider/embedding.rs.

API

#[async_trait]
pub trait EmbeddingProvider: Send + Sync {
    fn id(&self) -> ProviderId;
    fn capabilities(&self) -> ProviderCapabilities;
    async fn embed(&self, request: EmbeddingRequest) -> ProviderResult<EmbeddingResponse>;
}

pub struct EmbeddingRequest {
    pub model: ModelName,
    pub input: Vec<String>,
    pub dimensions: Option<usize>,
}

pub struct EmbeddingResponse {
    pub provider: ProviderId,
    pub model: ModelName,
    pub embeddings: Vec<Vec<f32>>,
    pub usage: Option<TokenUsage>,
    pub raw: Option<Value>,
}

See also

Related components

Edit this page on GitHub →