Class: DSPy::LM::MessageBuilder

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dspy/lm/message_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMessageBuilder

Returns a new instance of MessageBuilder.



13
14
15
# File 'lib/dspy/lm/message_builder.rb', line 13

def initialize
  @messages = []
end

Instance Attribute Details

#messagesObject (readonly)

Returns the value of attribute messages.



11
12
13
# File 'lib/dspy/lm/message_builder.rb', line 11

def messages
  @messages
end

Instance Method Details

#assistant(content) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/dspy/lm/message_builder.rb', line 36

def assistant(content)
  @messages << Message.new(
    role: Message::Role::Assistant,
    content: content.to_s
  )
  self
end

#system(content) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/dspy/lm/message_builder.rb', line 18

def system(content)
  @messages << Message.new(
    role: Message::Role::System,
    content: content.to_s
  )
  self
end

#to_hObject



74
75
76
# File 'lib/dspy/lm/message_builder.rb', line 74

def to_h
  @messages.map(&:to_h)
end

#user(content) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/dspy/lm/message_builder.rb', line 27

def user(content)
  @messages << Message.new(
    role: Message::Role::User,
    content: content.to_s
  )
  self
end

#user_with_image(text, image) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/dspy/lm/message_builder.rb', line 45

def user_with_image(text, image)
  content_array = [
    { type: 'text', text: text },
    { type: 'image', image: image }
  ]
  
  @messages << Message.new(
    role: Message::Role::User,
    content: content_array
  )
  self
end

#user_with_images(text, images) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/dspy/lm/message_builder.rb', line 59

def user_with_images(text, images)
  content_array = [{ type: 'text', text: text }]
  images.each do |image|
    content_array << { type: 'image', image: image }
  end
  
  @messages << Message.new(
    role: Message::Role::User,
    content: content_array
  )
  self
end