Class: Kward::Compaction::CutPointFinder
- Inherits:
-
Object
- Object
- Kward::Compaction::CutPointFinder
- Defined in:
- lib/kward/compactor.rb
Overview
Compaction support object used by conversation summarization.
Constant Summary collapse
- VALID_CUT_ROLES =
["user", "assistant", "bash", "custom", "branchSummary"].freeze
Instance Method Summary collapse
- #find(entries:, start_index:, keep_recent_tokens:) ⇒ Object
-
#initialize(estimator: TokenEstimator.new) ⇒ CutPointFinder
constructor
Creates an object for conversation compaction.
Constructor Details
#initialize(estimator: TokenEstimator.new) ⇒ CutPointFinder
Creates an object for conversation compaction.
370 371 372 |
# File 'lib/kward/compactor.rb', line 370 def initialize(estimator: TokenEstimator.new) @estimator = estimator end |
Instance Method Details
#find(entries:, start_index:, keep_recent_tokens:) ⇒ Object
374 375 376 377 378 379 380 381 382 383 384 385 386 |
# File 'lib/kward/compactor.rb', line 374 def find(entries:, start_index:, keep_recent_tokens:) entries = Array(entries) return nil if start_index >= entries.length return nil if @estimator.(entries[start_index..]) <= keep_recent_tokens turn_boundary = turn_boundary_cut(entries, start_index, keep_recent_tokens) return turn_boundary if turn_boundary split = split_turn_cut(entries, start_index, keep_recent_tokens) return split if split fallback_cut(entries, start_index, keep_recent_tokens) end |