class Riffer::Messages::Base
Attributes
Public Class Methods
Source
# File lib/riffer/messages/base.rb, line 9 def self.from_hash(msg) return msg if msg.is_a?(Riffer::Messages::Base) raise Riffer::ArgumentError, "Message hash must include a 'role' key" if msg[:role].nil? || msg[:role].empty? case msg[:role].to_sym when :user then Riffer::Messages::User.from_hash(msg) when :assistant then Riffer::Messages::Assistant.from_hash(msg) when :system then Riffer::Messages::System.from_hash(msg) when :tool then Riffer::Messages::Tool.from_hash(msg) else raise Riffer::ArgumentError, "Unknown message role: #{msg[:role]}" end end
Source
# File lib/riffer/messages/base.rb, line 29 def initialize(content, id: nil) @content = content @id = id || generate_id end
Public Instance Methods
Source
# File lib/riffer/messages/base.rb, line 56 def +(other) raise NotImplementedError, "Subclasses must implement #+" end
Source
# File lib/riffer/messages/base.rb, line 44 def role raise NotImplementedError, "Subclasses must implement #role" end
Source
# File lib/riffer/messages/base.rb, line 36 def to_h hash = { role: role, content: content } hash[:id] = id if id hash end