class Riffer::Messages::Base
Base class for all message types in the Riffer framework.
Subclasses must implement the role method.
Attributes
The message content.
The message id, or nil when Riffer.config.message_id_strategy is :none.
Public Class Methods
Source
# File lib/riffer/messages/base.rb, line 18 def initialize(content, id: nil) @content = content @id = id || generate_id end
Public Instance Methods
Source
# File lib/riffer/messages/base.rb, line 61 def +(other) raise NotImplementedError, "Subclasses must implement #+" end
Merges another same-role message into this one.
Raises NotImplementedError unless implemented by subclass. Mergeable message types (User, Assistant, System) override this; Tool messages are never merged.
Source
# File lib/riffer/messages/base.rb, line 49 def has_tool_calls? false end
Whether this message carries pending tool calls. Defaults to false; Riffer::Messages::Assistant overrides this when its tool_calls array is non-empty.
Source
# File lib/riffer/messages/base.rb, line 39 def role raise NotImplementedError, "Subclasses must implement #role" end
Returns the message role.
Raises NotImplementedError if not implemented by subclass.
Source
# File lib/riffer/messages/base.rb, line 27 def to_h hash = {role: role, content: content} hash[:id] = id unless id.nil? hash end
Converts the message to a hash.