Class: Kward::Compaction::Summarizer

Inherits:
Object
  • Object
show all
Defined in:
lib/kward/compactor.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:, prompt_builder: PromptBuilder.new) ⇒ Summarizer

Returns a new instance of Summarizer.



797
798
799
800
# File 'lib/kward/compactor.rb', line 797

def initialize(client:, prompt_builder: PromptBuilder.new)
  @client = client
  @prompt_builder = prompt_builder
end

Instance Method Details

#summarize(preparation, custom_instructions: nil) ⇒ Object



802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
# File 'lib/kward/compactor.rb', line 802

def summarize(preparation, custom_instructions: nil)
  summary = chat(
    @prompt_builder.build(preparation, custom_instructions: custom_instructions),
    max_tokens: @prompt_builder.normal_summary_max_tokens(preparation.settings, model_max_tokens: model_max_tokens)
  )
  if preparation.split_turn && !preparation.turn_prefix_messages.empty?
    turn_summary = chat(
      @prompt_builder.build_split(preparation),
      max_tokens: @prompt_builder.split_turn_max_tokens(preparation.settings, model_max_tokens: model_max_tokens)
    )
    summary = "#{summary}\n\n---\n\n**Turn Context (split turn):**\n\n#{turn_summary}"
  end
  summary.to_s.strip
rescue Cancelled
  raise
rescue StandardError => e
  raise SummarizationFailed, e.message
end