5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/intelligence/adapters/legacy/chat_methods.rb', line 5
def chat_request_body( conversation, options = {} )
options = options ? self.class.configure( options ) : {}
options = @options.merge( options )
result = options[ :chat_options ]&.compact || {}
result[ :messages ] = []
system_message = system_message_to_s( conversation[ :system_message ] )
result[ :messages ] << { role: 'system', content: system_message } if system_message
has_non_text_content = conversation[ :messages ]&.find do | message |
message[ :contents ]&.find do | content |
content[ :type ] != nil && content[ :type ] != :text
end
end
if has_non_text_content
conversation[ :messages ]&.each do | message |
result[ :messages ] << chat_request_message_attributes( message )
end
else
conversation[ :messages ]&.each do | message |
result[ :messages ] << chat_request_legacy_message_attributes( message )
end
end
JSON.generate( result )
end
|