Module embeddings

Module embeddings 

Source
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§

EmbeddingConfig
Configuration for embedding providers
EmbeddingProviderFactory
Factory for creating embedding providers from configuration
EmbeddingResult
Embedding result with metadata
FastEmbedProvider
FastEmbed embedding provider
OllamaProvider
Ollama embedding provider
OpenAIEmbedProvider
OpenAI embedding provider

Enums§

EmbeddingProviderType
Supported embedding provider types
FastEmbedModel
FastEmbed model variants
OpenAIEmbeddingModel
OpenAI embedding model variants

Traits§

EmbeddingProvider
Trait for embedding generation providers

Functions§

create_provider
Convenience function to create a provider from configuration