RubyLLM 1.6.3: Smarter Defaults & Easier Contributing ๐ฏ
Maintenance release improving model temperature defaults and making it easier to contribute to the project.
๐ก๏ธ Models Now Use Their Own Temperature Defaults
We were overriding model defaults with temperature: 0.7
everywhere. But different models have different optimal defaults - why fight them?
# Before 1.6.3: Always forced temperature to 0.7
chat = RubyLLM.chat(model: 'claude-3-5-haiku') # temperature: 0.7
# Now: Models use their native defaults
chat = RubyLLM.chat(model: 'claude-3-5-haiku') # temperature: (model's default)
chat = RubyLLM.chat(model: 'gpt-4.1-nano') # temperature: (model's default)
# You can still override when needed
chat = RubyLLM.chat(model: 'claude-3-5-haiku', temperature: 0.9)
Each provider knows the best default for their models. OpenAI might default to 1.0, Anthropic to something else - we now respect those choices. Fixes #349.
๐ค Easier Contributing: Overcommit Improvements
The RakeTarget pre-commit hook was making it difficult for contributors to submit PRs. As noted in discussion #335, the hook would run models:update
which deleted models if you didn't have API keys for all providers!
# Removed from .overcommit.yml:
RakeTarget:
enabled: true
command: ['bundle', 'exec', 'rake']
targets: ['models:update', 'models:docs', 'aliases:generate']
Now contributors can:
- Submit PRs without having all provider API keys
- Make targeted changes without unintended side effects
- Focus on their contributions without fighting the tooling
The model registry is now maintained centrally rather than requiring every contributor to have complete API access.
๐งน Additional Updates
- Test cassettes refreshed: All VCR cassettes updated for reliable testing
- Model registry updated: Latest models from all providers
Installation
gem 'ruby_llm', '1.6.3'
Full backward compatibility maintained. The temperature change means your models might behave slightly differently (using their native defaults), but you can always explicitly set temperature if you need the old behavior.
Full Changelog: 1.6.2...1.6.3