Class: Llmemory::Retrieval::MultiSource

Inherits:
Object
  • Object
show all
Defined in:
lib/llmemory/retrieval/multi_source.rb

Overview

Combines semantic, episodic and procedural memory for unified retrieval.

Instance Method Summary collapse

Constructor Details

#initialize(primary:, memory:) ⇒ MultiSource

Returns a new instance of MultiSource.



7
8
9
10
# File 'lib/llmemory/retrieval/multi_source.rb', line 7

def initialize(primary:, memory:)
  @primary = primary
  @memory = memory
end

Instance Method Details

#search_candidates(query, user_id: nil, top_k: 20) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/llmemory/retrieval/multi_source.rb', line 16

def search_candidates(query, user_id: nil, top_k: 20)
  uid = user_id || @memory.user_id
  combined = []
  combined.concat(@primary.search_candidates(query, user_id: uid, top_k: top_k))
  combined.concat(@memory.episodic.search_candidates(query, user_id: uid, top_k: top_k))
  combined.concat(@memory.procedural.search_candidates(query, user_id: uid, top_k: top_k))
  combined
end

#user_idObject



12
13
14
# File 'lib/llmemory/retrieval/multi_source.rb', line 12

def user_id
  @memory.user_id
end