retriever

package
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package retriever defines the interface for retrieving relevant chunks based on a query.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ChunkFromSearchResult

func ChunkFromSearchResult(sr vectorstore.SearchResult) *chunk.Chunk

ChunkFromSearchResult builds the chunk a vector hit stands for. The vector entry's ID is the chunk ID ingest wrote, so it is carried through: without it nobody can tell which chunk, document or collection a hit came from. Everything else on the chunk comes from the metadata store, which the engine reads afterwards.

Types

type HybridRetriever

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

HybridRetriever combines multiple retrievers using Reciprocal Rank Fusion (RRF).

func NewHybridRetriever

func NewHybridRetriever(retrievers ...Retriever) *HybridRetriever

NewHybridRetriever creates a hybrid retriever from multiple sub-retrievers.

func (*HybridRetriever) Describe

func (r *HybridRetriever) Describe() weave.ComponentInfo

Describe reports a hybrid retriever, its RRF constant and its parts.

func (*HybridRetriever) Retrieve

func (r *HybridRetriever) Retrieve(ctx context.Context, query string, opts *Options) ([]Result, error)

Retrieve runs all sub-retrievers and fuses results via RRF.

type MMRRetriever

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

MMRRetriever uses Maximal Marginal Relevance to re-rank candidates, balancing relevance and diversity.

func NewMMRRetriever

func NewMMRRetriever(vs vectorstore.VectorStore, emb embedder.Embedder, lambda float64) *MMRRetriever

NewMMRRetriever creates a new MMR retriever. Lambda controls the trade-off: 1.0 = pure relevance, 0.0 = pure diversity.

func (*MMRRetriever) Describe

func (r *MMRRetriever) Describe() weave.ComponentInfo

Describe reports an MMR retriever and its lambda.

func (*MMRRetriever) Retrieve

func (r *MMRRetriever) Retrieve(ctx context.Context, query string, opts *Options) ([]Result, error)

Retrieve performs MMR-based retrieval.

type Options

type Options struct {
	// CollectionID restricts retrieval to a specific collection.
	CollectionID string `json:"collection_id,omitempty"`
	// TenantKey is the namespace key for tenant isolation.
	TenantKey string `json:"tenant_key,omitempty"`
	// TopK is the maximum number of results to return.
	TopK int `json:"top_k"`
	// MinScore is the minimum relevance score threshold.
	MinScore float64 `json:"min_score"`
	// Filter restricts retrieval to chunks matching these metadata key-value pairs.
	Filter map[string]string `json:"filter,omitempty"`
}

Options configures a retrieval operation.

type Reranker

type Reranker interface {
	Rerank(ctx context.Context, query string, documents []string) ([]float64, error)
}

Reranker scores query-document pairs for re-ordering.

type RerankerRetriever

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

RerankerRetriever wraps a base retriever and re-orders results using a cross-encoder or other reranker.

func NewRerankerRetriever

func NewRerankerRetriever(base Retriever, reranker Reranker) *RerankerRetriever

NewRerankerRetriever creates a retriever that re-ranks results from the base retriever.

func (*RerankerRetriever) Describe

func (r *RerankerRetriever) Describe() weave.ComponentInfo

Describe reports a reranking retriever and the retriever it wraps.

func (*RerankerRetriever) Retrieve

func (r *RerankerRetriever) Retrieve(ctx context.Context, query string, opts *Options) ([]Result, error)

Retrieve fetches candidates from the base retriever and re-ranks them.

type Result

type Result struct {
	// Chunk is the retrieved chunk.
	Chunk *chunk.Chunk `json:"chunk"`
	// Score is the relevance score (higher is more relevant).
	Score float64 `json:"score"`
}

Result represents a retrieved chunk with a relevance score.

type Retriever

type Retriever interface {
	// Retrieve returns the most relevant chunks for the given query.
	Retrieve(ctx context.Context, query string, opts *Options) ([]Result, error)
}

Retriever retrieves relevant chunks for a given query.

type SimilarityRetriever

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

SimilarityRetriever wraps a VectorStore.Search for simple cosine similarity retrieval.

func NewSimilarityRetriever

func NewSimilarityRetriever(vs vectorstore.VectorStore, emb embedder.Embedder, store chunk.Store) *SimilarityRetriever

NewSimilarityRetriever creates a new similarity-based retriever.

func (*SimilarityRetriever) Describe

func (r *SimilarityRetriever) Describe() weave.ComponentInfo

Describe reports a similarity retriever. Its score is whatever the vector store underneath reports.

func (*SimilarityRetriever) Retrieve

func (r *SimilarityRetriever) Retrieve(ctx context.Context, query string, opts *Options) ([]Result, error)

Retrieve embeds the query and searches the vector store.

Jump to

Keyboard shortcuts

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