Documentation
¶
Index ¶
- type CohereReranker
- type CohereRerankerConfig
- type CombinedDocumentScore
- type CrossEncoderReranker
- type CrossEncoderRerankerConfig
- type GraphRetriever
- func (r *GraphRetriever) Retrieve(ctx context.Context, query string) ([]rag.Document, error)
- func (r *GraphRetriever) RetrieveWithConfig(ctx context.Context, query string, config *rag.RetrievalConfig) ([]rag.DocumentSearchResult, error)
- func (r *GraphRetriever) RetrieveWithK(ctx context.Context, query string, k int) ([]rag.Document, error)
- type HybridRetriever
- func (h *HybridRetriever) AddRetriever(retriever rag.Retriever, weight float64)
- func (h *HybridRetriever) GetRetrieverCount() int
- func (h *HybridRetriever) GetWeights() []float64
- func (h *HybridRetriever) RemoveRetriever(index int) error
- func (h *HybridRetriever) Retrieve(ctx context.Context, query string) ([]rag.Document, error)
- func (h *HybridRetriever) RetrieveWithConfig(ctx context.Context, query string, config *rag.RetrievalConfig) ([]rag.DocumentSearchResult, error)
- func (h *HybridRetriever) RetrieveWithK(ctx context.Context, query string, k int) ([]rag.Document, error)
- func (h *HybridRetriever) SetWeights(weights []float64) error
- type JinaReranker
- type JinaRerankerConfig
- type LLMReranker
- type LLMRerankerConfig
- type SimpleReranker
- type VectorRetriever
- func (r *VectorRetriever) Retrieve(ctx context.Context, query string) ([]rag.Document, error)
- func (r *VectorRetriever) RetrieveWithConfig(ctx context.Context, query string, config *rag.RetrievalConfig) ([]rag.DocumentSearchResult, error)
- func (r *VectorRetriever) RetrieveWithK(ctx context.Context, query string, k int) ([]rag.Document, error)
- type VectorStoreRetriever
- func (r *VectorStoreRetriever) Retrieve(ctx context.Context, query string) ([]rag.Document, error)
- func (r *VectorStoreRetriever) RetrieveWithConfig(ctx context.Context, query string, config *rag.RetrievalConfig) ([]rag.DocumentSearchResult, error)
- func (r *VectorStoreRetriever) RetrieveWithK(ctx context.Context, query string, k int) ([]rag.Document, error)
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
func (r *CrossEncoderReranker) Rerank(ctx context.Context, query string, documents []rag.DocumentSearchResult) ([]rag.DocumentSearchResult, error)
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 ¶
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 ¶
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) 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) 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