Class: ActiveAgent::Providers::OpenRouter::RequestType

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

Overview

ActiveModel type for casting and serializing OpenRouter requests

Handles conversion between hashes, Request objects, and serialized request hashes for the OpenRouter API.

Examples:

Type casting

type = RequestType.new
request = type.cast({ model: "openai/gpt-4", messages: "Hello" })
# => #<Request ...>

Serialization

serialized = type.serialize(request)
# => { model: "openai/gpt-4", messages: [...] }

Instance Method Summary collapse

Instance Method Details

#cast(value) ⇒ Request?

Casts value to Request object

Parameters:

Returns:

Raises:

  • (ArgumentError)

    if value cannot be cast



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/active_agent/providers/open_router/_types.rb', line 30

def cast(value)
  case value
  when Request
    value
  when Hash
    Request.new(**value.deep_symbolize_keys)
  when nil
    nil
  else
    raise ArgumentError, "Cannot cast #{value.class} to Request"
  end
end

#deserialize(value) ⇒ Request?

Deserializes value from storage

Parameters:

  • value (Object)

Returns:



65
66
67
# File 'lib/active_agent/providers/open_router/_types.rb', line 65

def deserialize(value)
  cast(value)
end

#serialize(value) ⇒ Hash?

Serializes Request to hash for API submission

Parameters:

Returns:

  • (Hash, nil)

Raises:

  • (ArgumentError)

    if value cannot be serialized



48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/active_agent/providers/open_router/_types.rb', line 48

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