Skip to main content

Module embeddings

Module embeddings 

Source
Expand description

Embedding API — generate vector representations of text.

§Three-layer structure

Embed trait          ← your domain types declare what text to embed
    ↓
EmbeddingsBuilder    ← batches texts, calls the model, reassembles results
    ↓
EmbeddingModel trait ← providers implement this (OpenAI, Gemini, …)

§Quick start

use irig::embeddings::{Embed, EmbeddingsBuilder, TextEmbedder, EmbedError};
use irig::providers::openai;

struct Article { title: String, body: String }

impl Embed for Article {
    fn embed(&self, e: &mut TextEmbedder) -> Result<(), EmbedError> {
        e.embed(self.title.clone());
        e.embed(self.body.clone());
        Ok(())
    }
}

let model = openai::Client::new(http, api_key).embedding_model(openai::TEXT_EMBEDDING_3_SMALL);

let results = EmbeddingsBuilder::new(model)
    .documents(articles)?
    .build()
    .await?;

// results: Vec<(Article, Vec<Embedding>)>
// Each Article gets two Embeddings: one for title, one for body.

Re-exports§

pub use builder::EmbeddingsBuilder;
pub use distance::DistanceMetric;
pub use distance::VectorDistance;
pub use embed::Embed;
pub use embed::EmbedError;
pub use embed::TextEmbedder;
pub use embed::to_texts;
pub use embedding::Embedding;
pub use embedding::EmbeddingError;
pub use embedding::EmbeddingModel;

Modules§

builder
EmbeddingsBuilder — batch embedding with automatic chunking.
distance
Vector similarity and distance metrics.
embed
Embed trait and TextEmbedder accumulator.
embedding
EmbeddingModel trait, Embedding struct, and EmbeddingError.