mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-27 17:23:34 +00:00
Implements a proper embedding abstraction layer to replace the hash-based placeholder: ## New Features ### EmbeddingProvider Trait - Pluggable interface for any embedding system - Methods: embed(), dimensions(), name() - Thread-safe (Send + Sync) ### Built-in Providers - **HashEmbedding**: Original placeholder (default, backward compatible) - **ApiEmbedding**: Production-ready API providers (OpenAI, Cohere, Voyage AI) - **CandleEmbedding**: Stub for candle-transformers (feature: real-embeddings) ### AgenticDB Updates - New constructor: `AgenticDB::with_embedding_provider(options, provider)` - Backward compatible: `AgenticDB::new(options)` still works with HashEmbedding - Dimension validation ensures provider matches database configuration ### Files Added - src/embeddings.rs: Core embedding provider system - tests/embeddings_test.rs: Comprehensive test suite - docs/EMBEDDINGS.md: Complete usage documentation - examples/embeddings_example.rs: Working example ### Usage ```rust // Production (OpenAI) let provider = Arc::new(ApiEmbedding::openai(&key, "text-embedding-3-small")); let db = AgenticDB::with_embedding_provider(options, provider)?; ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| EMBEDDINGS.md | ||