Skip to main content

Crate serdes_ai_embeddings

Crate serdes_ai_embeddings 

Source
Expand description

§serdes-ai-embeddings

Embedding models and vector operations for serdes-ai.

This crate provides infrastructure for generating embeddings from text and performing vector similarity operations.

§Core Concepts

  • EmbeddingModel: Trait for embedding model implementations
  • Embedding: Vector representation with metadata
  • Embedder: High-level interface for embeddings
  • Similarity functions: Cosine, dot product, Euclidean distance

§Feature Flags

  • openai (default): OpenAI embedding models
  • cohere: Cohere embedding models
  • voyage: Voyage AI embeddings
  • ollama: Local Ollama embeddings
  • full: All providers

§Example

use serdes_ai_embeddings::{Embedder, EmbeddingModel};

// Using the high-level interface
let embedder = Embedder::from_env("openai:text-embedding-3-small")?;

// Single embedding
let result = embedder.embed_query("Hello, world!").await?;
let embedding = result.embedding().unwrap();

// Batch embeddings
let result = embedder.embed_documents(vec![
    "First document".into(),
    "Second document".into(),
]).await?;

// Similarity
let similarity = result.embeddings[0].cosine_similarity(&result.embeddings[1]);

§Direct Model Usage

use serdes_ai_embeddings::OpenAIEmbeddingModel;

let model = OpenAIEmbeddingModel::from_env("text-embedding-3-small")?;
let result = model.embed_query("Hello!").await?;

Re-exports§

pub use embedder::infer_embedding_model;
pub use embedder::Embedder;
pub use embedder::EmbedderBuilder;
pub use embedding::Embedding;
pub use embedding::EmbeddingBatch;
pub use error::EmbeddingError;
pub use error::EmbeddingResult;
pub use model::BoxedEmbeddingModel;
pub use model::EmbedInput;
pub use model::EmbeddingModel;
pub use model::EmbeddingOutput;
pub use model::EmbeddingSettings;
pub use model::EncodingFormat;
pub use model::InputType;
pub use model::TruncationMode;
pub use similarity::angular_distance;
pub use similarity::centroid;
pub use similarity::cosine_similarity;
pub use similarity::dot_product;
pub use similarity::euclidean_distance;
pub use similarity::manhattan_distance;
pub use similarity::normalize;
pub use similarity::pairwise_cosine;
pub use similarity::top_k_similar;
pub use similarity::weighted_average;
pub use openai::OpenAIEmbeddingModel;openai

Modules§

embedder
High-level embedder interface.
embedding
Embedding types and batch operations.
error
Embedding errors.
model
Embedding model trait and types.
openaiopenai
OpenAI embedding model implementation.
prelude
Prelude for common imports.
similarity
Similarity and distance functions for embeddings.