Class: Kward::Compaction::Summarizer
- Inherits:
-
Object
- Object
- Kward::Compaction::Summarizer
- Defined in:
- lib/kward/compactor.rb
Overview
Compaction support object used by conversation summarization.
Instance Method Summary collapse
-
#initialize(client:, prompt_builder: PromptBuilder.new) ⇒ Summarizer
constructor
Creates an object for conversation compaction.
- #summarize(preparation, custom_instructions: nil) ⇒ Object
Constructor Details
#initialize(client:, prompt_builder: PromptBuilder.new) ⇒ Summarizer
Creates an object for conversation compaction.
669 670 671 672 |
# File 'lib/kward/compactor.rb', line 669 def initialize(client:, prompt_builder: PromptBuilder.new) @client = client @prompt_builder = prompt_builder end |
Instance Method Details
#summarize(preparation, custom_instructions: nil) ⇒ Object
674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 |
# File 'lib/kward/compactor.rb', line 674 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..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. end |