Documentation
¶
Index ¶
- func RegisterDefaultStrategies(reg *StrategyRegistry, nodes StrategyNodes) error
- type CacheConfig
- type CachingRetriever
- type CachingRetrieverOption
- type Composer
- type GraphRetriever
- type MultiHopReasoner
- type Pipeline
- type PipelineConfig
- type PipelineInput
- type PipelineOutput
- type QueryTransformer
- type Reranker
- type Retriever
- type StrategyFactory
- type StrategyKind
- type StrategyNodes
- type StrategyRegistry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterDefaultStrategies ¶
func RegisterDefaultStrategies(reg *StrategyRegistry, nodes StrategyNodes) error
RegisterDefaultStrategies mounts available strategy nodes into registry.
Types ¶
type CacheConfig ¶ added in v1.5.0
type CacheConfig struct {
Enabled bool `json:"enabled" yaml:"enabled"`
SimilarityThreshold float64 `json:"similarity_threshold" yaml:"similarity_threshold"`
TTL time.Duration `json:"ttl" yaml:"ttl"`
MaxEntries int `json:"max_entries" yaml:"max_entries"`
}
CacheConfig controls the semantic caching behavior.
func DefaultCacheConfig ¶ added in v1.5.0
func DefaultCacheConfig() CacheConfig
DefaultCacheConfig returns conservative cache defaults.
type CachingRetriever ¶ added in v1.5.0
type CachingRetriever struct {
// contains filtered or unexported fields
}
CachingRetriever wraps a Retriever with embedding-based semantic caching. TTL-based lazy eviction: expired entries are detected and removed on read. MaxEntries enforcement: new writes are skipped when the store is full.
func NewCachingRetriever ¶ added in v1.5.0
func NewCachingRetriever(inner Retriever, store ragcore.VectorStore, config CacheConfig, logger *zap.Logger, opts ...CachingRetrieverOption) *CachingRetriever
NewCachingRetriever creates a caching retriever wrapper. NewCachingRetriever creates a caching retriever wrapper. Pass a non-nil metrics.Collector to emit Prometheus cache_hits/misses/evictions.
func (*CachingRetriever) Evictions ¶ added in v1.5.0
func (c *CachingRetriever) Evictions() int64
Evictions returns the count of expired entries evicted during reads.
func (*CachingRetriever) Retrieve ¶ added in v1.5.0
func (c *CachingRetriever) Retrieve(ctx context.Context, query string, queryEmbedding []float64) ([]rag.RetrievalResult, error)
Retrieve attempts cache lookup first, falls back to inner retriever on miss. Expired entries (TTL exceeded) are lazily evicted and treated as misses.
func (*CachingRetriever) Stats ¶ added in v1.5.0
func (c *CachingRetriever) Stats() (hits, misses int64)
Stats returns cache hit/miss counts.
type CachingRetrieverOption ¶ added in v1.6.0
type CachingRetrieverOption func(*CachingRetriever)
CachingRetrieverOption configures optional dependencies.
func WithMetricsCollector ¶ added in v1.6.0
func WithMetricsCollector(c *metrics.Collector) CachingRetrieverOption
WithMetricsCollector injects a Prometheus metrics collector for cache instrumentation.
type Composer ¶
type Composer interface {
Compose(ctx context.Context, query string, results []rag.RetrievalResult) (string, error)
}
Composer builds context text from final candidates.
type GraphRetriever ¶
type GraphRetriever interface {
Retrieve(ctx context.Context, query string) ([]rag.GraphRetrievalResult, error)
}
GraphRetriever is the minimal contract required by graph strategy node.
type MultiHopReasoner ¶
type MultiHopReasoner interface {
Reason(ctx context.Context, query string) (*rag.ReasoningChain, error)
}
MultiHopReasoner is the minimal contract required by multi-hop strategy node.
type Pipeline ¶
type Pipeline struct {
// contains filtered or unexported fields
}
Pipeline implements unified execution path: query transform -> retrieve -> rerank(optional) -> compose context.
func NewPipeline ¶
func NewPipeline( config PipelineConfig, transformer QueryTransformer, retriever Retriever, reranker Reranker, composer Composer, ) *Pipeline
NewPipeline creates a pipeline with required retriever and optional stages.
func (*Pipeline) Execute ¶
func (p *Pipeline) Execute(ctx context.Context, in PipelineInput) (*PipelineOutput, error)
Execute runs the unified retrieval pipeline.
type PipelineConfig ¶
PipelineConfig controls candidate limits for retrieval and rerank phases.
func DefaultPipelineConfig ¶
func DefaultPipelineConfig() PipelineConfig
DefaultPipelineConfig returns conservative defaults for production flow.
type PipelineInput ¶
PipelineInput is the request payload for retrieval pipeline execution.
type PipelineOutput ¶
type PipelineOutput struct {
TransformedQuery string
Results []rag.RetrievalResult
Context string
}
PipelineOutput is the normalized output of the retrieval pipeline.
type QueryTransformer ¶
QueryTransformer transforms the incoming query before retrieval.
type Reranker ¶
type Reranker interface {
Rerank(ctx context.Context, query string, results []rag.RetrievalResult) ([]rag.RetrievalResult, error)
}
Reranker re-orders retrieval candidates.
type Retriever ¶
type Retriever interface {
Retrieve(ctx context.Context, query string, queryEmbedding []float64) ([]rag.RetrievalResult, error)
}
Retriever fetches candidates for the transformed query.
func NewStrategyNode ¶
func NewStrategyNode(kind StrategyKind, nodes StrategyNodes) (Retriever, error)
NewStrategyNode builds a retriever strategy node for unified pipeline.
type StrategyFactory ¶
StrategyFactory builds a retriever for a concrete strategy kind.
type StrategyKind ¶
type StrategyKind string
StrategyKind identifies retrieval strategy nodes mounted into unified pipeline.
const ( StrategyHybrid StrategyKind = "hybrid" StrategyBM25 StrategyKind = "bm25" StrategyVector StrategyKind = "vector" StrategyGraph StrategyKind = "graph" StrategyContextual StrategyKind = "contextual" StrategyMultiHop StrategyKind = "multi_hop" )
type StrategyNodes ¶
type StrategyNodes struct {
Hybrid *rag.HybridRetriever
BM25 *rag.HybridRetriever
Vector *rag.HybridRetriever
Graph GraphRetriever
Contextual *rag.ContextualRetrieval
MultiHop MultiHopReasoner
}
StrategyNodes groups available strategy implementations.
type StrategyRegistry ¶
type StrategyRegistry struct {
// contains filtered or unexported fields
}
StrategyRegistry centralizes retrieval strategy construction.
func NewStrategyRegistry ¶
func NewStrategyRegistry() *StrategyRegistry
NewStrategyRegistry creates an empty retrieval strategy registry.
func (*StrategyRegistry) Build ¶
func (r *StrategyRegistry) Build(kind StrategyKind) (Retriever, error)
Build constructs a retriever by strategy kind.
func (*StrategyRegistry) List ¶
func (r *StrategyRegistry) List() []StrategyKind
List returns all registered strategy kinds.
func (*StrategyRegistry) Register ¶
func (r *StrategyRegistry) Register(kind StrategyKind, factory StrategyFactory) error
Register adds a strategy factory. Duplicate registration is rejected.