8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/smith/context/state_injection.rb', line 8
def self.inject(messages, formatter:, persisted:)
content = "#{MARKER}\n#{formatter.call(persisted)}"
existing_index = messages.index do |message|
message_content = message[:content]
message_content.is_a?(String) && message_content.start_with?(MARKER)
end
if existing_index
messages.dup.tap { |msgs| msgs[existing_index] = { role: :system, content: content } }
else
messages + [{ role: :system, content: content }]
end
end
|