Class: Riffer::Messages::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/riffer/messages/base.rb

Overview

Base class for all message types in the Riffer framework.

Subclasses must implement the role method.

Direct Known Subclasses

Assistant, System, Tool, User

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content, id: nil) ⇒ Base

– : (String, ?id: String?) -> void



18
19
20
21
# File 'lib/riffer/messages/base.rb', line 18

def initialize(content, id: nil)
  @content = content
  @id = id || generate_id
end

Instance Attribute Details

#contentObject (readonly)

The message content.



11
12
13
# File 'lib/riffer/messages/base.rb', line 11

def content
  @content
end

#idObject (readonly)

The message id, or nil when Riffer.config.message_id_strategy is :none.



14
15
16
# File 'lib/riffer/messages/base.rb', line 14

def id
  @id
end

Instance Method Details

#roleObject

Returns the message role.

Raises NotImplementedError if not implemented by subclass.

– : () -> Symbol

Raises:

  • (NotImplementedError)


39
40
41
# File 'lib/riffer/messages/base.rb', line 39

def role
  raise NotImplementedError, "Subclasses must implement #role"
end

#to_hObject

Converts the message to a hash.

– : () -> Hash[Symbol, untyped]



27
28
29
30
31
# File 'lib/riffer/messages/base.rb', line 27

def to_h
  hash = {role: role, content: content}
  hash[:id] = id unless id.nil?
  hash
end