Documentation
¶
Index ¶
- type ContextualStrategy
- type Engine
- func (e *Engine) BFS(ctx context.Context, sourceID uuid.UUID, maxHops int, ...) ([]*TraversalResult, error)
- func (e *Engine) DFS(ctx context.Context, sourceID uuid.UUID, maxHops int, ...) ([]*TraversalResult, error)
- func (e *Engine) GetHierarchicalContext(ctx context.Context, path string, config *model.QueryConfig) ([]*model.Chunk, error)
- func (e *Engine) GetNeighbors(ctx context.Context, chunkID uuid.UUID, edgeTypes []model.EdgeType, ...) ([]*model.Chunk, error)
- func (e *Engine) VectorRetrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)
- type EntitiesDB
- type EntityCentricStrategy
- type HybridStrategy
- type MultiHopStrategy
- type Strategy
- type TraversalResult
- type VectorOnlyStrategy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ContextualStrategy ¶
type ContextualStrategy struct {
// contains filtered or unexported fields
}
ContextualStrategy combines vector search with immediate neighbors and hierarchical context
func NewContextualStrategy ¶
func NewContextualStrategy(engine *Engine) *ContextualStrategy
NewContextualStrategy creates a new contextual strategy
func (*ContextualStrategy) Retrieve ¶
func (s *ContextualStrategy) Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)
Retrieve performs contextual retrieval
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine provides hybrid retrieval and graph traversal capabilities
func NewEngine ¶
func NewEngine(chunks *database.ChunksDBHandler, edges *database.EdgesDBHandler, entities *database.EntitiesDBHandler) *Engine
NewEngine creates a new retrieval engine
func (*Engine) BFS ¶
func (e *Engine) BFS(ctx context.Context, sourceID uuid.UUID, maxHops int, edgeTypes []model.EdgeType, followBidirectional bool) ([]*TraversalResult, error)
BFS performs breadth-first search from a source chunk
func (*Engine) DFS ¶
func (e *Engine) DFS(ctx context.Context, sourceID uuid.UUID, maxHops int, edgeTypes []model.EdgeType, followBidirectional bool) ([]*TraversalResult, error)
DFS performs depth-first search from a source chunk
func (*Engine) GetHierarchicalContext ¶
func (e *Engine) GetHierarchicalContext(ctx context.Context, path string, config *model.QueryConfig) ([]*model.Chunk, error)
GetHierarchicalContext retrieves hierarchical context using ltree
func (*Engine) GetNeighbors ¶
func (e *Engine) GetNeighbors(ctx context.Context, chunkID uuid.UUID, edgeTypes []model.EdgeType, followBidirectional bool) ([]*model.Chunk, error)
GetNeighbors retrieves immediate neighbors of a chunk
func (*Engine) VectorRetrieve ¶
func (e *Engine) VectorRetrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)
VectorRetrieve performs pure vector similarity search
type EntitiesDB ¶
type EntitiesDB interface {
GetEntity(ctx context.Context, id string) (*model.Entity, error)
GetChunksForEntity(ctx context.Context, entityID string) ([]*model.Chunk, error)
}
EntitiesDB defines the interface for entity operations
type EntityCentricStrategy ¶
type EntityCentricStrategy struct {
// contains filtered or unexported fields
}
EntityCentricStrategy retrieves all chunks related to specific entities
func NewEntityCentricStrategy ¶
func NewEntityCentricStrategy(engine *Engine, entitiesDB EntitiesDB) *EntityCentricStrategy
NewEntityCentricStrategy creates a new entity-centric strategy
func (*EntityCentricStrategy) Retrieve ¶
func (s *EntityCentricStrategy) Retrieve(ctx context.Context, entityID uuid.UUID, config *model.QueryConfig) ([]*model.RetrievalResult, error)
Retrieve performs entity-centric retrieval
type HybridStrategy ¶
type HybridStrategy struct {
// contains filtered or unexported fields
}
HybridStrategy combines vector, graph, and hierarchical signals with configurable weights
func NewHybridStrategy ¶
func NewHybridStrategy(engine *Engine) *HybridStrategy
NewHybridStrategy creates a new hybrid strategy
func (*HybridStrategy) Retrieve ¶
func (s *HybridStrategy) Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)
Retrieve performs hybrid retrieval with weighted combination
type MultiHopStrategy ¶
type MultiHopStrategy struct {
// contains filtered or unexported fields
}
MultiHopStrategy performs graph traversal from top vector results
func NewMultiHopStrategy ¶
func NewMultiHopStrategy(engine *Engine) *MultiHopStrategy
NewMultiHopStrategy creates a new multi-hop strategy
func (*MultiHopStrategy) Retrieve ¶
func (s *MultiHopStrategy) Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)
Retrieve performs multi-hop retrieval
type Strategy ¶
type Strategy interface {
Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)
}
Strategy defines a retrieval strategy
type TraversalResult ¶
type TraversalResult struct {
Chunk *model.Chunk
Distance int
Path []uuid.UUID // Path from source to this chunk
}
TraversalResult contains a chunk and its distance from the source
type VectorOnlyStrategy ¶
type VectorOnlyStrategy struct {
// contains filtered or unexported fields
}
VectorOnlyStrategy performs pure vector similarity search
func NewVectorOnlyStrategy ¶
func NewVectorOnlyStrategy(engine *Engine) *VectorOnlyStrategy
NewVectorOnlyStrategy creates a new vector-only strategy
func (*VectorOnlyStrategy) Retrieve ¶
func (s *VectorOnlyStrategy) Retrieve(ctx context.Context, embedding []float32, config *model.QueryConfig) ([]*model.RetrievalResult, error)
Retrieve performs vector-only retrieval