Expand description
Embedding provider abstraction for vector generation
This module provides a trait-based abstraction for embedding generation, supporting multiple providers (FastEmbed, OpenAI, Ollama) with a unified interface.
§Architecture
┌──────────────────────────────────────────────────────────────┐
│ EmbeddingProvider Trait │
│ embed_documents, embed_query, dimensions, model_name │
└──────────────────────────────────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ FastEmbed │ │ OpenAI │ │ Ollama │
│ (local) │ │ (API) │ │ (local) │
└─────────────┘ └─────────────┘ └─────────────┘§Example
ⓘ
use skill_runtime::embeddings::{EmbeddingProvider, FastEmbedProvider, EmbeddingConfig};
// Create a provider
let provider = FastEmbedProvider::new(FastEmbedModel::AllMiniLM)?;
// Embed a query
let query_embedding = provider.embed_query("search for kubernetes tools").await?;
// Embed multiple documents
let texts = vec!["doc1".to_string(), "doc2".to_string()];
let embeddings = provider.embed_documents(texts).await?;Structs§
- Embedding
Config - Configuration for embedding providers
- Embedding
Provider Factory - Factory for creating embedding providers from configuration
- Embedding
Result - Embedding result with metadata
- Fast
Embed Provider - FastEmbed embedding provider
- Ollama
Provider - Ollama embedding provider
- OpenAI
Embed Provider - OpenAI embedding provider
Enums§
- Embedding
Provider Type - Supported embedding provider types
- Fast
Embed Model - FastEmbed model variants
- OpenAI
Embedding Model - OpenAI embedding model variants
Traits§
- Embedding
Provider - Trait for embedding generation providers
Functions§
- create_
provider - Convenience function to create a provider from configuration