Class: IntelliAgent::OpenAI::Messages
- Inherits:
-
Array
- Object
- Array
- IntelliAgent::OpenAI::Messages
- Defined in:
- lib/intelli_agent/openai/messages.rb,
lib/intelli_agent/openai/messages_helper copy.rb
Constant Summary collapse
- VALID_ROLES =
%i[system user assistant tool].freeze
Class Method Summary collapse
-
.parse_messages(messages) ⇒ Object
O Formato de saída deve ser um array de hashes com as chaves ‘role` e `content`.
Instance Method Summary collapse
- #add(message) ⇒ Object
-
#initialize(messages = []) ⇒ Messages
constructor
VALID_ROLES = %i[system user assistant function tool].freeze.
Constructor Details
#initialize(messages = []) ⇒ Messages
VALID_ROLES = %i[system user assistant function tool].freeze
4 5 6 |
# File 'lib/intelli_agent/openai/messages.rb', line 4 def initialize = nil super () end |
Class Method Details
.parse_messages(messages) ⇒ Object
O Formato de saída deve ser um array de hashes com as chaves ‘role` e `content`.
A entrada pode ser:
- um hash simples { user: 'mensagem do usuário' }, deve ser transformado em { role: 'user', content: 'mensagem do usuário' }
- um hash com várias chaves {system: 'mensagem', user: 'mensagem do usuário' }, deve ser transformado em [{ role: 'system', content: 'mensagem'}, { role: 'user', content: 'mensagem do usuário' }]
- um array de hashes [{ system: 'mensagem'}, { user: 'mensagem do usuário' }], deve ser transformado em [{ role: 'system', content: 'mensagem'}, { role: 'user', content: 'mensagem do usuário' }]
Obervação imporante: o content pode ser uma string ou um array
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/intelli_agent/openai/messages_helper copy.rb', line 20 def self.() return [] if .empty? = [] unless .is_a?(Array) .flat_map do |msg| if msg.is_a?(Hash) if msg.keys.size == 1 role, content = msg.first { role: role.to_s, content: content } elsif msg.key?(:role) && msg.key?(:content) { role: msg[:role].to_s, content: msg[:content] } else msg.map { |role, content| { role: role.to_s, content: content } } end else raise ArgumentError, "Invalid message format: #{msg}" end end end |
Instance Method Details
#add(message) ⇒ Object
8 |
# File 'lib/intelli_agent/openai/messages.rb', line 8 def add() = concat(()) |