Class: ActiveAgent::Providers::Ollama::Embedding::Request
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- ActiveAgent::Providers::Ollama::Embedding::Request
- Defined in:
- lib/active_agent/providers/ollama/embedding/request.rb
Overview
Wraps OpenAI gem’s EmbeddingCreateParams with Ollama-specific extensions
Delegates to OpenAI::Models::EmbeddingCreateParams for OpenAI-compatible parameters while adding support for Ollama-specific features like options, keep_alive, and truncate.
Ollama-specific parameters:
-
options: Additional model parameters (Hash with temperature, seed, etc.)
-
keep_alive: Controls how long model stays in memory (String duration)
-
truncate: Truncates input to fit context length (Boolean)
Constant Summary collapse
- DEFAULTS =
Default parameter values
{ truncate: true, keep_alive: "5m" }.freeze
Instance Attribute Summary collapse
-
#ollama_params ⇒ Hash
readonly
Ollama-specific parameters.
Instance Method Summary collapse
-
#initialize(**params) ⇒ Request
constructor
Creates a new Ollama embedding request.
-
#input ⇒ Array<String>?
Accessor for input parameter.
-
#input=(value) ⇒ void
Sets input with normalization.
-
#keep_alive ⇒ String?
Accessor for keep_alive parameter.
-
#keep_alive=(value) ⇒ void
Sets keep_alive parameter.
-
#options ⇒ Hash?
Accessor for Ollama options parameter.
-
#options=(value) ⇒ void
Sets options parameter.
-
#serialize ⇒ Hash
Serializes request for API submission.
-
#truncate ⇒ Boolean
Accessor for truncate parameter.
-
#truncate=(value) ⇒ void
Sets truncate parameter.
Constructor Details
#initialize(**params) ⇒ Request
Creates a new Ollama embedding request
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 65 def initialize(**params) # Step 1: Apply defaults params = apply_defaults(params) # Step 2: Validate presence of required params before normalization raise ArgumentError, "model is required" unless params[:model] raise ArgumentError, "input is required" unless params[:input] # Step 3: Normalize parameters and split into OpenAI vs Ollama-specific openai_params, @ollama_params = Transforms.normalize_params(params) # Step 4: Create gem model with OpenAI-compatible params gem_model = ::OpenAI::Models::EmbeddingCreateParams.new(**openai_params) # Step 5: Delegate to the gem model super(gem_model) rescue ArgumentError => e raise ArgumentError, "Invalid Ollama Embedding request parameters: #{e.}" end |
Instance Attribute Details
#ollama_params ⇒ Hash (readonly)
Returns Ollama-specific parameters.
52 53 54 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 52 def ollama_params @ollama_params end |
Instance Method Details
#input ⇒ Array<String>?
Accessor for input parameter
101 102 103 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 101 def input __getobj__.instance_variable_get(:@data)[:input] end |
#input=(value) ⇒ void
This method returns an undefined value.
Sets input with normalization
109 110 111 112 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 109 def input=(value) normalized_value = Transforms.normalize_input(value) __getobj__.instance_variable_get(:@data)[:input] = normalized_value end |
#keep_alive ⇒ String?
Accessor for keep_alive parameter
132 133 134 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 132 def keep_alive @ollama_params[:keep_alive] || DEFAULTS[:keep_alive] end |
#keep_alive=(value) ⇒ void
This method returns an undefined value.
Sets keep_alive parameter
140 141 142 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 140 def keep_alive=(value) @ollama_params[:keep_alive] = value end |
#options ⇒ Hash?
Accessor for Ollama options parameter
117 118 119 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 117 def @ollama_params[:options] end |
#options=(value) ⇒ void
This method returns an undefined value.
Sets options parameter
125 126 127 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 125 def (value) @ollama_params[:options] = value end |
#serialize ⇒ Hash
Serializes request for API submission
Merges OpenAI-compatible parameters with Ollama-specific extensions.
90 91 92 93 94 95 96 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 90 def serialize # Get OpenAI params from gem model openai_hash = Transforms.gem_to_hash(__getobj__) # Merge with Ollama-specific params Transforms.cleanup_serialized_request(openai_hash, @ollama_params, DEFAULTS) end |
#truncate ⇒ Boolean
Accessor for truncate parameter
147 148 149 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 147 def truncate @ollama_params.fetch(:truncate, DEFAULTS[:truncate]) end |
#truncate=(value) ⇒ void
This method returns an undefined value.
Sets truncate parameter
155 156 157 |
# File 'lib/active_agent/providers/ollama/embedding/request.rb', line 155 def truncate=(value) @ollama_params[:truncate] = value end |