Module: OllamaAgent::ThinkParam
- Defined in:
- lib/ollama_agent/think_param.rb
Overview
Resolves Ollama chat think: from CLI override or OLLAMA_AGENT_THINK. Values: true/false (and 1/0, yes/no, on/off), or high / medium / low for models such as GPT-OSS. When unset everywhere, think is omitted from the request (server default). See README section **Reasoning / thinking output**.
Class Method Summary collapse
-
.effective_for_model(parsed, model_name) ⇒ Object
GPT-OSS models ignore boolean
think; Ollama expectslow,medium, orhigh. - .parse(raw) ⇒ Object
- .resolve(cli_value) ⇒ Object
Class Method Details
.effective_for_model(parsed, model_name) ⇒ Object
GPT-OSS models ignore boolean think; Ollama expects low, medium, or high. When the user passes true (CLI/ENV), map to a level so reasoning appears in message.thinking.
Override default level with OLLAMA_AGENT_GPT_OSS_THINK (low, medium, or high).
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ollama_agent/think_param.rb', line 14 def effective_for_model(parsed, model_name) return parsed if parsed.nil? return parsed unless parsed == true return parsed unless gpt_oss_model_name?(model_name) level = ENV.fetch("OLLAMA_AGENT_GPT_OSS_THINK", "medium").to_s.downcase.strip return level if %w[low medium high].include?(level) "medium" end |
.parse(raw) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ollama_agent/think_param.rb', line 30 def parse(raw) return nil if raw.nil? return nil if raw.is_a?(String) && raw.strip.empty? s = raw.to_s.strip case s.downcase when "0", "false", "no", "off" then false when "1", "true", "yes", "on" then true when "high", "medium", "low" then s.downcase else s end end |
.resolve(cli_value) ⇒ Object
25 26 27 28 |
# File 'lib/ollama_agent/think_param.rb', line 25 def resolve(cli_value) raw = cli_value.nil? ? ENV.fetch("OLLAMA_AGENT_THINK", nil) : cli_value parse(raw) end |