Class: Llmemory::ShortTerm::Pruner
- Inherits:
-
Object
- Object
- Llmemory::ShortTerm::Pruner
- Defined in:
- lib/llmemory/short_term/pruner.rb
Constant Summary collapse
- DEFAULT_PRUNABLE_ROLES =
%i[tool tool_result].freeze
- PLACEHOLDER =
"[Tool result pruned]"
Instance Method Summary collapse
-
#initialize(prunable_roles: nil, soft_trim_max_bytes: 2048, soft_trim_head_ratio: 0.4, soft_trim_tail_ratio: 0.2) ⇒ Pruner
constructor
A new instance of Pruner.
- #prune!(messages, mode: :soft_trim) ⇒ Object
Constructor Details
#initialize(prunable_roles: nil, soft_trim_max_bytes: 2048, soft_trim_head_ratio: 0.4, soft_trim_tail_ratio: 0.2) ⇒ Pruner
Returns a new instance of Pruner.
9 10 11 12 13 14 |
# File 'lib/llmemory/short_term/pruner.rb', line 9 def initialize(prunable_roles: nil, soft_trim_max_bytes: 2048, soft_trim_head_ratio: 0.4, soft_trim_tail_ratio: 0.2) @prunable_roles = prunable_roles || DEFAULT_PRUNABLE_ROLES.map(&:to_s) @soft_trim_max_bytes = soft_trim_max_bytes @head_ratio = soft_trim_head_ratio @tail_ratio = soft_trim_tail_ratio end |
Instance Method Details
#prune!(messages, mode: :soft_trim) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/llmemory/short_term/pruner.rb', line 16 def prune!(, mode: :soft_trim) return .dup if .empty? .map do |msg| if prunable?(msg) apply_prune(msg, mode) else msg.dup end end end |