Expand description
§modo::embed
Text-to-vector embeddings via LLM provider APIs.
Provides:
EmbeddingProvider— concrete wrapper for any embedding backendEmbeddingBackend— trait for custom embedding providersOpenAIEmbedding— OpenAI embedding providerGeminiEmbedding— Google Gemini embedding providerMistralEmbedding— Mistral embedding providerVoyageEmbedding— Voyage AI embedding providerOpenAIConfig/GeminiConfig/MistralConfig/VoyageConfig— provider configsto_f32_blob/from_f32_blob— vector ↔ blob conversion helperstest::InMemoryBackend— in-memory backend for unit tests (#[cfg(test)]ortest-helpers)
§Quick start
ⓘ
use modo::embed::{EmbeddingProvider, OpenAIEmbedding, OpenAIConfig};
let config = OpenAIConfig {
api_key: "sk-...".into(),
..Default::default()
};
let client = reqwest::Client::new();
let embedder = EmbeddingProvider::new(
OpenAIEmbedding::new(client, &config)?,
);
let blob = embedder.embed("hello world").await?;
// Store blob in libsql F32_BLOB columnModules§
- test
- Test helpers for the embedding module.
Structs§
- Embedding
Provider - Concrete embedding provider — wraps any
EmbeddingBackend. - Gemini
Config - Configuration for the Gemini embedding provider.
- Gemini
Embedding - Google Gemini embedding provider.
- Mistral
Config - Configuration for the Mistral embedding provider.
- Mistral
Embedding - Mistral embedding provider.
- OpenAI
Config - Configuration for the OpenAI embedding provider.
- OpenAI
Embedding - OpenAI embedding provider.
- Voyage
Config - Configuration for the Voyage AI embedding provider.
- Voyage
Embedding - Voyage AI embedding provider.
Traits§
- Embedding
Backend - Trait for embedding providers.
Functions§
- from_
f32_ blob - Decode a little-endian byte blob back to
f32values. - to_
f32_ blob - Encode an
f32slice to a little-endian byte blob suitable for libsqlF32_BLOBcolumns.