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.
421 422 423 |
# File 'lib/kward/compactor.rb', line 421 def initialize(estimator: TokenEstimator.new) @estimator = estimator end |
Instance Method Details
#find(entries:, start_index:, keep_recent_tokens:) ⇒ Object
425 426 427 428 429 430 431 432 433 434 435 436 437 |
# File 'lib/kward/compactor.rb', line 425 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 |