embedding

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultModel    = "gemini-embedding-001"
	DefaultTaskType = "SEMANTIC_SIMILARITY"
)

Variables

This section is empty.

Functions

func List

func List() []string

List returns sorted provider names.

func Register

func Register(name string, factory Factory)

Register adds a named provider factory. It panics on duplicate names.

func ResolveSTModel added in v0.1.0

func ResolveSTModel(model string) string

ResolveSTModel expands model aliases to full model names.

Types

type CachedEmbedder

type CachedEmbedder struct {
	// contains filtered or unexported fields
}

CachedEmbedder wraps an Embedder with a cache layer.

func NewCachedEmbedder

func NewCachedEmbedder(inner Embedder, c cache.Cache, modelName string) *CachedEmbedder

func (*CachedEmbedder) Close

func (ce *CachedEmbedder) Close() error

Close flushes the underlying cache to disk.

func (*CachedEmbedder) Embed

func (ce *CachedEmbedder) Embed(ctx context.Context, blocks []model.Block, opts EmbedOptions) ([]model.Embedding, error)

type ConcurrentEmbedder

type ConcurrentEmbedder struct {
	// contains filtered or unexported fields
}

ConcurrentEmbedder parallelizes embedding across batches using a worker pool.

func NewConcurrentEmbedder

func NewConcurrentEmbedder(inner Embedder, concurrencyLimit int, qps float64, batchSize int) *ConcurrentEmbedder

func (*ConcurrentEmbedder) Embed

func (ce *ConcurrentEmbedder) Embed(ctx context.Context, blocks []model.Block, opts EmbedOptions) ([]model.Embedding, error)

type EmbedOptions

type EmbedOptions struct {
	TaskType   string
	Dimensions int
}

EmbedOptions holds options for embedding generation.

type Embedder

type Embedder interface {
	Embed(ctx context.Context, blocks []model.Block, opts EmbedOptions) ([]model.Embedding, error)
}

Embedder generates embeddings for blocks.

func Create

func Create(ctx context.Context, name string, cfg ProviderConfig) (Embedder, string, error)

Create instantiates a named provider.

type Factory

type Factory func(ctx context.Context, cfg ProviderConfig) (Embedder, string, error)

Factory creates an Embedder from a ProviderConfig. It returns the embedder, a human-readable info string, and any error.

type GeminiConfig

type GeminiConfig struct {
	Model     string
	BatchSize int
}

GeminiConfig configures the Gemini embedder.

type GeminiEmbedder

type GeminiEmbedder struct {
	// contains filtered or unexported fields
}

GeminiEmbedder uses Google's Gemini API for embeddings.

func NewGeminiEmbedder

func NewGeminiEmbedder(client *genai.Client, cfg GeminiConfig) *GeminiEmbedder

func (*GeminiEmbedder) Embed

func (g *GeminiEmbedder) Embed(ctx context.Context, blocks []model.Block, opts EmbedOptions) ([]model.Embedding, error)

type MockEmbedder

type MockEmbedder struct {
	Dimensions int
}

MockEmbedder generates deterministic embeddings based on character frequency. Used for testing boundary detection without an API dependency.

func NewMockEmbedder

func NewMockEmbedder(dimensions int) *MockEmbedder

func (*MockEmbedder) Embed

func (m *MockEmbedder) Embed(_ context.Context, blocks []model.Block, _ EmbedOptions) ([]model.Embedding, error)

type OllamaEmbedder

type OllamaEmbedder struct {
	// contains filtered or unexported fields
}

OllamaEmbedder uses Ollama's local embedding API.

func (*OllamaEmbedder) Embed

func (o *OllamaEmbedder) Embed(ctx context.Context, blocks []model.Block, opts EmbedOptions) ([]model.Embedding, error)

type OpenAIEmbedder

type OpenAIEmbedder struct {
	// contains filtered or unexported fields
}

OpenAIEmbedder uses OpenAI's Embeddings API for embeddings.

func (*OpenAIEmbedder) Embed

func (o *OpenAIEmbedder) Embed(ctx context.Context, blocks []model.Block, opts EmbedOptions) ([]model.Embedding, error)

type ProviderConfig

type ProviderConfig struct {
	Model     string
	BatchSize int
}

ProviderConfig holds common configuration for embedding providers.

type SentenceTransformerEmbedder added in v0.1.0

type SentenceTransformerEmbedder struct {
	// contains filtered or unexported fields
}

SentenceTransformerEmbedder uses a SentenceTransformer HTTP server for embeddings.

func (*SentenceTransformerEmbedder) Embed added in v0.1.0

type TFIDFEmbedder

type TFIDFEmbedder struct {
	Dimensions int
}

TFIDFEmbedder generates embeddings using character 3-gram TF-IDF. Used as a fallback when API embedding is unavailable.

func NewTFIDFEmbedder

func NewTFIDFEmbedder(dims int) *TFIDFEmbedder

func (*TFIDFEmbedder) Embed

func (t *TFIDFEmbedder) Embed(_ context.Context, blocks []model.Block, _ EmbedOptions) ([]model.Embedding, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL