Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CosineSimilarity ¶
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 (p *GeminiProvider) Embed(req EmbedRequest) (*EmbeddingResult, error)
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 (p *OllamaProvider) Embed(req EmbedRequest) (*EmbeddingResult, error)
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 (p *OpenAIProvider) Embed(req EmbedRequest) (*EmbeddingResult, error)
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 (p *VoyageProvider) Embed(req EmbedRequest) (*EmbeddingResult, error)
func (*VoyageProvider) Name ¶
func (p *VoyageProvider) Name() string