Class: ActiveAgent::Providers::OpenAI::Embedding::Request

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/active_agent/providers/open_ai/embedding/request.rb

Overview

Wraps OpenAI gem’s EmbeddingCreateParams with normalization

Delegates to OpenAI::Models::EmbeddingCreateParams while providing parameter normalization via the Transforms module

Constant Summary collapse

DEFAULTS =

Default parameter values applied during initialization

{}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(**params) ⇒ Request

Creates a new embedding request

Parameters:

  • params (Hash)

    embedding parameters

Options Hash (**params):

  • :input (String, Array<String>, Array<Integer>, Array<Array<Integer>>)

    text or token array(s) to embed

  • :model (String)

    embedding model identifier

  • :dimensions (Integer, nil)

    number of dimensions for output (text-embedding-3 only)

  • :encoding_format (String, nil)

    “float” or “base64”

  • :user (String, nil)

    unique user identifier

Raises:

  • (ArgumentError)

    when parameters are invalid



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/active_agent/providers/open_ai/embedding/request.rb', line 28

def initialize(**params)
  # Step 1: Normalize parameters
  params = Transforms.normalize_params(params)

  # Step 2: Create gem model - this validates all parameters!
  gem_model = ::OpenAI::Models::EmbeddingCreateParams.new(**params)

  # Step 3: Delegate all method calls to gem model
  super(gem_model)
rescue ArgumentError => e
  # Re-raise with more context
  raise ArgumentError, "Invalid OpenAI Embedding request parameters: #{e.message}"
end

Instance Method Details

#serializeHash

Serializes request for API submission

Returns:

  • (Hash)

    cleaned request hash without nil values



45
46
47
48
# File 'lib/active_agent/providers/open_ai/embedding/request.rb', line 45

def serialize
  serialized = Transforms.gem_to_hash(__getobj__)
  Transforms.cleanup_serialized_request(serialized, DEFAULTS, __getobj__)
end