Class: Kward::Compaction::ConversationSerializer
- Inherits:
-
Object
- Object
- Kward::Compaction::ConversationSerializer
- Defined in:
- lib/kward/compactor.rb
Constant Summary collapse
- TOOL_RESULT_LIMIT =
2_000
Instance Method Summary collapse
-
#initialize(tool_result_summarizer: nil) ⇒ ConversationSerializer
constructor
A new instance of ConversationSerializer.
- #serialize(messages) ⇒ Object
Constructor Details
#initialize(tool_result_summarizer: nil) ⇒ ConversationSerializer
Returns a new instance of ConversationSerializer.
175 176 177 |
# File 'lib/kward/compactor.rb', line 175 def initialize(tool_result_summarizer: nil) @tool_result_summarizer = tool_result_summarizer end |
Instance Method Details
#serialize(messages) ⇒ Object
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
# File 'lib/kward/compactor.rb', line 179 def serialize() tool_calls_by_id = {} Array().map do || role = ().to_s case role when "user" "[User]: #{(())}" when "assistant" serialize_assistant(, tool_calls_by_id) when "tool", "toolResult" serialize_tool_result(, tool_calls_by_id) when "compactionSummary" "[Branch summary/context]: #{()}" when "bash" "[Bash]: #{(())}" when "custom", "branchSummary" "[Custom]: #{(())}" else "[#{role.empty? ? "Message" : role}]: #{(())}" end end.join("\n\n") end |