Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ParseRetryAfterForTest = parseRetryAfter
ParseRetryAfterForTest exposes parseRetryAfter for unit testing only.
Functions ¶
This section is empty.
Types ¶
type Embedder ¶
type Embedder interface {
// Embed returns a vector embedding for the given text.
Embed(ctx context.Context, text string) ([]float32, error)
// EmbedBatch returns vector embeddings for multiple texts.
EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)
// Dimension returns the embedding vector dimension.
Dimension() int
}
Embedder generates vector embeddings from text.
type OllamaEmbedder ¶
type OllamaEmbedder struct {
// contains filtered or unexported fields
}
OllamaEmbedder implements Embedder using the Ollama HTTP API.
func NewOllamaEmbedder ¶
func NewOllamaEmbedder(baseURL, model string, dimension int, logger *slog.Logger) *OllamaEmbedder
NewOllamaEmbedder creates a new Ollama-based embedder.
func (*OllamaEmbedder) Dimension ¶
func (o *OllamaEmbedder) Dimension() int
Dimension returns the embedding vector dimension.
func (*OllamaEmbedder) Embed ¶
Embed returns a vector embedding for the given text using the Ollama API.
func (*OllamaEmbedder) EmbedBatch ¶
EmbedBatch embeds multiple texts using a bounded worker pool (up to embedBatchWorkers goroutines, capped at len(texts)). The pool is canceled on the first error so that in-flight Ollama requests are aborted early rather than running to completion.
type OpenAIEmbedder ¶ added in v0.4.0
type OpenAIEmbedder struct {
// contains filtered or unexported fields
}
OpenAIEmbedder implements Embedder using the OpenAI Embeddings API. It uses text-embedding-3-small with a configurable dimensions parameter to maintain compatibility with existing Qdrant collections.
func NewOpenAIEmbedder ¶ added in v0.4.0
func NewOpenAIEmbedder(apiKey, model string, dimensions int, logger *slog.Logger) *OpenAIEmbedder
NewOpenAIEmbedder creates a new OpenAI-based embedder.
apiKey is the OpenAI API key (required). model defaults to "text-embedding-3-small" when empty. dimensions defaults to 768 when 0, enabling compatibility with existing Qdrant collections.
func NewOpenAIEmbedderWithURL ¶ added in v0.4.0
func NewOpenAIEmbedderWithURL(endpointURL, apiKey, model string, dimensions int, logger *slog.Logger) *OpenAIEmbedder
NewOpenAIEmbedderWithURL creates a new OpenAI-based embedder with a custom endpoint URL. This is intended for testing with a local httptest server; production code should use NewOpenAIEmbedder instead.
func (*OpenAIEmbedder) Dimension ¶ added in v0.4.0
func (o *OpenAIEmbedder) Dimension() int
Dimension returns the configured embedding dimension.
func (*OpenAIEmbedder) Embed ¶ added in v0.4.0
Embed returns a vector embedding for the given text using the OpenAI API.
func (*OpenAIEmbedder) EmbedBatch ¶ added in v0.4.0
EmbedBatch returns vector embeddings for multiple texts in a single API call.