embed

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Overview

Package embed provides embedding interfaces and implementations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CosineSimilarity

func CosineSimilarity(a, b []float32) float64

CosineSimilarity computes the cosine similarity between two vectors.

func DefaultModelPath added in v0.2.0

func DefaultModelPath() string

DefaultModelPath returns the path to the default ONNX model file.

func DefaultVocabPath added in v0.2.0

func DefaultVocabPath() string

DefaultVocabPath returns the path to the default vocab file.

func EnsureModel added in v0.2.0

func EnsureModel() (string, string, error)

EnsureModel downloads the ONNX model, vocab, and runtime library if not already present.

func ModelDir added in v0.2.0

func ModelDir() string

ModelDir returns the directory where ONNX models are stored.

func ModelExists added in v0.2.0

func ModelExists() bool

ModelExists checks if the ONNX model files are present.

func TopK

func TopK(query []float32, vectors [][]float32, k int) []int

TopK returns indices of the top-k most similar vectors to query.

Types

type Embedder

type Embedder interface {
	Embed(text string) ([]float32, error)
	EmbedBatch(texts []string) ([][]float32, error)
	Dimensions() int
	Close() error
}

Embedder generates vector embeddings from text.

func NewEmbedder added in v0.2.0

func NewEmbedder(provider, model string) (Embedder, error)

NewEmbedder creates an embedder based on the provider name. provider: "openai", "local"/"onnx", or "" (returns nil).

type OnnxEmbedder added in v0.2.0

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

OnnxEmbedder uses a local ONNX model for embeddings.

func NewOnnxEmbedder added in v0.2.0

func NewOnnxEmbedder(modelPath, vocabPath string) (*OnnxEmbedder, error)

NewOnnxEmbedder creates a new ONNX embedder with persistent session.

func (*OnnxEmbedder) Close added in v0.2.0

func (e *OnnxEmbedder) Close() error

Close releases ONNX session resources.

func (*OnnxEmbedder) Dimensions added in v0.2.0

func (e *OnnxEmbedder) Dimensions() int

Dimensions returns the embedding vector dimensions (384 for MiniLM).

func (*OnnxEmbedder) Embed added in v0.2.0

func (e *OnnxEmbedder) Embed(text string) ([]float32, error)

Embed generates an embedding for a single text.

func (*OnnxEmbedder) EmbedBatch added in v0.2.0

func (e *OnnxEmbedder) EmbedBatch(texts []string) ([][]float32, error)

EmbedBatch generates embeddings for multiple texts.

type OpenAIEmbedder

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

OpenAIEmbedder uses the OpenAI API for embeddings.

func NewOpenAIEmbedder

func NewOpenAIEmbedder(apiKey string, model string) (*OpenAIEmbedder, error)

NewOpenAIEmbedder creates a new OpenAI embedder. apiKey must be a valid OpenAI API key. model can be empty to use the default (text-embedding-3-small).

func (*OpenAIEmbedder) Close

func (e *OpenAIEmbedder) Close() error

Close is a no-op for OpenAI (no local resources).

func (*OpenAIEmbedder) Dimensions

func (e *OpenAIEmbedder) Dimensions() int

Dimensions returns the embedding vector dimensions.

func (*OpenAIEmbedder) Embed

func (e *OpenAIEmbedder) Embed(text string) ([]float32, error)

Embed generates an embedding for a single text.

func (*OpenAIEmbedder) EmbedBatch

func (e *OpenAIEmbedder) EmbedBatch(texts []string) ([][]float32, error)

EmbedBatch generates embeddings for multiple texts in one API call.

Jump to

Keyboard shortcuts

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