Class: Kward::Compaction::CutPointFinder
- Inherits:
-
Object
- Object
- Kward::Compaction::CutPointFinder
- Defined in:
- lib/kward/compactor.rb
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
A new instance of CutPointFinder.
Constructor Details
#initialize(estimator: TokenEstimator.new) ⇒ CutPointFinder
Returns a new instance of CutPointFinder.
356 357 358 |
# File 'lib/kward/compactor.rb', line 356 def initialize(estimator: TokenEstimator.new) @estimator = estimator end |
Instance Method Details
#find(entries:, start_index:, keep_recent_tokens:) ⇒ Object
360 361 362 363 364 365 366 367 368 369 370 371 372 |
# File 'lib/kward/compactor.rb', line 360 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 |