Class: ActiveAgent::Providers::Mock::Messages::MessageType

Inherits:
ActiveModel::Type::Value
  • Object
show all
Defined in:
lib/active_agent/providers/mock/messages/_types.rb

Overview

Type for individual Message

Instance Method Summary collapse

Instance Method Details

#cast(value) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/active_agent/providers/mock/messages/_types.rb', line 58

def cast(value)
  case value
  when Base
    value
  when String
    User.new(content: value)
  when Hash
    hash = value.deep_symbolize_keys
    role = hash[:role]&.to_sym

    case role
    when :user, nil
      User.new(**hash)
    when :assistant
      Assistant.new(**hash)
    else
      raise ArgumentError, "Unknown message role: #{role}"
    end
  when nil
    nil
  else
    raise ArgumentError, "Cannot cast #{value.class} to Message"
  end
end

#deserialize(value) ⇒ Object



96
97
98
# File 'lib/active_agent/providers/mock/messages/_types.rb', line 96

def deserialize(value)
  cast(value)
end

#serialize(value) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/active_agent/providers/mock/messages/_types.rb', line 83

def serialize(value)
  case value
  when Base
    value.serialize
  when Hash
    value
  when nil
    nil
  else
    raise ArgumentError, "Cannot serialize #{value.class}"
  end
end