Class: LLMs::Adapters::BaseMessageAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/llms/adapters/base_message_adapter.rb

Class Method Summary collapse

Class Method Details

.find_message_id(api_format) ⇒ Object



43
44
45
# File 'lib/llms/adapters/base_message_adapter.rb', line 43

def self.find_message_id(api_format)
  raise "Not implemented"
end

.find_role(api_response_format) ⇒ Object



47
48
49
# File 'lib/llms/adapters/base_message_adapter.rb', line 47

def self.find_role(api_response_format)
  raise "Not implemented"
end

.find_text(api_response_format) ⇒ Object



51
52
53
# File 'lib/llms/adapters/base_message_adapter.rb', line 51

def self.find_text(api_response_format)
  raise "Not implemented"
end

.find_tool_calls(api_response_format) ⇒ Object



55
56
57
# File 'lib/llms/adapters/base_message_adapter.rb', line 55

def self.find_tool_calls(api_response_format)
  raise "Not implemented"
end

.has_message?(api_format) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/llms/adapters/base_message_adapter.rb', line 23

def self.has_message?(api_format)
  !find_role(api_format).nil?
end

.message_from_api_format(api_format) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/llms/adapters/base_message_adapter.rb', line 12

def self.message_from_api_format(api_format)
  if self.has_message?(api_format)
    role = transform_role(find_role(api_format))
    text = transform_text(find_text(api_format))
    tool_calls = transform_tool_calls(find_tool_calls(api_format))
    LLMs::ConversationMessage.new(role, [{text: text}], tool_calls, nil)
  else
    nil
  end
end

.to_api_format(message, caching_enabled = false) ⇒ Object



8
9
10
# File 'lib/llms/adapters/base_message_adapter.rb', line 8

def self.to_api_format(message, caching_enabled = false)
  raise "Not implemented"
end

.transform_role(role) ⇒ Object



27
28
29
# File 'lib/llms/adapters/base_message_adapter.rb', line 27

def self.transform_role(role)
  role
end

.transform_text(text) ⇒ Object



31
32
33
# File 'lib/llms/adapters/base_message_adapter.rb', line 31

def self.transform_text(text)
  text
end

.transform_tool_call(tool_call, index) ⇒ Object



39
40
41
# File 'lib/llms/adapters/base_message_adapter.rb', line 39

def self.transform_tool_call(tool_call, index)
  raise "Not implemented"
end

.transform_tool_calls(tool_calls) ⇒ Object



35
36
37
# File 'lib/llms/adapters/base_message_adapter.rb', line 35

def self.transform_tool_calls(tool_calls)
  tool_calls.nil? ? nil : tool_calls.map.with_index { |tool_call, index| transform_tool_call(tool_call, index) }
end