embedding

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2026 License: MPL-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultModelName = "Qwen3-Embedding-0.6B-Q8_0.gguf"
	DefaultModelURL  = "https://huggingface.co/Qwen/Qwen3-Embedding-0.6B-GGUF/resolve/main/Qwen3-Embedding-0.6B-Q8_0.gguf"
)

Functions

func DownloadModel

func DownloadModel(spec ModelSpec, progress func(downloaded, total int64)) error

DownloadModel downloads a model to ~/.mit/models/.

func EnsureModel

func EnsureModel(spec ModelSpec, progress func(downloaded, total int64)) (string, error)

EnsureModel downloads the model if it doesn't exist. Returns the local path.

func EnsureModelDir

func EnsureModelDir() error

EnsureModelDir creates the model directory if needed.

func ModelExists

func ModelExists(name string) bool

ModelExists checks if a model file exists.

func ModelPath

func ModelPath(name string) (string, error)

ModelPath returns the full path to the model file.

Types

type Embedder

type Embedder interface {
	// Embed generates an embedding vector for the given text.
	Embed(ctx context.Context, text string) ([]float32, error)

	// EmbedBatch generates embeddings for multiple texts.
	EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)

	// Dimensions returns the embedding vector size.
	Dimensions() int

	// Close releases resources.
	Close() error
}

Embedder generates vector embeddings from text.

func NewEmbedder

func NewEmbedder(modelPath string, nThreads, nGPULayers int) (Embedder, error)

NewEmbedder creates a LlamaEmbedder backed by llama.cpp. modelPath: path to GGUF model file. nThreads: inference threads (0 = auto). nGPULayers: layers to offload (-1 = all).

type ModelSpec

type ModelSpec struct {
	Name string // local filename; derived from URL if empty
	URL  string
}

ModelSpec describes which model to use.

func DefaultModel

func DefaultModel() ModelSpec

DefaultModel returns the default embedding model spec.

func (ModelSpec) ResolveName

func (s ModelSpec) ResolveName() string

ResolveName returns the model filename, deriving it from URL if Name is empty.

type StubEmbedder

type StubEmbedder struct{}

StubEmbedder is a placeholder embedder that returns an error. Used when llama.cpp is not available (noembed build tag).

func NewStubEmbedder

func NewStubEmbedder() *StubEmbedder

func (*StubEmbedder) Close

func (s *StubEmbedder) Close() error

func (*StubEmbedder) Dimensions

func (s *StubEmbedder) Dimensions() int

func (*StubEmbedder) Embed

func (s *StubEmbedder) Embed(ctx context.Context, text string) ([]float32, error)

func (*StubEmbedder) EmbedBatch

func (s *StubEmbedder) EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)

Directories

Path Synopsis
Package llama provides embedding via llama.cpp CGo bindings.
Package llama provides embedding via llama.cpp CGo bindings.

Jump to

Keyboard shortcuts

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