retriever

package
v0.8.4 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CohereReranker added in v0.8.3

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

CohereReranker uses Cohere's Rerank API to rerank documents

func NewCohereReranker added in v0.8.3

func NewCohereReranker(apiKey string, config CohereRerankerConfig) *CohereReranker

NewCohereReranker creates a new Cohere reranker The API key can be provided via the apiKey parameter or COHERE_API_KEY environment variable

func (*CohereReranker) Rerank added in v0.8.3

func (r *CohereReranker) Rerank(ctx context.Context, query string, documents []rag.DocumentSearchResult) ([]rag.DocumentSearchResult, error)

Rerank reranks documents based on query relevance using Cohere's Rerank API

type CohereRerankerConfig added in v0.8.3

type CohereRerankerConfig struct {
	// Model is the Cohere rerank model to use
	// Options: "rerank-v3.5", "rerank-english-v3.0", "rerank-multilingual-v3.0"
	Model string
	// TopK is the number of documents to return
	TopK int
	// APIBase is the custom API base URL (optional)
	APIBase string
	// Timeout is the HTTP request timeout
	Timeout time.Duration
}

CohereRerankerConfig configures the Cohere reranker

func DefaultCohereRerankerConfig added in v0.8.3

func DefaultCohereRerankerConfig() CohereRerankerConfig

DefaultCohereRerankerConfig returns the default configuration for Cohere reranker

type CombinedDocumentScore

type CombinedDocumentScore struct {
	Document       rag.Document
	TotalScore     float64
	RetrieverCount int
	Sources        []string
	Metadata       map[string]any
}

CombinedDocumentScore tracks score information for a document from multiple retrievers

type CrossEncoderReranker added in v0.8.3

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

CrossEncoderReranker uses a cross-encoder model service for reranking

This reranker expects an HTTP service that accepts POST requests with the following JSON format:

{
  "query": "search query",
  "documents": ["document 1", "document 2", ...],
  "top_n": 5,
  "model": "model-name"
}

And returns:

{
  "scores": [0.95, 0.87, ...],
  "indices": [0, 2, ...]
}

You can set up a local service using Python with the sentence-transformers library. See the RERANKER.md file for an example setup script.

func NewCrossEncoderReranker added in v0.8.3

func NewCrossEncoderReranker(config CrossEncoderRerankerConfig) *CrossEncoderReranker

NewCrossEncoderReranker creates a new cross-encoder reranker

func (*CrossEncoderReranker) Rerank added in v0.8.3

Rerank reranks documents based on query relevance using cross-encoder scoring

type CrossEncoderRerankerConfig added in v0.8.3

type CrossEncoderRerankerConfig struct {
	// ModelName is the name of the cross-encoder model
	// Common models:
	// - "cross-encoder/ms-marco-MiniLM-L-6-v2"
	// - "cross-encoder/ms-marco-MiniLM-L-12-v2"
	// - "cross-encoder/mmarco-mMiniLMv2-L12-H384-v1"
	ModelName string
	// TopK is the number of documents to return
	TopK int
	// APIBase is the URL of the cross-encoder service
	// This can be a local service (e.g., http://localhost:8000/rerank)
	// or a remote service
	APIBase string
	// Timeout is the HTTP request timeout
	Timeout time.Duration
}

CrossEncoderRerankerConfig configures the Cross-Encoder reranker

func DefaultCrossEncoderRerankerConfig added in v0.8.3

func DefaultCrossEncoderRerankerConfig() CrossEncoderRerankerConfig

DefaultCrossEncoderRerankerConfig returns the default configuration

type GraphRetriever

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

GraphRetriever implements document retrieval using knowledge graphs

func NewGraphRetriever

func NewGraphRetriever(knowledgeGraph rag.KnowledgeGraph, embedder rag.Embedder, config rag.RetrievalConfig) *GraphRetriever

NewGraphRetriever creates a new graph retriever

func (*GraphRetriever) Retrieve

func (r *GraphRetriever) Retrieve(ctx context.Context, query string) ([]rag.Document, error)

Retrieve retrieves documents based on a query using the knowledge graph

func (*GraphRetriever) RetrieveWithConfig

func (r *GraphRetriever) RetrieveWithConfig(ctx context.Context, query string, config *rag.RetrievalConfig) ([]rag.DocumentSearchResult, error)

RetrieveWithConfig retrieves documents with custom configuration

func (*GraphRetriever) RetrieveWithK

func (r *GraphRetriever) RetrieveWithK(ctx context.Context, query string, k int) ([]rag.Document, error)

RetrieveWithK retrieves exactly k documents

type HybridRetriever

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

HybridRetriever combines multiple retrieval strategies

func NewHybridRetriever

func NewHybridRetriever(retrievers []rag.Retriever, weights []float64, config rag.RetrievalConfig) *HybridRetriever

NewHybridRetriever creates a new hybrid retriever that combines multiple retrievers

func (*HybridRetriever) AddRetriever

func (h *HybridRetriever) AddRetriever(retriever rag.Retriever, weight float64)

AddRetriever adds a new retriever to the hybrid strategy

func (*HybridRetriever) GetRetrieverCount

func (h *HybridRetriever) GetRetrieverCount() int

GetRetrieverCount returns the number of retrievers being used

func (*HybridRetriever) GetWeights

func (h *HybridRetriever) GetWeights() []float64

GetWeights returns the weights being used for each retriever

func (*HybridRetriever) RemoveRetriever

func (h *HybridRetriever) RemoveRetriever(index int) error

RemoveRetriever removes a retriever by index

func (*HybridRetriever) Retrieve

func (h *HybridRetriever) Retrieve(ctx context.Context, query string) ([]rag.Document, error)

Retrieve retrieves documents using all configured retrievers and combines results

func (*HybridRetriever) RetrieveWithConfig

func (h *HybridRetriever) RetrieveWithConfig(ctx context.Context, query string, config *rag.RetrievalConfig) ([]rag.DocumentSearchResult, error)

RetrieveWithConfig retrieves documents with custom configuration using hybrid strategy

func (*HybridRetriever) RetrieveWithK

func (h *HybridRetriever) RetrieveWithK(ctx context.Context, query string, k int) ([]rag.Document, error)

RetrieveWithK retrieves exactly k documents using hybrid strategy

func (*HybridRetriever) SetWeights

func (h *HybridRetriever) SetWeights(weights []float64) error

SetWeights updates the weights for each retriever

type JinaReranker added in v0.8.3

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

JinaReranker uses Jina AI's Rerank API to rerank documents

func NewJinaReranker added in v0.8.3

func NewJinaReranker(apiKey string, config JinaRerankerConfig) *JinaReranker

NewJinaReranker creates a new Jina reranker The API key can be provided via the apiKey parameter or JINA_API_KEY environment variable

func (*JinaReranker) Rerank added in v0.8.3

func (r *JinaReranker) Rerank(ctx context.Context, query string, documents []rag.DocumentSearchResult) ([]rag.DocumentSearchResult, error)

Rerank reranks documents based on query relevance using Jina's Rerank API

type JinaRerankerConfig added in v0.8.3

type JinaRerankerConfig struct {
	// Model is the Jina rerank model to use
	// Options: "jina-reranker-v1-base-en", "jina-reranker-v2-base-multilingual"
	Model string
	// TopK is the number of documents to return
	TopK int
	// APIBase is the custom API base URL (optional)
	APIBase string
	// Timeout is the HTTP request timeout
	Timeout time.Duration
}

JinaRerankerConfig configures the Jina reranker

func DefaultJinaRerankerConfig added in v0.8.3

func DefaultJinaRerankerConfig() JinaRerankerConfig

DefaultJinaRerankerConfig returns the default configuration for Jina reranker

type LLMReranker added in v0.8.3

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

LLMReranker uses an LLM to score query-document pairs for reranking

func NewLLMReranker added in v0.8.3

func NewLLMReranker(llm llms.Model, config LLMRerankerConfig) *LLMReranker

NewLLMReranker creates a new LLM-based reranker

func (*LLMReranker) Rerank added in v0.8.3

func (r *LLMReranker) Rerank(ctx context.Context, query string, documents []rag.DocumentSearchResult) ([]rag.DocumentSearchResult, error)

Rerank reranks documents based on query relevance using LLM scoring

type LLMRerankerConfig added in v0.8.3

type LLMRerankerConfig struct {
	// TopK is the number of documents to return
	TopK int
	// ScoreThreshold is the minimum relevance score (0-1)
	ScoreThreshold float64
	// SystemPrompt is a custom system prompt for scoring
	SystemPrompt string
	// BatchSize is the number of documents to score in a single request (for efficiency)
	BatchSize int
}

LLMRerankerConfig configures the LLM-based reranker

func DefaultLLMRerankerConfig added in v0.8.3

func DefaultLLMRerankerConfig() LLMRerankerConfig

DefaultLLMRerankerConfig returns the default configuration for LLM reranker

type SimpleReranker

type SimpleReranker struct {
}

SimpleReranker is a simple reranker that scores documents based on keyword matching

func NewSimpleReranker

func NewSimpleReranker() *SimpleReranker

NewSimpleReranker creates a new SimpleReranker

func (*SimpleReranker) Rerank

func (r *SimpleReranker) Rerank(ctx context.Context, query string, documents []rag.DocumentSearchResult) ([]rag.DocumentSearchResult, error)

Rerank reranks documents based on query relevance

type VectorRetriever

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

VectorRetriever implements document retrieval using vector similarity

func NewVectorRetriever

func NewVectorRetriever(vectorStore rag.VectorStore, embedder rag.Embedder, config rag.RetrievalConfig) *VectorRetriever

NewVectorRetriever creates a new vector retriever

func (*VectorRetriever) Retrieve

func (r *VectorRetriever) Retrieve(ctx context.Context, query string) ([]rag.Document, error)

Retrieve retrieves documents based on a query

func (*VectorRetriever) RetrieveWithConfig

func (r *VectorRetriever) RetrieveWithConfig(ctx context.Context, query string, config *rag.RetrievalConfig) ([]rag.DocumentSearchResult, error)

RetrieveWithConfig retrieves documents with custom configuration

func (*VectorRetriever) RetrieveWithK

func (r *VectorRetriever) RetrieveWithK(ctx context.Context, query string, k int) ([]rag.Document, error)

RetrieveWithK retrieves exactly k documents

type VectorStoreRetriever

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

VectorStoreRetriever implements Retriever using a VectorStore with backward compatibility

func NewVectorStoreRetriever

func NewVectorStoreRetriever(vectorStore rag.VectorStore, embedder rag.Embedder, topK int) *VectorStoreRetriever

NewVectorStoreRetriever creates a new VectorStoreRetriever

func (*VectorStoreRetriever) Retrieve

func (r *VectorStoreRetriever) Retrieve(ctx context.Context, query string) ([]rag.Document, error)

Retrieve retrieves relevant documents for a query

func (*VectorStoreRetriever) RetrieveWithConfig

func (r *VectorStoreRetriever) RetrieveWithConfig(ctx context.Context, query string, config *rag.RetrievalConfig) ([]rag.DocumentSearchResult, error)

RetrieveWithConfig retrieves documents with custom configuration

func (*VectorStoreRetriever) RetrieveWithK

func (r *VectorStoreRetriever) RetrieveWithK(ctx context.Context, query string, k int) ([]rag.Document, error)

RetrieveWithK retrieves exactly k documents

Jump to

Keyboard shortcuts

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