Class: Llmemory::Retrieval::ContextAssembler
- Inherits:
-
Object
- Object
- Llmemory::Retrieval::ContextAssembler
- Defined in:
- lib/llmemory/retrieval/context_assembler.rb
Instance Method Summary collapse
- #assemble(ranked_memories, max_tokens: nil) ⇒ Object
- #count_tokens(text) ⇒ Object
-
#initialize(max_tokens: nil) ⇒ ContextAssembler
constructor
A new instance of ContextAssembler.
Constructor Details
#initialize(max_tokens: nil) ⇒ ContextAssembler
Returns a new instance of ContextAssembler.
6 7 8 |
# File 'lib/llmemory/retrieval/context_assembler.rb', line 6 def initialize(max_tokens: nil) @max_tokens = max_tokens || Llmemory.configuration.max_retrieval_tokens end |
Instance Method Details
#assemble(ranked_memories, max_tokens: nil) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/llmemory/retrieval/context_assembler.rb', line 10 def assemble(ranked_memories, max_tokens: nil) max_tokens ||= @max_tokens selected = [] token_count = 0 ranked_memories.each do |memory| text = memory[:text] || memory["text"] || "" memory_tokens = count_tokens(text) break if token_count + memory_tokens > max_tokens selected << { text: text, timestamp: memory[:timestamp] || memory["timestamp"], confidence: memory[:temporal_score] || memory[:score] || memory["score"] } token_count += memory_tokens end format_context(selected) end |
#count_tokens(text) ⇒ Object
31 32 33 |
# File 'lib/llmemory/retrieval/context_assembler.rb', line 31 def count_tokens(text) (text.to_s.length / 4.0).ceil end |