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 implementationsEmbedding: Vector representation with metadataEmbedder: High-level interface for embeddings- Similarity functions: Cosine, dot product, Euclidean distance
§Feature Flags
openai(default): OpenAI embedding modelscohere: Cohere embedding modelsvoyage: Voyage AI embeddingsollama: Local Ollama embeddingsfull: 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