embedding

package
v0.0.88 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CosineSimilarity

func CosineSimilarity(a, b []float64) float64

CosineSimilarity computes the cosine similarity between two vectors. Returns a value between -1 and 1, where 1 means identical direction.

Types

type EmbedRequest

type EmbedRequest struct {
	Texts      []string // Input texts to embed
	Model      string   // Model override (empty = provider default)
	Dimensions int      // Custom dimensions (0 = model default)
	TaskType   string   // Gemini task type hint (empty = none)
}

EmbedRequest contains parameters for generating embeddings

type Embedding

type Embedding struct {
	Text   string    `json:"text"`
	Index  int       `json:"index"`
	Vector []float64 `json:"vector"`
}

Embedding holds a single text's embedding vector

type EmbeddingProvider

type EmbeddingProvider interface {
	// Name returns the provider name for display
	Name() string

	// DefaultModel returns the default embedding model for this provider
	DefaultModel() string

	// Embed generates embeddings for the given texts
	Embed(req EmbedRequest) (*EmbeddingResult, error)
}

EmbeddingProvider is the interface for embedding providers

func NewEmbeddingProvider

func NewEmbeddingProvider(cfg *config.Config, providerOverride string) (EmbeddingProvider, error)

NewEmbeddingProvider creates an embedding provider based on config

type EmbeddingResult

type EmbeddingResult struct {
	Model      string      `json:"model"`
	Dimensions int         `json:"dimensions"`
	Embeddings []Embedding `json:"embeddings"`
	Usage      *UsageInfo  `json:"usage,omitempty"`
}

EmbeddingResult contains the embeddings and metadata from an API call

type GeminiProvider

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

GeminiProvider implements EmbeddingProvider using Google's Gemini API

func NewGeminiProvider

func NewGeminiProvider(apiKey string) *GeminiProvider

func (*GeminiProvider) DefaultModel

func (p *GeminiProvider) DefaultModel() string

func (*GeminiProvider) Embed

func (*GeminiProvider) Name

func (p *GeminiProvider) Name() string

type JinaProvider

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

JinaProvider implements EmbeddingProvider using Jina AI's embeddings API. Jina uses an OpenAI-compatible format at api.jina.ai/v1/embeddings and offers a free tier with 10M tokens (no credit card required).

func NewJinaProvider

func NewJinaProvider(apiKey string) *JinaProvider

func (*JinaProvider) DefaultModel

func (p *JinaProvider) DefaultModel() string

func (*JinaProvider) Embed

func (p *JinaProvider) Embed(req EmbedRequest) (*EmbeddingResult, error)

func (*JinaProvider) Name

func (p *JinaProvider) Name() string

type OllamaProvider

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

OllamaProvider implements EmbeddingProvider using Ollama's native API

func NewOllamaProvider

func NewOllamaProvider(baseURL string) *OllamaProvider

func (*OllamaProvider) DefaultModel

func (p *OllamaProvider) DefaultModel() string

func (*OllamaProvider) Embed

func (*OllamaProvider) Name

func (p *OllamaProvider) Name() string

type OpenAIProvider

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

OpenAIProvider implements EmbeddingProvider using OpenAI's embeddings API

func NewOpenAIProvider

func NewOpenAIProvider(apiKey string) *OpenAIProvider

func (*OpenAIProvider) DefaultModel

func (p *OpenAIProvider) DefaultModel() string

func (*OpenAIProvider) Embed

func (*OpenAIProvider) Name

func (p *OpenAIProvider) Name() string

type UsageInfo

type UsageInfo struct {
	PromptTokens int64 `json:"prompt_tokens"`
	TotalTokens  int64 `json:"total_tokens"`
}

UsageInfo contains token usage information

type VoyageProvider

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

VoyageProvider implements EmbeddingProvider using Voyage AI's embeddings API. Voyage AI (acquired by MongoDB, Feb 2025) is Anthropic's recommended embedding provider. The API remains fully available at api.voyageai.com.

func NewVoyageProvider

func NewVoyageProvider(apiKey string) *VoyageProvider

func (*VoyageProvider) DefaultModel

func (p *VoyageProvider) DefaultModel() string

func (*VoyageProvider) Embed

func (*VoyageProvider) Name

func (p *VoyageProvider) Name() string

Jump to

Keyboard shortcuts

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