Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
4043008
Add xAI API key option to configuration
infinityrobot Aug 26, 2025
120f9b1
Add initial xAI Provider
infinityrobot Aug 26, 2025
29bc491
Registre xAI as Provider
infinityrobot Aug 26, 2025
93e1bd7
Add xAI Capabilities
infinityrobot Aug 26, 2025
94af072
Update Provider#list_models to support an array of URLs
infinityrobot Aug 26, 2025
f3193a4
Add xAI Models implementation
infinityrobot Aug 26, 2025
856e125
Alphabetise Providers in Models.rake config
infinityrobot Aug 26, 2025
882fbc3
Add xAI API key to models.rake and console config
infinityrobot Aug 26, 2025
2b01de2
Add xAI support to models.rake
infinityrobot Aug 26, 2025
c9483aa
Update models, aliases and docs
infinityrobot Aug 26, 2025
f04028a
Add xAI model to specs
infinityrobot Aug 26, 2025
e3b2ef7
Merge remote-tracking branch 'upstream/main' into add-xai-as-model-pr…
infinityrobot Sep 3, 2025
723d206
Add back console API key config
infinityrobot Sep 3, 2025
f393b39
Add xAI to streaming error helpers
infinityrobot Sep 3, 2025
3460b9e
Make streaming spec more declarative
infinityrobot Sep 3, 2025
9e6e129
Add Grok models to models.json
infinityrobot Sep 3, 2025
4ed29cf
Update available models docs
infinityrobot Sep 3, 2025
166b14c
Add xAI to specs
infinityrobot Sep 3, 2025
146962e
Remove rogue puts
infinityrobot Sep 4, 2025
6eae3a4
Remove grok_4 from vision support
infinityrobot Sep 4, 2025
b48f5b5
Skip xAI in some specs
infinityrobot Sep 4, 2025
de99cb7
Merge remote-tracking branch 'upstream/main' into add-xai-as-model-pr…
infinityrobot Sep 4, 2025
bedad38
Remove sensitive keys from VCR config
infinityrobot Sep 4, 2025
6e706d7
Add grok-3-mini VCRs
infinityrobot Sep 4, 2025
7bafed5
Add xAI model VCRs
infinityrobot Sep 4, 2025
45f61c1
Add xAI API key to docs
infinityrobot Sep 4, 2025
163f9d0
Refactor Provider.list_models
infinityrobot Sep 4, 2025
841f9dd
Merge remote-tracking branch 'upstream/main' into add-xai-as-model-pr…
infinityrobot Sep 7, 2025
293d109
Improve xAI skip message in can use tools without parameters in multi…
infinityrobot Sep 7, 2025
b1b7cbf
Revert list_models change and override in xAI Provider
infinityrobot Sep 26, 2025
89f6670
Merge remote-tracking branch 'upstream/main' into add-xai-as-model-pr…
infinityrobot Sep 26, 2025
e0d53b8
Update models, aliases and docs
infinityrobot Sep 26, 2025
25d133a
Merge remote-tracking branch 'upstream/main' into add-xai-as-model-pr…
infinityrobot Sep 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions bin/console
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ RubyLLM.configure do |config|
config.perplexity_api_key = ENV.fetch('PERPLEXITY_API_KEY', nil)
config.vertexai_location = ENV.fetch('GOOGLE_CLOUD_LOCATION', nil)
config.vertexai_project_id = ENV.fetch('GOOGLE_CLOUD_PROJECT', nil)
config.xai_api_key = ENV.fetch('XAI_API_KEY', nil)
end

IRB.start(__FILE__)
1 change: 1 addition & 0 deletions docs/_getting_started/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ RubyLLM.configure do |config|
config.mistral_api_key = ENV['MISTRAL_API_KEY']
config.perplexity_api_key = ENV['PERPLEXITY_API_KEY']
config.openrouter_api_key = ENV['OPENROUTER_API_KEY']
config.xai_api_key = ENV['XAI_API_KEY']

# Local providers
config.ollama_api_base = 'http://localhost:11434/v1'
Expand Down
1,097 changes: 620 additions & 477 deletions docs/_reference/available-models.md

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion lib/ruby_llm.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
'mistral' => 'Mistral',
'vertexai' => 'VertexAI',
'pdf' => 'PDF',
'UI' => 'UI'
'UI' => 'UI',
'xai' => 'XAI'
)
loader.ignore("#{__dir__}/tasks")
loader.ignore("#{__dir__}/generators")
Expand Down Expand Up @@ -93,6 +94,7 @@ def logger
RubyLLM::Provider.register :openrouter, RubyLLM::Providers::OpenRouter
RubyLLM::Provider.register :perplexity, RubyLLM::Providers::Perplexity
RubyLLM::Provider.register :vertexai, RubyLLM::Providers::VertexAI
RubyLLM::Provider.register :xai, RubyLLM::Providers::XAI

if defined?(Rails::Railtie)
require 'ruby_llm/railtie'
Expand Down
105 changes: 101 additions & 4 deletions lib/ruby_llm/aliases.json
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,14 @@
"gemini": "gemini-2.5-flash-lite-preview-06-17",
"openrouter": "google/gemini-2.5-flash-lite-preview-06-17"
},
"gemini-2.5-flash-lite-preview-09-2025": {
"gemini": "gemini-2.5-flash-lite-preview-09-2025",
"openrouter": "google/gemini-2.5-flash-lite-preview-09-2025"
},
"gemini-2.5-flash-preview-09-2025": {
"gemini": "gemini-2.5-flash-preview-09-2025",
"openrouter": "google/gemini-2.5-flash-preview-09-2025"
},
"gemini-2.5-pro": {
"gemini": "gemini-2.5-pro",
"openrouter": "google/gemini-2.5-pro",
Expand All @@ -115,10 +123,6 @@
"gemini": "gemini-2.5-pro-preview-05-06",
"openrouter": "google/gemini-2.5-pro-preview-05-06"
},
"gemini-embedding-001": {
"gemini": "gemini-embedding-001",
"vertexai": "gemini-embedding-001"
},
"gemini-exp-1206": {
"gemini": "gemini-exp-1206",
"vertexai": "gemini-exp-1206"
Expand Down Expand Up @@ -219,6 +223,10 @@
"openai": "gpt-5",
"openrouter": "openai/gpt-5"
},
"gpt-5-codex": {
"openai": "gpt-5-codex",
"openrouter": "openai/gpt-5-codex"
},
"gpt-5-mini": {
"openai": "gpt-5-mini",
"openrouter": "openai/gpt-5-mini"
Expand All @@ -227,6 +235,95 @@
"openai": "gpt-5-nano",
"openrouter": "openai/gpt-5-nano"
},
"gpt-oss-120b": {
"openai": "gpt-oss-120b",
"openrouter": "openai/gpt-oss-120b"
},
"gpt-oss-20b": {
"openai": "gpt-oss-20b",
"openrouter": "openai/gpt-oss-20b"
},
"grok-2": {
"xai": "grok-2-1212"
},
"grok-2-image": {
"xai": "grok-2-image-1212"
},
"grok-2-image-latest": {
"xai": "grok-2-image-1212"
},
"grok-2-latest": {
"xai": "grok-2-1212"
},
"grok-2-vision": {
"xai": "grok-2-vision-1212"
},
"grok-2-vision-latest": {
"xai": "grok-2-vision-1212"
},
"grok-3": {
"xai": "grok-3",
"openrouter": "x-ai/grok-3"
},
"grok-3-beta": {
"xai": "grok-3"
},
"grok-3-fast": {
"xai": "grok-3"
},
"grok-3-fast-beta": {
"xai": "grok-3"
},
"grok-3-fast-latest": {
"xai": "grok-3"
},
"grok-3-latest": {
"xai": "grok-3"
},
"grok-3-mini": {
"xai": "grok-3-mini",
"openrouter": "x-ai/grok-3-mini"
},
"grok-3-mini-beta": {
"xai": "grok-3-mini"
},
"grok-3-mini-fast": {
"xai": "grok-3-mini"
},
"grok-3-mini-fast-beta": {
"xai": "grok-3-mini"
},
"grok-3-mini-fast-latest": {
"xai": "grok-3-mini"
},
"grok-3-mini-latest": {
"xai": "grok-3-mini"
},
"grok-4": {
"xai": "grok-4-0709"
},
"grok-4-fast": {
"xai": "grok-4-fast-reasoning"
},
"grok-4-fast-non-reasoning-latest": {
"xai": "grok-4-fast-non-reasoning"
},
"grok-4-fast-reasoning-latest": {
"xai": "grok-4-fast-reasoning"
},
"grok-4-latest": {
"xai": "grok-4-0709"
},
"grok-code-fast": {
"xai": "grok-code-fast-1"
},
"grok-code-fast-1": {
"xai": "grok-code-fast-1",
"openrouter": "x-ai/grok-code-fast-1"
},
"grok-code-fast-1-0825": {
"xai": "grok-code-fast-1"
},
"o1": {
"openai": "o1",
"openrouter": "openai/o1"
Expand Down
1 change: 1 addition & 0 deletions lib/ruby_llm/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class Configuration
:vertexai_location,
:deepseek_api_key,
:perplexity_api_key,
:xai_api_key,
:bedrock_api_key,
:bedrock_secret_key,
:bedrock_region,
Expand Down
Loading