Class: Aigen::Google::GenerationConfig
- Inherits:
-
Object
- Object
- Aigen::Google::GenerationConfig
- Defined in:
- lib/aigen/google/generation_config.rb
Overview
GenerationConfig controls generation parameters for the Gemini API. Validates parameter ranges and raises InvalidRequestError before API calls.
Instance Method Summary collapse
-
#initialize(temperature: nil, top_p: nil, top_k: nil, max_output_tokens: nil, response_modalities: nil, aspect_ratio: nil, image_size: nil) ⇒ GenerationConfig
constructor
Initializes a GenerationConfig instance with optional parameters.
-
#to_h ⇒ Hash
Serializes the configuration to Gemini API format with camelCase keys.
Constructor Details
#initialize(temperature: nil, top_p: nil, top_k: nil, max_output_tokens: nil, response_modalities: nil, aspect_ratio: nil, image_size: nil) ⇒ GenerationConfig
Initializes a GenerationConfig instance with optional parameters. Validates all parameters and raises InvalidRequestError if invalid.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/aigen/google/generation_config.rb', line 42 def initialize(temperature: nil, top_p: nil, top_k: nil, max_output_tokens: nil, response_modalities: nil, aspect_ratio: nil, image_size: nil) validate_temperature(temperature) if temperature validate_top_p(top_p) if top_p validate_top_k(top_k) if top_k validate_max_output_tokens(max_output_tokens) if max_output_tokens validate_response_modalities(response_modalities) if response_modalities validate_aspect_ratio(aspect_ratio) if aspect_ratio validate_image_size(image_size) if image_size @temperature = temperature @top_p = top_p @top_k = top_k @max_output_tokens = max_output_tokens @response_modalities = response_modalities @aspect_ratio = aspect_ratio @image_size = image_size end |
Instance Method Details
#to_h ⇒ Hash
Serializes the configuration to Gemini API format with camelCase keys. Omits nil values from the output.
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/aigen/google/generation_config.rb', line 68 def to_h result = {} result[:temperature] = @temperature unless @temperature.nil? result[:topP] = @top_p unless @top_p.nil? result[:topK] = @top_k unless @top_k.nil? result[:maxOutputTokens] = @max_output_tokens unless @max_output_tokens.nil? result[:responseModalities] = @response_modalities unless @response_modalities.nil? # Image generation parameters go under imageConfig if @aspect_ratio || @image_size image_config = {} image_config[:aspectRatio] = @aspect_ratio unless @aspect_ratio.nil? image_config[:imageSize] = @image_size unless @image_size.nil? result[:imageConfig] = image_config end result end |