embeddings

package
v0.4.30 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2025 License: MIT Imports: 15 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CachedProvider added in v0.4.26

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

CachedProvider wraps an embedding provider with LRU caching capabilities

func NewCachedProvider added in v0.4.26

func NewCachedProvider(provider Provider, maxSize int) *CachedProvider

NewCachedProvider creates a new cached wrapper around an embedding provider maxSize determines how many embeddings to keep in cache (default 1000)

func (*CachedProvider) ClearCache added in v0.4.26

func (c *CachedProvider) ClearCache()

ClearCache removes all cached embeddings

func (*CachedProvider) GenerateEmbedding added in v0.4.26

func (c *CachedProvider) GenerateEmbedding(ctx context.Context, text string) ([]float32, error)

GenerateEmbedding returns cached embeddings if available, otherwise generates new ones

func (*CachedProvider) GetModel added in v0.4.26

func (c *CachedProvider) GetModel() EmbeddingModel

GetModel delegates to the underlying provider

func (*CachedProvider) MaxSize added in v0.4.26

func (c *CachedProvider) MaxSize() int

MaxSize returns the maximum number of embeddings that can be cached

func (*CachedProvider) Size added in v0.4.26

func (c *CachedProvider) Size() int

Size returns the current number of cached embeddings

type DiskCacheEntry added in v0.4.30

type DiskCacheEntry struct {
	Embedding  []float32 `json:"embedding"`
	TextPrefix string    `json:"text_prefix"` // First 100 chars
}

DiskCacheEntry represents a single cached embedding with metadata

type DiskCacheProvider added in v0.4.30

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

DiskCacheProvider implements the Provider interface with disk persistence

func NewDiskCacheProvider added in v0.4.30

func NewDiskCacheProvider(provider Provider, opts ...Option) (*DiskCacheProvider, error)

NewDiskCacheProvider creates a new disk-based cache provider

func (*DiskCacheProvider) ClearCache added in v0.4.30

func (p *DiskCacheProvider) ClearCache() error

func (*DiskCacheProvider) GenerateEmbedding added in v0.4.30

func (p *DiskCacheProvider) GenerateEmbedding(ctx context.Context, text string) ([]float32, error)

func (*DiskCacheProvider) GetCachedEntry added in v0.4.30

func (p *DiskCacheProvider) GetCachedEntry(text string) (*DiskCacheEntry, error)

func (*DiskCacheProvider) GetModel added in v0.4.30

func (p *DiskCacheProvider) GetModel() EmbeddingModel

type EmbeddingModel

type EmbeddingModel struct {
	Name       string
	Dimensions int
}

EmbeddingModel contains metadata about the embedding model

type OllamaProvider

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

func NewOllamaProvider

func NewOllamaProvider(baseURL string, model string, dimensions int) *OllamaProvider

func (*OllamaProvider) GenerateEmbedding

func (p *OllamaProvider) GenerateEmbedding(ctx context.Context, text string) ([]float32, error)

func (*OllamaProvider) GetModel

func (p *OllamaProvider) GetModel() EmbeddingModel

type OpenAIProvider

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

func NewOpenAIProvider

func NewOpenAIProvider(apiKey string, model openai.EmbeddingModel, dimensions int) *OpenAIProvider

func (*OpenAIProvider) GenerateEmbedding

func (p *OpenAIProvider) GenerateEmbedding(ctx context.Context, text string) ([]float32, error)

func (*OpenAIProvider) GetModel

func (p *OpenAIProvider) GetModel() EmbeddingModel

type Option added in v0.4.30

type Option func(*DiskCacheProvider)

func WithDirectory added in v0.4.30

func WithDirectory(dir string) Option

func WithMaxEntries added in v0.4.30

func WithMaxEntries(count int) Option

func WithMaxSize added in v0.4.30

func WithMaxSize(size int64) Option

type Provider

type Provider interface {
	// GenerateEmbedding creates an embedding vector for the given text
	GenerateEmbedding(ctx context.Context, text string) ([]float32, error)

	// GetModel returns information about the embedding model being used
	GetModel() EmbeddingModel
}

Provider defines the interface for generating embeddings

type SettingsFactory

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

SettingsFactory creates embedding providers based on chat settings

func NewSettingsFactory

func NewSettingsFactory(stepSettings *settings.StepSettings) *SettingsFactory

NewSettingsFactory creates a new factory that uses step settings

func (*SettingsFactory) NewCachedProvider added in v0.4.26

func (f *SettingsFactory) NewCachedProvider(maxSize int) (Provider, error)

NewCachedProvider creates a new cached embedding provider based on the step settings maxSize determines how many embeddings to keep in cache (default 1000)

func (*SettingsFactory) NewProvider

func (f *SettingsFactory) NewProvider() (Provider, error)

NewProvider creates a new embedding provider based on the step settings

Jump to

Keyboard shortcuts

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