Expand description
§Semantic Embeddings
Vector embeddings for semantic similarity search and enhanced context retrieval.
This module provides:
- Text embedding generation (local and remote)
- Vector similarity calculations
- Semantic-enhanced episode and pattern retrieval
- Configurable embedding providers
§Architecture
The embedding system supports multiple providers:
- Local: sentence-transformers via candle-transformers (offline)
OpenAI: text-embedding-ada-002 and text-embedding-3.x (cloud)- Mistral: mistral-embed and codestral-embed (cloud)
- Azure
OpenAI: Azure-hosted OpenAI embeddings - Custom: User-provided embedding functions
§Usage
use do_memory_core::embeddings::{EmbeddingProvider, LocalEmbeddingProvider, ProviderConfig, LocalConfig};
// Local embedding provider (offline)
let config = LocalConfig::default();
let provider = LocalEmbeddingProvider::new(config).await?;
// Generate embedding for text
let embedding = provider.embed_text("implement REST API").await?;
// Calculate similarity between two texts
let similarity = provider.similarity("REST API", "web service API").await?;Re-exports§
pub use config::AzureOpenAIConfig;pub use config::CustomConfig;pub use config::EmbeddingConfig;pub use config::LocalConfig;pub use config::MistralConfig;pub use config::OpenAIConfig;pub use config::OptimizationConfig;pub use config::ProviderConfig;
Modules§
- config
- Configuration for embedding providers
Structs§
- Circuit
Breaker - Circuit breaker to prevent cascading failures
- Circuit
Breaker Config - Circuit breaker configuration
- Embedding
Result - Result from embedding generation
- Embedding
Storage - Wrapper around existing storage backends to add embedding support
- InMemory
Embedding Storage - In-memory embedding storage for testing and fallback
- Latency
Timer - Helper to measure latency
- Local
Embedding Provider - Local embedding provider using sentence transformers
- Metrics
Snapshot - Snapshot of metrics at a point in time
- Mock
Local Model - Mock implementation for local embedding model Intended for testing only - in production should not be used
- Provider
Metrics - Performance metrics for an embedding provider
- Semantic
Service - Main semantic embedding service for the memory system
- Similarity
Metadata - Metadata about a similarity match
- Similarity
Search Result - Result from similarity search containing the item and similarity score
Enums§
- Circuit
Breaker State - Circuit breaker result
- Local
Model UseCase - Re-export utilities from the utils module Use cases for local model selection
Constants§
- DEFAULT_
EMBEDDING_ DIM - Default embedding dimension for sentence transformers
Traits§
- Embedding
Provider - Trait for embedding providers that convert text to vectors
- Embedding
Storage Backend - Trait for embedding storage backends
Functions§
- cosine_
similarity - Calculate cosine similarity between two vectors
- get_
recommended_ model - Re-export utilities from the utils module Get recommended model configuration for different use cases
- list_
available_ models - Re-export utilities from the utils module List available local models
- normalize_
vector - Normalize a vector to unit length