Module: RubyLLM::Providers::OpenAI::Temperature

Defined in:
lib/ruby_llm/providers/openai/temperature.rb

Overview

Normalizes temperature for OpenAI models with provider-specific requirements.

Class Method Summary collapse

Class Method Details

.normalize(temperature, model_id) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/ruby_llm/providers/openai/temperature.rb', line 10

def normalize(temperature, model_id)
  if model_id.match?(/^(o\d|gpt-5)/) && !temperature.nil? && !temperature_close_to_one?(temperature)
    RubyLLM.logger.debug "Model #{model_id} requires temperature=1.0, setting that instead."
    1.0
  elsif model_id.include?('-search')
    RubyLLM.logger.debug "Model #{model_id} does not accept temperature parameter, removing"
    nil
  else
    temperature
  end
end

.temperature_close_to_one?(temperature) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/ruby_llm/providers/openai/temperature.rb', line 22

def temperature_close_to_one?(temperature)
  (temperature.to_f - 1.0).abs <= Float::EPSILON
end