Module: SmartPrompt::ContextStrategy

Included in:
HybridStrategy, RelevanceBasedStrategy, SlidingWindowStrategy, SummaryBasedStrategy
Defined in:
lib/smart_prompt/context_strategy.rb

Overview

ContextStrategy defines the interface for context selection strategies Different strategies implement different algorithms for selecting which messages to include in the context window based on various criteria

Instance Method Summary collapse

Instance Method Details

#select_messages(messages, max_tokens, current_message = nil) ⇒ Array<Message>

Select messages from the session to include in context

Parameters:

  • messages (Array<Message>)

    All messages in the session

  • max_tokens (Integer, nil)

    Maximum token limit for selected messages

  • current_message (Message, nil) (defaults to: nil)

    The current message being processed (for relevance)

Returns:

  • (Array<Message>)

    Selected messages that fit within constraints

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/smart_prompt/context_strategy.rb', line 11

def select_messages(messages, max_tokens, current_message = nil)
  raise NotImplementedError, "#{self.class} must implement #select_messages"
end

#should_compress?(session) ⇒ Boolean

Determine if the session should be compressed

Parameters:

  • session (Session)

    The session to evaluate

Returns:

  • (Boolean)

    true if compression is recommended

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/smart_prompt/context_strategy.rb', line 18

def should_compress?(session)
  raise NotImplementedError, "#{self.class} must implement #should_compress?"
end