Module: ActiveAgent::Providers::OpenAI::Embedding::Transforms
- Defined in:
- lib/active_agent/providers/open_ai/embedding/transforms.rb
Overview
Provides transformation methods for normalizing embedding parameters to OpenAI gem’s native format
Class Method Summary collapse
-
.cleanup_serialized_request(serialized, defaults = {}, gem_object = nil) ⇒ Hash
Removes nil values from serialized request.
-
.gem_to_hash(obj) ⇒ Hash, Object
Converts OpenAI gem objects to hash representation.
-
.normalize_input(input) ⇒ String, Array
Normalizes input parameter to supported format.
-
.normalize_params(params) ⇒ Hash
Normalizes all embedding request parameters.
Class Method Details
.cleanup_serialized_request(serialized, defaults = {}, gem_object = nil) ⇒ Hash
Removes nil values from serialized request
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/active_agent/providers/open_ai/embedding/transforms.rb', line 73 def self.cleanup_serialized_request(serialized, defaults = {}, gem_object = nil) # Remove nil values cleaned = serialized.compact # Remove default values defaults.each do |key, value| cleaned.delete(key) if cleaned[key] == value end cleaned end |
.gem_to_hash(obj) ⇒ Hash, Object
Converts OpenAI gem objects to hash representation
16 17 18 19 20 21 22 |
# File 'lib/active_agent/providers/open_ai/embedding/transforms.rb', line 16 def self.gem_to_hash(obj) if obj.respond_to?(:to_json) JSON.parse(obj.to_json) else obj end end |
.normalize_input(input) ⇒ String, Array
Normalizes input parameter to supported format
Handles multiple input formats:
-
‘“text”` - single string for one embedding
-
‘[“text1”, “text2”]` - array of strings for multiple embeddings
-
‘[1, 2, 3]` - token array for single embedding
-
‘[[1, 2], [3, 4]]` - array of token arrays for multiple embeddings
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/active_agent/providers/open_ai/embedding/transforms.rb', line 48 def self.normalize_input(input) case input when String input when Array if input.empty? input elsif input.first.is_a?(Integer) input elsif input.first.is_a?(Array) input else input end else input end end |
.normalize_params(params) ⇒ Hash
Normalizes all embedding request parameters
28 29 30 31 32 33 34 35 36 |
# File 'lib/active_agent/providers/open_ai/embedding/transforms.rb', line 28 def self.normalize_params(params) normalized = params.dup if normalized[:input] normalized[:input] = normalize_input(normalized[:input]) end normalized end |