Module: Legion::Extensions::Agentic::Memory::Compression::Runners::CognitiveCompression
- Includes:
- Helpers::Constants, Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb
Constant Summary
Helpers::Constants::CHUNK_TYPES, Helpers::Constants::COMPRESSION_LABELS, Helpers::Constants::COMPRESSION_RATE, Helpers::Constants::DEFAULT_COMPRESSION_RATIO, Helpers::Constants::FIDELITY_LABELS, Helpers::Constants::FIDELITY_LOSS_RATE, Helpers::Constants::MAX_ABSTRACTIONS, Helpers::Constants::MAX_CHUNKS, Helpers::Constants::MIN_FIDELITY
Instance Method Summary
collapse
-
#abstract_chunks(chunk_ids:, abstraction_label:, engine: nil) ⇒ Object
-
#average_fidelity(engine: nil) ⇒ Object
-
#compress_all(engine: nil, amount: COMPRESSION_RATE) ⇒ Object
-
#compress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE) ⇒ Object
-
#compression_report(engine: nil) ⇒ Object
-
#decompress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE) ⇒ Object
-
#overall_compression_ratio(engine: nil) ⇒ Object
-
#store_chunk(label:, engine: nil, chunk_type: :semantic, original_size: 1.0) ⇒ Object
Instance Method Details
#abstract_chunks(chunk_ids:, abstraction_label:, engine: nil) ⇒ Object
36
37
38
39
40
41
42
|
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 36
def abstract_chunks(chunk_ids:, abstraction_label:, engine: nil, **)
eng = engine || default_engine
result = eng.abstract_chunks(chunk_ids: chunk_ids, abstraction_label: abstraction_label)
return { success: false, error: 'no valid chunks' } unless result
{ success: true, abstraction: result.to_h }
end
|
#average_fidelity(engine: nil) ⇒ Object
50
51
52
53
|
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 50
def average_fidelity(engine: nil, **)
eng = engine || default_engine
{ success: true, fidelity: eng.average_fidelity }
end
|
#compress_all(engine: nil, amount: COMPRESSION_RATE) ⇒ Object
44
45
46
47
48
|
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 44
def compress_all(engine: nil, amount: COMPRESSION_RATE, **)
eng = engine || default_engine
count = eng.compress_all(amount: amount)
{ success: true, compressed_count: count }
end
|
#compress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE) ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 20
def compress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE, **)
eng = engine || default_engine
result = eng.compress_chunk(chunk_id: chunk_id, amount: amount)
return { success: false, error: 'chunk not found' } unless result
{ success: true, chunk: result.to_h }
end
|
#compression_report(engine: nil) ⇒ Object
60
61
62
63
|
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 60
def compression_report(engine: nil, **)
eng = engine || default_engine
{ success: true, report: eng.compression_report }
end
|
#decompress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE) ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 28
def decompress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE, **)
eng = engine || default_engine
result = eng.decompress_chunk(chunk_id: chunk_id, amount: amount)
return { success: false, error: 'chunk not found' } unless result
{ success: true, chunk: result.to_h }
end
|
#overall_compression_ratio(engine: nil) ⇒ Object
55
56
57
58
|
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 55
def overall_compression_ratio(engine: nil, **)
eng = engine || default_engine
{ success: true, ratio: eng.overall_compression_ratio }
end
|
#store_chunk(label:, engine: nil, chunk_type: :semantic, original_size: 1.0) ⇒ Object
14
15
16
17
18
|
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 14
def store_chunk(label:, engine: nil, chunk_type: :semantic, original_size: 1.0, **)
eng = engine || default_engine
chunk = eng.store_chunk(label: label, chunk_type: chunk_type, original_size: original_size)
{ success: true, chunk: chunk.to_h }
end
|